Compare commits

..

356 Commits

Author SHA1 Message Date
zzz
7ab6708a3c 0.9.17 2014-11-30 16:41:57 +00:00
7010d9b524 really bump 2014-11-28 20:43:42 +00:00
947a3a2181 bump build (-11-rc) 2014-11-28 20:42:33 +00:00
0ff87ef8cb merge of '3e6cfe9a01136316f39f1bd294a515e6bc91ff8e'
and 'b4b595d294ace07f7fde583957d8e00e96af347c'
2014-11-28 20:39:57 +00:00
ec20150ffd geoip updates (2014-11-05) 2014-11-28 19:29:16 +00:00
30876a9cd3 PO files pulled from tx 2014-11-28 19:25:26 +00:00
zzz
be8832e87f link to Russian version of ECDSA help page 2014-11-27 18:17:07 +00:00
zzz
5999690665 link ECDSA warning to wiki help page 2014-11-27 12:55:16 +00:00
zzz
285fa6cbc9 BuildRequestor: Reduce delay when client build can't find
a paired tunnel (possible fix for ticket #1412)
2014-11-26 17:32:56 +00:00
zzz
9700f30c35 Tunnels: Disallow changing allowZeroHop setting for exploratory 2014-11-26 16:18:37 +00:00
zzz
a38bd0b5cf Data: Fix NPE on unknown sig type in destination
Fix hashcode and equals for typed data
2014-11-26 16:06:09 +00:00
zzz
5f2b620819 PrivateKeyFile: Don't rewrite file in main() if no options 2014-11-24 14:26:53 +00:00
zzz
fd47cb88de i2ptunnel: Fix automatic setting of random key 2014-11-24 14:15:44 +00:00
zzz
77e7982e74 Drop i2p.feared.eu ssl cert for reseed 2014-11-23 14:24:22 +00:00
zzz
04cd1cedda Reseed update from backup@mail.i2p:
please commit some updates for my reseed servers: Add new ssl-certs:
	ieb9oopo.mooo.com2.crt	-->  certificates/ssl/	
	link.mx24.eu.crt	-->  certificates/ssl/

The first one is a new ssl-cert as exchange for the current one.
On http-server side the exchange will take place sometimes next year,
until then the current existing ieb9oopo.mooo.com.crt is still valid.
The second is a new reseed server from me.

Reseeder.java: Please add to DEFAULT_SSL_SEED_URL:	
	https://link.mx24.eu/
with this comment:	
	// Only HTTPS and SU3 (v3) support

Also the list can be cleaned up from these other dead servers:
2014-11-23 14:18:29 +00:00
zzz
3ef89f49e7 SAM: Fix v3 bug accepting incoming connections
It was starting both the v3 and v1 acceptors.
2014-11-22 17:19:40 +00:00
zzz
2a681608b5 PeerSelector: If non-DSA, don't use incompatible peers
for exploratory tunnels or closest-hop in client tunnels
2014-11-22 14:05:06 +00:00
zzz
a52c06a6c6 point to Jetty 8 Javadocs 2014-11-22 13:17:39 +00:00
49b8a65ad9 Integer.compare() is 1.7 syntax 2014-11-21 22:52:19 +00:00
9781cb72ac Bump version 2014-11-21 13:11:47 +00:00
f7e83fb839 Require at least one update in a release 2014-11-21 13:09:58 +00:00
ce2a2cf684 Only need one torrent magnet; tighten update type spec 2014-11-21 13:02:57 +00:00
c88fa70f82 Cleanups 2014-11-21 12:52:24 +00:00
f76744a0c0 Improved SU3 news file specification 2014-11-21 12:46:33 +00:00
zzz
15137d9b62 NetDB: Exclude A1/A2 "countries" from auto-floodfill 2014-11-17 14:19:00 +00:00
zzz
279e102d7a I2NP:
- Set lookup type flags even if no reply tunnel specified
- Reduce object churn when writing some messages
2014-11-15 17:45:14 +00:00
7f72830ec8 JavaDoc fixes 2014-11-14 22:00:51 +00:00
2caaad95ec Comment out not yet implemented tests 2014-11-14 21:52:47 +00:00
09b995aca6 BigIntegerFieldElement.isNonZero() tests 2014-11-14 21:51:53 +00:00
a0bf8433e4 Tests: copy the EdDSA test.data file to where the classloader can find it 2014-11-14 21:16:28 +00:00
zzz
9104bd7304 Tests: Copy the new EdDSA test vectors
to where the classloader can find them.
Throw a better error message if not found.
2014-11-14 16:44:04 +00:00
zzz
2f2aa7f5a8 I2PTunnel:
- Fix bug that left server acceptor thread running after close
- Add destroy() methods to release all resources when closing a tunnel for good,
  particularly the streaming timer threads
- Use COWAL to prevent concurrency problems
- Javadocs
Streaming:
- Don't return null from accept() any more; actually throw
  ConnectException as the javadocs have always specified
- Throw ConnectException from accept() if interrupted; previously caught and ignored
- Throw exceptions from ConnectionHandler.accept(), not higher up
- Close ServerSocket when ConnectionManager is shut down
- Synchronize setActive(), clear queue when starting to accept,
  better handling of calls that don't change state
- Javadocs
ConfigClientsHelper: Call isPluginRunning() less often
PluginStarter: Simplify detection of active threads

Above changes mostly in support of zzzot plugin implementing ClientApp
and being able to shut down completely so there are no threads
in its thread group, so /configclients will all show status as stopped.
Previously, the I2PTunnelServer acceptor thread and
one or more streaming timer threads would remain.
2014-11-13 20:12:55 +00:00
0773a30578 add hamcrest-all to classpaths and minor formatting fixes 2014-11-12 17:42:50 +00:00
962f5efe6b merge of '1e0d390eeacce432f968251f1bbbe03ef031a116'
and 'f61d617d9bfd5759366102b0b5ff45effde08e84'
2014-11-12 14:52:52 +00:00
6dc3cd9650 build.xml: signing
- move signing to ant macros so they can be used by multiple build targets
- add support for signed devbuilds
- add support for generating i2pseeds.su3 (for testing)
2014-11-12 14:51:27 +00:00
zzz
397ae536f9 Data: Clear more caches when under memory pressure and at shutdown 2014-11-12 14:44:49 +00:00
zzz
f19ec4bd44 Plugins: Fix bug in stopping a ClientApp plugin with $parameters in the args 2014-11-12 14:38:13 +00:00
fd7e549915 Added EdDSA tests
Source:
https://github.com/str4d/ed25519-java
Git commit:
58e4efadf972f4dc4f67c05152f82b49fb22bac6
2014-11-12 10:21:46 +00:00
7a7ae77c83 Updated EdDSA code
Source:
https://github.com/str4d/ed25519-java
Git commit:
58e4efadf972f4dc4f67c05152f82b49fb22bac6
2014-11-12 10:20:28 +00:00
zzz
1a9fb381ed new su3 reseed cert (bugme/mooo.com) 2014-11-11 21:45:32 +00:00
zzz
ae7bfceafb snark tweaks 2014-11-11 14:26:23 +00:00
zzz
a961843aa6 bump -4 2014-11-10 16:27:53 +00:00
zzz
43c6a4ddac fix some issues with tracker config form 2014-11-09 14:33:26 +00:00
zzz
ae1d5648d5 Router, i2ptunnel: Add option for per-pool persistent random key,
so peer ordering does not change across restarts
2014-11-09 13:51:19 +00:00
zzz
2d3e8e0c4e disable spellcheck in custom options field 2014-11-09 13:46:47 +00:00
zzz
4691fc69d5 SSU: Fix bug preventing inbound connection from non-DSA router (ticket #1408)
Transports: If we are non-DSA, check for compatibility before connecting out
2014-11-08 18:01:13 +00:00
zzz
cb87f9f307 ProfileOrganizer: More efficient slice calculation,
don't pollute Hash cache
2014-11-08 17:57:17 +00:00
zzz
5f1e5bc271 Data: make getKeysAndCert() public 2014-11-08 17:53:55 +00:00
zzz
1c6d5ad2db EdDSA: Bump minimum router version to 0.9.17
due to previous bugs
2014-11-08 17:52:35 +00:00
zzz
555189f123 i2psnark: Add support for specifying data dir in add form (ticket #1028) 2014-11-08 17:50:27 +00:00
zzz
049044b827 javadoc fix 2014-11-08 17:47:51 +00:00
zzz
cfd9e2c3ab Fix compile error; history for prop; -2 2014-11-06 18:09:14 +00:00
zzz
a0b457b9a1 propagate from branch 'i2p.i2p.zzz.test2' (head 9dca19f228a66b5ac646c3d97d4f018c733081de)
to branch 'i2p.i2p' (head e7f2b0990f1ff9ab0e0d8633ac2faf35a993b917)
2014-11-06 17:53:02 +00:00
zzz
23f24c7d39 javadoc 2014-11-06 17:50:47 +00:00
zzz
6112cc5a38 i2psnark:
- Add new opentrackers, remove welterde
  - Support multiple default opentrackers
  - Don't link to opentrackers at the top
2014-11-06 17:45:06 +00:00
zzz
7deb8c1bcb Console: Don't disable updates when restarting from /configupdate
Recognize router.newsRefreshFrequency=0 as "never"
2014-11-06 16:41:29 +00:00
zzz
76e4b49d9d Transports: Consolidate port checking code
Disallow SSDP port
2014-11-06 15:20:24 +00:00
5ae267a8a2 EdDSA bugfixes 2014-11-06 03:02:25 +00:00
zzz
f524351041 Console: Add ECDSA warning to sidebar 2014-11-05 17:20:45 +00:00
zzz
893d1bb45f Job Queue: Only drop lookup jobs if lagged 2014-11-05 16:59:19 +00:00
zzz
945988dfb7 i2psnark: Fix NPE when deleting torrent if the data directory
was deleted out from under us (ticket #1407)
2014-11-05 16:39:54 +00:00
zzz
62698664a2 SU3 News: Blacklist HTML event-handler attributes in content 2014-11-05 16:04:21 +00:00
zzz
0d2892c75d SSU: Fix corruption of ack-only packets containing bitfields
Full acks were included in the bitfield portion, which
ran over and appeared to be fragments.
Also clean up setting bytes with initial data, for clarity.
2014-11-04 14:51:31 +00:00
zzz
ecc72e6825 SU3 News: Add echelon cert, change default URL 2014-11-04 13:56:46 +00:00
zzz
531d520ceb Blockfile:
- Add block size to superblock
 - Add span size to skiplist block
 - Bump version to 1.2
2014-11-02 19:37:23 +00:00
zzz
4e72e150ad reduce log level of expired certs on android 2014-11-02 17:36:28 +00:00
zzz
b28628b8e1 Console: Log warning if no pack200 2014-11-02 16:42:35 +00:00
zzz
702830ad0e Reseed: SSL only by default 2014-11-02 16:16:01 +00:00
zzz
6ca0c54ba7 i2ptunnel:
ECDSA default for all new server tunnels
ECDSA default for streamr client tunnels
Fix display of server destination on edit page when not running (privkey file path wasn't absolute)
Fix display of persistent client key b32 on edit page when not running
Fix display of server sig type on edit page when we have a privkey file
Add KeysAndCert.getSigType()
Javadocs
2014-11-02 15:23:13 +00:00
zzz
634bf5f7e3 0.9.16
Fix history.txt UTF-8 breakage
Javadoc fixes after review
2014-11-01 18:50:26 +00:00
zzz
2284c963af drop dummy crypto stubs 2014-11-01 15:52:02 +00:00
zzz
ad2052395f bump -19-rc 2014-10-31 12:47:35 +00:00
e9a1dbf8f1 merge of '3baf6884e9804b23ac99e38fb031fc6c04b6134a'
and '995a4e27dc6bd096a6eb83acfc9e2e09c9cb61aa'
2014-10-31 02:03:44 +00:00
703b21e89b Eclipse classpath fix 2014-10-31 01:58:27 +00:00
36ea2cca6b Removed 20 unnecessary variable definitions from multiply()
Android build tools 21.0.* caused dalvikvm runtime errors before this change.
2014-10-31 01:58:05 +00:00
zzz
8b2cf770a5 bump -18-rc 2014-10-30 20:51:28 +00:00
zzz
7d6d801943 merge of '76a3db43068c5b8578dfad10bf0dad884846f608'
and 'feed7db1184a2b8a06ddf35d45dc0e993895e2be'
2014-10-30 20:50:03 +00:00
d705b43f3a update en po files before pushing to tx 2014-10-30 20:11:11 +00:00
a18ed194cb update debian changelog 2014-10-30 20:09:13 +00:00
a3e4293fd8 geoip updates 2014-10-30 20:03:13 +00:00
df144d8434 Arabic, Chinese, Czech, Dutch, French, German, Russian, Spanish updates from Transifex 2014-10-30 20:01:45 +00:00
zzz
bab1e05235 Router: Fix rare NPE building garlic message (ticket #1403) 2014-10-30 15:14:52 +00:00
zzz
a1fdd41b0e SU3 News: Tweaks after testing
Console /debug: Move DHT section to bottom
2014-10-29 15:34:52 +00:00
zzz
60d9c1651a SU3File: Show content and file types in showversion 2014-10-29 14:31:14 +00:00
zzz
ec1380dfa1 i2psnark: Convert '+' to ' ' in magnet dn param 2014-10-29 14:11:41 +00:00
zzz
798275608e jbigi: Save and report extracted library name 2014-10-28 14:50:40 +00:00
zzz
0f2affd414 SSU: Don't publish direct info if introducers are required 2014-10-28 14:00:37 +00:00
zzz
7695b51d89 Make recognition of a hidden router consistent,
whether specified in the caps or the cert
2014-10-28 13:50:09 +00:00
zzz
fb99122d83 log Java 6 warning 2014-10-28 13:18:48 +00:00
zzz
6d53838e20 javadoc clarification 2014-10-28 13:18:27 +00:00
zzz
ec3fd9a7d7 null check in zip entry name 2014-10-28 13:17:20 +00:00
zzz
304f2ebb7b dont OOM when thread dies 2014-10-28 13:16:20 +00:00
zzz
4976e84488 use recent method 2014-10-28 13:13:40 +00:00
zzz
2ebacb1b9b fix static access 2014-10-28 13:11:39 +00:00
zzz
d085f9ea66 SSU: Fix ACK Sender thread dying on corrupt packet 2014-10-26 22:09:38 +00:00
zzz
e275117569 i2ptunnel: Fix description entered via wizard 2014-10-24 14:25:33 +00:00
zzz
eae277fb77 dont add whitespace to XHTML output 2014-10-24 14:11:40 +00:00
zzz
d7130c15cc SSL: Don't prohibit SSLv3 ciphers if that's all we have 2014-10-23 15:32:07 +00:00
zzz
937a17c5dd SessionKeyManager:
- Raise inbound limit
- Delete oldest tagsets when limit is hit
- Don't delete recent tagsets when limit is hit
- Log tweaks
2014-10-23 15:31:00 +00:00
zzz
b6234e1d5e javadoc fixes 2014-10-23 15:26:03 +00:00
zzz
7955b8ae71 SU3 News: Fix parsing of the XHTMl nodes 2014-10-22 18:20:31 +00:00
zzz
a36ef62358 SU3 News:
- Fix SU3File support (tested)
 - Finish implementation (untested)
 - Output metadata as comments in news.xml
 - Support signed HTML
 - Copy router certs to news
2014-10-22 16:07:18 +00:00
zzz
bcbda3cd27 SSU: Don't resend ACKS that are too old (ticket #772)
untested
2014-10-21 18:37:11 +00:00
zzz
239fe518a9 Update: Partial implementation of su3 news with atom feed.
No spec yet, just followed str4d's testnews.atom.xml proposal.
Atom parsing is tested, su3 part is incomplete and untested.
Todo: add spec to http://i2p-projekt.i2p/en/docs/spec/updates,
finish su3 and test.
2014-10-21 18:35:06 +00:00
zzz
44d6e117d5 Console and Eepsite Jetty:
Switch back to QueuedThreadPool (ticket #1395)
In Jetty 5/6, the default QTP was not concurrent, so we switched to
ThreadPoolExecutor with a fixed-size queue, a set maxThreads,
and a RejectedExecutionPolicy of CallerRuns.
Unfortunately, CallerRuns causes lockups in Jetty NIO.
In addition, no flavor of TPE gives us what QTP does:
- TPE direct handoff (which we were using) never queues.
  This doesn't provide any burst management when maxThreads is reached.
  CallerRuns was an attempt to work around that.
- TPE unbounded queue does not adjust the number of threads.
  This doesn't provide automatic resource management.
- TPE bounded queue does not add threads until the queue is full.
  This doesn't provide good responsiveness to even small bursts.
QTP adds threads as soon as the queue is non-empty.
QTP as of Jetty 7 uses concurrent.
QTP unbounded queue is the default in Jetty.
So switch back to QTP with a bounded queue, which does what we want,
which is first expand the thread pool, then start queueing, then reject.

ref:
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
https://wiki.eclipse.org/Jetty/Howto/High_Load
2014-10-20 14:01:36 +00:00
zzz
8a12b7cb41 snark HTML fix 2014-10-18 15:22:39 +00:00
zzz
4d4308c486 NTCP: Deadlock fix 3rd try (ticket #1394) 2014-10-17 14:15:40 +00:00
zzz
abcdcf2e8c log tweaks (SSU) 2014-10-16 20:38:12 +00:00
zzz
44b753d1e5 NTCP: Deadlock fix 2nd try (ticket #1394) 2014-10-16 20:21:03 +00:00
zzz
83b3f242a9 Console, I2CP, i2ptunnel, SSLEepGet: Set allowed SSL protocols and ciphers 2014-10-15 20:44:23 +00:00
zzz
86c43f4734 propagate from branch 'i2p.i2p' (head b82e829752729679ee6b9ece7ce8c7279c70aedf)
to branch 'i2p.i2p.zzz.test2' (head 8e441b5ba1384e499901127e10ab79b96f0f0cb5)
2014-10-14 16:47:50 +00:00
zzz
be0cb84f97 Util: Use write-sync-close-rename for config file writing 2014-10-14 16:47:41 +00:00
zzz
3bea7f5ad5 drop unused HarvesterJob 2014-10-14 16:32:41 +00:00
zzz
266a20d55e I2NP: Implement DatabaseLookupMessage search type field,
to replace all-zeros hash, and ease implementation for
separate LS and RI databases, as documented in i2np spec.
2014-10-14 13:57:02 +00:00
zzz
d2c6a80d24 i2ptunnel: Set default sig type to ECDSA P256 for client tunnel
types Standard, IRC, and Socks IRC, if non-shared.
2014-10-13 16:46:58 +00:00
zzz
cd51fbc2a6 doc fix 2014-10-13 16:46:43 +00:00
zzz
73256f6030 Move BundleRouterInfos out of router.jar 2014-10-10 19:40:49 +00:00
zzz
e081f94d9f GeoIP:
- Don't rate peers in some countries as high capacity
   - Don't enable auto-floodfill in some countries
   - Don't prefer floodfills in some countries
2014-10-10 15:26:17 +00:00
zzz
e96cc09d75 Banlist: Remove unused banlist tracking in the profile causing deadlock (ticket #1394) 2014-10-10 15:21:10 +00:00
zzz
d87178fec3 UPnP: Comment out unused parsers 2014-10-08 17:47:19 +00:00
zzz
28ad95f892 findbugs all over 2014-10-07 14:59:49 +00:00
zzz
8270a92a44 SSU: Improve handling of socket that gets closed (ticket #1385) 2014-10-07 12:09:10 +00:00
zzz
088290c544 Startup: Delay ReadConfigJob another minute
- code cleanup
2014-10-07 12:04:55 +00:00
zzz
6685acfef4 i2ptunnel: Handle named sig types from i2ptunnel.config in the GUI 2014-10-07 12:03:00 +00:00
zzz
1d1a05ee7b log tweak 2014-10-07 11:57:03 +00:00
zzz
bbeb429a59 Graphs: Catch an error caused by missing fonts 2014-10-07 11:56:18 +00:00
zzz
55af588c2c CPUID: Remove Intel model 2 again, this is spoofed in the VM 2014-10-07 11:49:51 +00:00
zzz
80d0313fe5 Crypto: EdDSA cleanup
- Remove duplicate load3 and load4 methods
 - Change load3 return type to int
 - Comment out dead stores
 - Re-roll the add, subtract, and negate loops;
   there's no speed benefit or timing reason to unroll them
 - Check for field already set
 - Remove shifts by 0
2014-10-05 12:11:21 +00:00
zzz
853d309960 i2ptunnel: Fix js confirm for delete button 2014-10-04 13:54:09 +00:00
zzz
564400597a i2psnark: Disable changing types for predefined trackers 2014-10-04 13:21:14 +00:00
zzz
1c2b6fc00e CPUID: Fix Intel processor identification 2014-10-03 17:45:34 +00:00
zzz
7b6f32e5b2 Console: New add-to-addressbook links on leaseset page 2014-10-03 17:44:24 +00:00
zzz
dd4acc88a1 i2psnark: Fix adding magnet links with % encoding (ticket #1391) 2014-10-03 17:40:19 +00:00
zzz
6e566f6e3d log tweak 2014-10-03 15:12:38 +00:00
zzz
fff7fbe121 Base64: Catch NPE on bad input to main() decode 2014-10-03 15:11:29 +00:00
zzz
a50afeb5d5 SAM: Fix v3 LS publish, broken in -4 (ticket #1390)
- code cleanup in direction handling
2014-09-30 12:17:56 +00:00
zzz
49eeb99d43 Logs: Fix displayed filename when empty (ticket #1386)
- More synchronization
2014-09-30 12:12:22 +00:00
zzz
bfd51097c9 i2psnark: Show subdirectory in table header on details page 2014-09-29 13:07:08 +00:00
zzz
a21e3cd842 CPUID:
- Fix main() model and family calculation
  - Add model string fetch from processor
  - AMD model string tweaks
2014-09-29 13:05:38 +00:00
zzz
0f298cf48e CPUID:
- Fix model and family calculation
  - Fix most AMD family 15 IDs
  - Add AMD Llano, Jaguar, Bulldozer 2
  - Add Intel Ivy Bridge, Haswell, Broadwell, Penryn, Pineview, Cedarview, Bay Trail, Avoton, and others
  - Set best-guess capabilities for most Intel processors
  - Supply best-guess model string in most cases
  - Processors listed above, and some others, may see crypto speedups as a result
  - Code cleanup, reduce number of JNI calls
  - Merge dup cases
  - Tab removal
  - Javadocs
2014-09-27 19:27:58 +00:00
zzz
4b074b8dcf I meant CREATE
SAM:
 - Don't publish LS for DIRECTION=RECEIVE
 - Set default tunnel name
2014-09-26 20:24:53 +00:00
zzz
2c79853ffe i2psnark:
- Increase default to 3 hops (ticket #966)
   - Reduce upload threshold for auto-stop
   - Revert addition of js mime type, it was already in the default
2014-09-26 14:24:21 +00:00
zzz
72f57255f0 Transport: Hooks for pluggable transports (ticket #1170) 2014-09-26 14:16:08 +00:00
zzz
1053bc8bb0 go back to release w/o geoip 2014-09-25 20:14:28 +00:00
zzz
4835e6fcb9 i2psnark:
- Show info hash on details page
 - Null storage check just in case
2014-09-25 20:11:47 +00:00
zzz
7ec02a1620 NetDB: Increase max age of RIs to reduce number refreshed after restart 2014-09-24 13:57:26 +00:00
zzz
10993cc6ef EdDSA: Use our PRNG by default for keygen 2014-09-24 13:54:33 +00:00
zzz
81409369bc measure keygen time in test 2014-09-24 13:46:38 +00:00
zzz
edb8590da8 move log outside synch 2014-09-24 13:45:50 +00:00
zzz
3a7bfd28fc snark: Don't enable sort-by-remaining link when complete 2014-09-24 13:44:55 +00:00
zzz
36fdb4ee2f Fix junit compile fails due to data structure moves 2014-09-23 14:15:27 +00:00
zzz
b06f772647 history for prop, -2 2014-09-23 13:23:04 +00:00
zzz
012cc740d6 propagate from branch 'i2p.i2p.zzz.test2' (head 6ccd9ca652057494bb2857e87636f18aadcd33f3)
to branch 'i2p.i2p' (head 376f751adc13923cdbf4f659c3f23ca957cf47b3)
2014-09-23 13:06:36 +00:00
zzz
1407cff49d fix anonymous proxy flag 2014-09-23 12:18:23 +00:00
zzz
3331e1c152 SSU: Return unused DH to the queue 2014-09-22 18:49:20 +00:00
zzz
591f48856d add sort links for details page
fix tooltips on images
2014-09-22 17:06:02 +00:00
zzz
479b9691fd snark sorters for details page
no links yet
2014-09-22 15:18:20 +00:00
zzz
0e48557b48 * SSU: Fix 100% CPU after socket failure
* UPnP: Catch reported error on FreeBSD
2014-09-22 13:22:35 +00:00
zzz
3fae6f06dd reduce object churn in ElG decrypt 2014-09-21 22:20:37 +00:00
zzz
7639c24bfe restore dh.calculateSessionTime stat 2014-09-21 21:54:31 +00:00
zzz
39fd1c3ab8 center icons in details first column 2014-09-21 16:12:46 +00:00
zzz
abf9dbae6d itoopie for update files 2014-09-21 15:51:53 +00:00
zzz
98062f830a 0.9.15 2014-09-20 19:17:58 +00:00
zzz
c259347917 javadoc fixes after review 2014-09-20 15:08:55 +00:00
zzz
9c4558d891 Catch SSU packet read errors in one place
IMS PartialBitfield tweaks
Log tweaks
2014-09-20 12:26:45 +00:00
zzz
9e7e2948e3 dont return next IV to cache 2014-09-20 12:20:08 +00:00
zzz
43430da25f bump for review -21-rc 2014-09-19 12:41:01 +00:00
zzz
eca7ac21a0 remove bogus check 2014-09-18 15:48:48 +00:00
zzz
bc463f6d0b NetDB: Don't auto-ff if ARM or ElG decrypt is too slow 2014-09-18 14:48:08 +00:00
zzz
ec2708a1fd Jetty 8.1.16.v20140903 2014-09-18 13:56:48 +00:00
zzz
082922de01 NTCP: Return unused DH keypairs to the pool 2014-09-18 13:32:27 +00:00
zzz
ea02a7c70b Transport DH:
- Add method to return an unused keypair to the pool
2014-09-18 00:16:39 +00:00
zzz
ab7e25bd52 NTCP EstablishState:
- Prep for future enhancements by refactoring to a state machine model
  - Reduce object churn; use SimpleByteCache
  - Synchronization
  - Define some constants
  - More finals
  - Log tweaks
2014-09-17 22:29:03 +00:00
d4876dd25e debian: add 0.9.14.1 changelog 2014-09-17 22:16:22 +00:00
89ee0bbab4 translation updates pulled from transifex (cs, es, fi, fr, ja, nb, pl, ro, ru,
uk), and English po file updates
2014-09-17 22:13:04 +00:00
06ae882064 geoip updates:
Updates to geoip.txt and geoipv6.dat.gz based on the Maxmind GeoLite Country
database from 2014-09-04.
2014-09-17 21:29:42 +00:00
zzz
6517fe7515 set default SSL outproxy 2014-09-17 14:19:25 +00:00
zzz
d510aad2ab fix class 2014-09-17 12:52:20 +00:00
zzz
3db297de95 * i2psnark:
- Forward port from trunk: Don't send HTML-only headers for icons (2nd try)
  - Consolidate HTML header code
  - Set no-cache headers
  - Don't set HTML headers for redirects
2014-09-17 02:21:31 +00:00
zzz
8688f26f15 * i2psnark: Don't send HTML-only headers for icons (2nd try) 2014-09-16 22:32:05 +00:00
zzz
85d38e7af2 I2PTunnelGUI: Deleted, moved to i2p.scripts 2014-09-15 19:17:24 +00:00
zzz
0448348154 javadoc fix 2014-09-15 18:30:59 +00:00
zzz
ceab4f1ffc improve efficiency of addressbook parser 2014-09-15 18:28:35 +00:00
zzz
3781b8db09 sanity check 2014-09-15 18:24:37 +00:00
zzz
7a450c526c exception tweak 2014-09-15 18:23:58 +00:00
zzz
c1e8ea0e4a RoutingKeyGenerator:
- Move from core to RouterKeyGenerator in router.jar
  - Leave RoutingKeyGenerator as a simple abstract class
  - DatabaseEntry now uses timestamp instead of mod data
    to determine if mod data has changed. Don't expose
    mod data to DatabaseEntry any more.
  - I2PAppContext.routingKeyGenerator() now returns null;
    you must be in RouterContext to get a generator.
2014-09-15 18:23:01 +00:00
zzz
f248a33eaa SSU:
- Fix IB ACKBitfield.highestReceived()
- More efficient OMS.acked()
- Log tweaks
2014-09-14 18:54:46 +00:00
zzz
67fb4e7007 SSU InboundMessageState.PartialBitfield, PacketBuilder:
- Add ACKBitfield.highestReceived() for efficiency
- Only write as many partial bitfield bytes as required,
  rather than 10 (for 64 bits) every time.
- Don't allow more than 10 bytes when reading in bitfield
- Don't send an extra byte if (fragments % 7) == 0
- Don't send a corrupt ack packet if the partial ack got completed (race)
- Log tweaks
2014-09-14 17:51:29 +00:00
zzz
0a41052f3f SSU InboundMessageState -
Rewrite PartialBitfield for efficiency, less space and object churn
SSU ACKBitfield: Add ackCount()
PeerState.fetchPartialACKs() improvements
2014-09-14 14:32:23 +00:00
zzz
a7763a08dc SSU OutboundMessageState -
Fix SSU Output Queue errors due to races with PacketBuilder:
   - Remove all buffer caching as it can't be made thread-safe.
     Just allocate buffer in constructor and let GC handle it
   - Do fragmenting in constructor and make all fragment fields final
   - Don't track per-fragment retransmissions as it wasn't used
   - Move ack tracking from an array to a long
   - Sync all ack methods
   - Entire class now thread-safe (thx dg)
2014-09-14 13:04:48 +00:00
zzz
fcfb471a8a log OS version too 2014-09-14 11:55:33 +00:00
zzz
b9e383130e i2psnark: Sort themes in config form
Don't return null from getThemes()
2014-09-14 11:48:56 +00:00
zzz
cd2159b873 i2psnark: Switch from checkbox to radio for tracker configuration form 2014-09-14 11:38:22 +00:00
zzz
e492d5e0cf fixup remaining field on details page 2014-09-13 18:21:58 +00:00
zzz
9a0f6490ba i2psnark: Consolidate code for creating img entities 2014-09-13 18:09:48 +00:00
zzz
5183b44d8b port new styles to the other two themes 2014-09-13 15:32:17 +00:00
zzz
156d86835a propagate from branch 'i2p.i2p' (head 60a9a2297abeaf042645e3f0bc8d106f1ff585bf)
to branch 'i2p.i2p.zzz.test2' (head 6ff6f0bcee835d32aad62449a37f5171afde915a)
2014-09-13 14:50:11 +00:00
zzz
eab4397b0f * i2ptunnel:
- Fixes for stopping client tunnels
   - Fix status display for shared clients
   - Log tweaks
2014-09-13 14:49:38 +00:00
zzz
d808b999c6 better error message 2014-09-13 14:36:21 +00:00
zzz
603b345405 * i2ptunnel: Fix updating session options on a running delay-open client tunnel 2014-09-12 21:48:29 +00:00
zzz
682534f468 * i2psnark: More escape fixes 2014-09-12 18:38:11 +00:00
zzz
42eb43f713 SSU: Implement bundling of multiple fragments in a single data message.
This has always been in the spec and implemented in the receive side
since the beginning, so it is compatible with all versions.
- Switch preparePackets() return value from a "sparse array" to a list
- UDPPacketReader cleanups
- UDPPacket javadocs
2014-09-12 15:17:14 +00:00
zzz
0817b58b9d i2psnark:
- Add file type sorter
 - Cycle through name/type sorters
2014-09-11 16:36:14 +00:00
zzz
9ab766375d i2psnark: Fix downloaded comparator 2014-09-11 15:56:57 +00:00
zzz
6c2799fe53 i2psnark:
- Cycle through downloaded/size sorters
 - Cycle through uploaded/ratio sorters
 - Fix ratio comparator
 - Display ratio when sorted by ratio, and on details page (ticket #1298)
2014-09-11 15:47:53 +00:00
zzz
ef81a575cd i2psnark:
- Add ratio sorter
 - Catch IAE on unstable sort
 - Only sort if necessary
 - toImg() cleanup
2014-09-11 14:42:08 +00:00
zzz
cce0d94fbb - Conditionally enable sort links 2014-09-11 14:13:13 +00:00
zzz
22b5203334 i2psnark:
- Tweak column tooltips
 - Tweak status sort
2014-09-11 13:39:10 +00:00
zzz
d4be5abe67 better shutdown message 2014-09-10 23:30:49 +00:00
zzz
9985a02efc i2psnark:
- Consolidate and clean up parameters code
 - Click to sort by column
2014-09-10 23:28:41 +00:00
zzz
41c2c60ab0 i2psnark:
- Comment out command-line code
 - Clean up ID generation
2014-09-10 23:18:09 +00:00
zzz
f285364f46 icons on buttons when enabled 2014-09-09 20:24:57 +00:00
zzz
1c5e9b7fe3 i2psnark:
- More CSS
 - .js mime type
2014-09-09 19:53:08 +00:00
zzz
12cc501e25 fixup after prop 2014-09-09 19:29:02 +00:00
zzz
49118b8bf1 propagate from branch 'i2p.i2p' (head e606c473eb1e461a477e45419f6295b6430a7353)
to branch 'i2p.i2p.zzz.test2' (head 6212892778308db10a86e58f9f275c838f604973)
2014-09-09 19:27:10 +00:00
zzz
09dfea7dea * i2psnark: Escape fixes
- fix ':' in name (again)
   - Change priority key from file name to file number so we don't hav to escape
2014-09-09 19:23:12 +00:00
zzz
00bd469f8e bump -15-rc 2014-09-09 16:13:49 +00:00
zzz
18e7e56a6c i2psnark:
- Set-all priority buttons (ticket #1376)
 - Move icons to resources dir, add js dir
 - Todo: more CSS
2014-09-09 15:27:53 +00:00
zzz
34d14a720b atomics 2014-09-09 14:22:47 +00:00
c4d7f9924f checkcerts.sh: check for extraneous spaces
(trying to catch the problem noted at http://zzz.i2p/topics/1663)
2014-09-06 22:14:06 +00:00
80d6921a66 fix certificate line endings 2014-09-06 22:11:06 +00:00
3c95144b83 close tag 2014-09-06 22:10:15 +00:00
84ad155ab8 remove extraneous trailing whitespace 2014-09-06 18:21:41 +00:00
zzz
330a5ddd0f NetDB:
- Better handling of unsupported encryption in destinations
 - Implement handling of unsupported encryption in router identities
 - Banlist forever all RIs with unsupported encryption
 - New negative cache of all dests with unsupported encryption
 - New methods for destination lookup that will succeed even if
   the LS is expired or encryption is unsupported
 - Use new dest lookup so client will get the right error code
   later, rather than failing with no LS when we really got it
   but just couldn't verify it.
 - Cleanups and javadocs

OCMOSJ: Detect unsupported encryption on dest and return the correct failure code
   through I2CP to streaming to i2ptunnel

Streaming: Re-enable message status override, but treat LS lookup failure
   as a soft failure for now.

HTTP Client: Add error page for unsupported encryption
2014-09-05 22:52:23 +00:00
zzz
3b2f1d35c4 I2CP: Fix LS keypair check 2014-09-05 22:42:06 +00:00
zzz
0f1036b0e1 better message on EOF reading data 2014-09-04 15:21:03 +00:00
zzz
86935f10a8 update link 2014-09-04 15:14:33 +00:00
zzz
1078c42a14 I2CP: Enforce strict authorization when auth is enabled 2014-09-04 13:28:40 +00:00
zzz
09cf973712 BuildHandler: Enforce request record timestamp
BuildRequestor: Randomize timestamp to prevent hop ID at top of hour
2014-09-04 01:08:23 +00:00
zzz
5af749a226 NetDB: Encrypt exploratory lookups too
SearchUpdateReplyFoundJob: finals
2014-09-03 23:26:34 +00:00
zzz
f84b86a752 * BundleRouterInfos:
- Move to its own class
   - Run GeoIP, exclude bad countries
   - Exclude class K
   - Exclude dup IPs
   - GeoIP mods for use in I2PAppContext
2014-09-03 15:19:18 +00:00
zzz
ca7873eda7 CryptoChecker: add main() 2014-09-03 13:22:56 +00:00
f87ebaf214 re-enable i2p.mooo.com (ticket #1351) 2014-09-02 20:54:49 +00:00
zzz
a9802eb6a7 NetDB: Encrypt RI lookups and request encrypted reply on
faster boxes, as a test, to prevent scraping by OBEPs and IBGWs
2014-09-02 14:23:06 +00:00
zzz
5d5a68cb3e * CryptoChecker: Log tweaks, handle gij 2014-09-02 14:11:22 +00:00
zzz
c6b1f5053f dont bundle IPv6-only RIs 2014-09-02 14:09:41 +00:00
zzz
1d2e01c8cd i2ptunnel filter tweaks 2014-09-02 14:08:41 +00:00
zzz
0c5c18a767 * Build: Add support for bundling router infos in the package 2014-08-31 16:19:46 +00:00
zzz
6826ba05e7 stubs for su3 news 2014-08-31 14:12:18 +00:00
zzz
053ce88743 * I2PTunnel: Allow changing of spoof host and target host/port without
restarting server tunnel
2014-08-31 13:17:44 +00:00
4a216c57d4 Updated EdDSA code from upstream
Source: https://github.com/str4d/ed25519-java
Git commit: f9a9213e1446adb46756d3a23b614fe09324ae16
2014-08-31 00:11:03 +00:00
zzz
03cec7fd5a just check availability once 2014-08-30 20:46:16 +00:00
zzz
1238001add bump -13 2014-08-30 19:38:56 +00:00
zzz
fa1c077fdd * Console: Show unavailable crypto on /logs
* Router: Log warnings for unavailable crypto at startup
2014-08-30 19:00:57 +00:00
zzz
8a7c3390f5 /configclients:
- Re-enable plugin installation by default
 - Don't show configuration section or update-all button if no plugins installed
2014-08-30 16:14:41 +00:00
zzz
2302aee819 su3 plugin key 2014-08-30 14:06:20 +00:00
zzz
a72866ee6a RouterInfo: Backport fix for verification of EdDSA RI sig type
from i2p.i2p.zzz.test2
2014-08-30 12:35:14 +00:00
0f7a3dba87 Catch AIOOB in upnp code (triggered in I2P Android on shutdown) 2014-08-30 02:38:27 +00:00
zzz
5decf18eb5 import, @since 2014-08-29 13:40:53 +00:00
zzz
c318760398 javadoc fixes and package.html files 2014-08-29 13:21:14 +00:00
629eff20dd copy flag icons in preppkg-base target 2014-08-28 23:31:07 +00:00
zzz
f6e508ca14 * Streaming: Fix verify of Ed25519 signatures in CLOSE packets
- cleanup writtenSize()
2014-08-28 13:57:52 +00:00
zzz
588ab86abb * Streaming: Fix P521 and RSA sig types 2014-08-27 22:43:44 +00:00
zzz
387629372b i2psnark: Don't retry announce if we get back HTML 2014-08-27 18:21:58 +00:00
zzz
0a01700e3e NetDB: Don't abort initialization on an unsupported RI sig type
(backport from i2p.i2p.zzz.test2)
2014-08-27 17:44:24 +00:00
zzz
59504deb7f i2psnark:
- Recognize Vuze tracker rejections
 - Don't retry rejected announces unless seeding
 - Better UI handling of announces with ports or full destination
2014-08-27 17:06:44 +00:00
zzz
8ee660c238 i2psnark:
- Persist uploaded count (tickets #1034, #1298)
 - Show uploaded count even when stopped
2014-08-27 16:00:02 +00:00
zzz
176c106427 I2CP: Catch bad private key 2014-08-26 20:12:29 +00:00
zzz
ed4fe56e7e I2CP:
- Verify crypto key pair in LS
 - Verfiy same dest as before in LS
Router: Don't try to use an unavailable sig type for the router,
   even if it's the default
RouterInfo: Work around unsupported raw signatures for
   RI Ed25519 sig type
2014-08-26 19:14:51 +00:00
zzz
310cd54aa0 remove unused EC curves 2014-08-26 13:47:21 +00:00
zzz
3217b4ac90 move radio buttons closer together thx Shinobiwan 2014-08-26 13:47:06 +00:00
zzz
7bf1949061 remove unused method 2014-08-26 13:46:28 +00:00
zzz
51f9d6d421 NTCP RI sig types 2014-08-25 20:33:56 +00:00
zzz
ddb32c65fb add getPadding() 2014-08-25 20:32:47 +00:00
zzz
c5c158e983 PrivateKeyFile: Add validateKeyPairs()
Router: Validate router key pairs read in from file
2014-08-25 16:55:16 +00:00
zzz
f83007e038 KeyGenerator: Add support for converting
all signing key types from private to public
2014-08-25 16:20:39 +00:00
zzz
2b9a368b18 propagate from branch 'i2p.i2p' (head 695c0048cc8ce28df0574a5e188c77c07c9b42ce)
to branch 'i2p.i2p.zzz.test2' (head c116da02ea4b4d01dd028bc58ea02b43ae9af8cd)
2014-08-25 12:05:15 +00:00
zzz
6ad6974452 javadoc warnings about EdDSA raw sigs 2014-08-24 23:11:56 +00:00
zzz
308923448b PrivateKeyFile: New constructor with padding
Router:
 - Use eepPriv.dat format for router keys file (thx orignal)
 - Consolidate router keys readin code
 - Update killKeys file list
RouterPrivateKeyFile: New extension to add getRouterIdentity()
2014-08-24 19:15:26 +00:00
zzz
04ad7de2e1 SSU: Handle RI sig types
TransportManager: Banlist unsupported RI sig types
2014-08-24 14:54:17 +00:00
zzz
54563b0b42 catch swapped args 2014-08-23 23:49:34 +00:00
zzz
593779b54f Router: Prep for RI sig types:
- New router.sigType config
 - Generate / regenerate router keys based on config
 - New router.keys2 file format for sig types and padding
 - Fix RouterInfo.readBytes() signature verification with sig types
 - Catch unset padding in KeysAndCert.writeBytes()
 - Catch key errors in ReadRouterJob
 - Show RI sig type on /netdb in console
 - Move some things from Router to startup classes
 - Startup classes package private
 - Buffer readin of key files
 - Remove configurability of router.info and router.keys file locations
2014-08-23 23:48:16 +00:00
zzz
34d3704680 sig type availability check 2014-08-23 15:09:24 +00:00
zzz
613f90bcf7 SSU: Drop peer tests as Bob from unestablished Alices 2014-08-23 14:22:06 +00:00
zzz
6ff500f7cb increase RI publish interval slightly 2014-08-23 13:49:26 +00:00
zzz
c79e33896e SSU intro key checks 2014-08-23 13:48:13 +00:00
zzz
68b15aadca proxy no LS error pages tweak 2014-08-23 13:46:10 +00:00
zzz
819504f08f console escape fixes and cleanups 2014-08-23 13:44:56 +00:00
zzz
e65ec2a589 i2ptunnel escape fixes 2014-08-23 13:20:25 +00:00
zzz
1bc355b8fd i2psnark escape fixes 2014-08-23 13:19:44 +00:00
zzz
d76164679f move null check to constructor 2014-08-23 13:16:57 +00:00
zzz
efebecfc67 * SigTypes:
- Add isSupportedSince(), use in floodfill selection
  - Handle mixed-case 25519 enum
  - Fix 25519 type code
  - Add dup type code check
2014-08-22 14:34:13 +00:00
7b64586c87 temporarily disable reseed host (ticket #1351) 2014-08-22 10:13:37 +00:00
0fe15b8e1d Use DataHelper instead of TestUtils 2014-08-21 23:43:57 +00:00
a1cb00b5a3 Java implementation of Ed25519
Source: https://github.com/str4d/ed25519-java
Git commit: be161ee7c6da29129b5ec6c4739ec3a99114a846
License: Public domain
2014-08-21 23:27:45 +00:00
5041d819a9 propagate from branch 'i2p.i2p' (head b026fe071e77884ef6d104635c793ef16357ec71)
to branch 'i2p.i2p.str4d.eddsa' (head 0d928736c4a34d8a337e1f55e095fe90564ea1fb)
2014-08-21 23:27:34 +00:00
zzz
02ab6eac62 javadoc 2014-08-21 17:38:35 +00:00
zzz
d7feab116f Core: Move router data structures, and the deprecated RouterAddress sorter, from core to router.
This will break Android and the i2pcontrol plugin but shouldn't affect anything else.
2014-08-21 17:36:06 +00:00
zzz
4f9e13d0f6 unit test fix take 2 2014-08-21 15:01:15 +00:00
zzz
d0b0e6a58e fix clock.skew rates 2014-08-21 14:27:16 +00:00
a12f898096 Corrected Ed25519 SigType name 2014-08-21 13:08:21 +00:00
zzz
c921ecca05 fix unit test 2014-08-21 12:46:11 +00:00
zzz
975378b224 * i2ptunnel:
- Add local SSL support for std. and IRC client tunnels (ticket #1107)
    Keystore goes in ~/.i2p/keystore; pubkey cert goes in ~/.i2p/certificates/i2ptunnel
  - Escape messages to index page
  - Show message for uncaught exception
2014-08-21 12:21:29 +00:00
zzz
915e003355 * i2ptunnel: Use I2PAppThread 2014-08-21 11:58:09 +00:00
zzz
51e45d128a * Tunnels: Debug code and other cleanups 2014-08-21 11:55:03 +00:00
zzz
57650ef058 remove dup conversion 2014-08-21 11:51:05 +00:00
zzz
dee6e16e6c * i2psnark:
- Escape control chars in encodePath()
   - Increase max piece size to 8 MB (ticket #1347)
2014-08-21 11:49:58 +00:00
c860674613 propagate from branch 'i2p.i2p' (head e8883e85a7761bbda9df59b3f6b57601cc01bb5a)
to branch 'i2p.i2p.str4d.eddsa' (head a1cc4ae4a17efaca2825dae64b2cc55aa520ca27)
2014-08-20 02:11:15 +00:00
zzz
33b7f08d5c * i2psnark:
- Don't filter create torrent form, and
     fix exception on ':' in file names (ticket #1342)
   - Don't remap file names on torrents we created, and
     save remap setting in torrent config file (tickets #571, 771)
   - Escaping fixes since names may not be remapped
   - Use better encodePath() from Jetty
   - Don't say create torrent succeeded when it didn't
   - Add more sanity checks for torrent creation
2014-08-19 20:34:46 +00:00
zzz
66bbe21a87 * Tunnels: Use consistent tunnel pair for Delivery Status Message
to reduce network connections (ticket #1350)
2014-08-18 18:57:19 +00:00
zzz
51995cc428 * i2psnark:
- Don't send HTML-only headers for icons
   - Catch IllegalStateException for icons
2014-08-18 18:52:47 +00:00
a3e3a305ce removed notification of port 8887 2014-08-17 14:54:50 +00:00
zzz
15facc72b3 * Console: Escaping fix (ticket #1348) 2014-08-15 11:49:56 +00:00
zzz
3839c8d1c0 * I2CP: Lookup synch cleanups 2014-08-15 11:48:02 +00:00
d5edcbc6e1 * Console, EventLog: Added {BECAME,NOT}_FLOODFILL events. They will now be shown on the console's /events page when the router's ff status changes.
* EventLog: Fix a minor typo.
2014-08-13 21:29:17 +00:00
zzz
eb97ef4cb2 * i2psnark: Fix add torrent NPE 2014-08-13 19:17:26 +00:00
zzz
9c38e1e191 * Console: Escaping fix (ticket #1346) 2014-08-13 19:10:25 +00:00
zzz
7c3d3b4128 fix dependency checking for ministreaming po files 2014-08-13 19:07:39 +00:00
zzz
367cea4b1f new translation files 2014-08-10 19:32:11 +00:00
zzz
a63bfeaeec fix SKM test broken by TSKM move 2014-08-10 15:48:18 +00:00
zzz
41672dde64 include geoip.txt in updater for next release 2014-08-10 14:57:28 +00:00
zzz
3b18cb7eca history for prop, -3 2014-08-10 14:22:16 +00:00
zzz
c9ce1751c1 propagate from branch 'i2p.i2p.zzz.snarkconfig' (head ad48ab1a9e769c58ea2e286337927f5c0e1568be)
to branch 'i2p.i2p' (head 0cd9e265bd38c40839e68de8f51233489acad346)
2014-08-10 14:14:00 +00:00
zzz
4ba40b340a history for prop, -2 2014-08-10 14:08:05 +00:00
zzz
e3be1d1a04 propagate from branch 'i2p.i2p.zzz.test2' (head c182b371bc28158dd47262b89e5bd0cdda29e07b)
to branch 'i2p.i2p' (head 4fc776f7b76b028bb890affccfdcfbefbb932c58)
2014-08-10 13:56:15 +00:00
zzz
6fa2a416be Console: Hide client delete button too 2014-08-10 12:18:18 +00:00
fdb54c315b propagate from branch 'i2p.i2p' (head b8f5da367cf5d16bc1d91aa2097830c350c9ef8a)
to branch 'i2p.i2p.str4d.eddsa' (head 6fcc5b5019abb36251e28fe0f7723fd1a046a8e9)
2014-08-10 11:41:45 +00:00
zzz
22a7757461 Console: Show share options below 30% (ticket #1329) 2014-08-09 18:08:00 +00:00
zzz
0bacbbc553 SigType: Add static isAvailable() methods
SU3File:
 - Add -x option to bypass signature verification
 - Add -k option to use specified private key cert for verification
 - Don't verify signature in showversion
2014-08-09 17:55:17 +00:00
zzz
03d8314842 dir for plugin certs 2014-08-08 16:41:27 +00:00
zzz
fe4d98f0df javadoc 2014-08-08 16:40:56 +00:00
zzz
b1d60122a3 better msg to client on unsupported sigtype 2014-08-08 16:40:48 +00:00
zzz
c9e20c5d23 log tweak 2014-08-07 21:22:18 +00:00
zzz
381f494754 SU3File: Fix NPE on EOF reading input 2014-08-07 20:17:51 +00:00
zzz
506419964b Plugins: SU3 support in form, type checking,
don't require DSA key in SU3
2014-08-07 19:27:53 +00:00
zzz
35bb8c5348 Plugins: partial SU3 support 2014-08-07 19:06:41 +00:00
zzz
79fe799aeb Plugins: Stub out SU3 support 2014-08-07 18:45:04 +00:00
zzz
2878a6487e KeysAndCert: Change hashcode to prevent possible collisions
caused by apps with zeroed pubkey
2014-08-07 17:05:25 +00:00
zzz
9655e79d26 UPnP: Disable external entities in XML parser 2014-08-06 18:13:54 +00:00
zzz
d1a2e24f0e SSU: Speed up introductions by responding to HolePunch (ticket #1333) 2014-08-06 16:35:08 +00:00
zzz
086381d958 SU3File: Add support for XML and NEWS types 2014-08-06 16:32:10 +00:00
zzz
89764c12e7 bob finals, synch 2014-07-23 13:12:32 +00:00
zzz
328d7d0008 SAM:
- Don't spawn a thread for each transmitted datagram
 - Set protocol field for raw and signed datagrams
 - Enforce a 60s timeout for HELLO
 - Use naming service cache to reduce Destination object churn
 - Get Log object from the log manager
 - Log spelling fixes
2014-07-22 14:52:08 +00:00
zzz
cca5bef8c1 propagate from branch 'i2p.i2p' (head 79d0ad4538a0adc4ced6ac26cb725abe3d5ccee3)
to branch 'i2p.i2p.zzz.test2' (head 73032545b42f6f9caffffca08d0a8b97f5cf7e3a)
2014-07-22 14:38:28 +00:00
2cfe5e678a propagate from branch 'i2p.i2p' (head e02e6d733a703970e20e732e5156cbabc394e88e)
to branch 'i2p.i2p.str4d.eddsa' (head 3910d01bed7c5a216f52bfd1d9fd96b59f058745)
2014-07-10 09:29:34 +00:00
zzz
d48991f71f Crypto: Move TransientSessionKeyManager from core to router.
I2PAppContext will return the dummy SessionKeyManager which
is sufficient for non-tag uses (e.g. Bote).
Client use of end-to-end encryption using SessionTags was
disabled in release 0.6, 2005-07-27.
2014-07-09 13:52:26 +00:00
zzz
8f2dc67430 - Fix files not found in listing at top level of torrent
- Fix loading of files outside of snark dir
2014-06-25 13:58:34 +00:00
888ef37808 propagate from branch 'i2p.i2p' (head 5a3ad2a39b0e0f06e70cb8b4d4f7b1d6461afc1a)
to branch 'i2p.i2p.str4d.eddsa' (head b2a13496a248ebfdac0aa3a8528a27ceff091b6b)
2014-06-24 02:14:05 +00:00
zzz
c987a9735d fixup after prop 2014-06-21 13:16:38 +00:00
zzz
3b9549c2c1 propagate from branch 'i2p.i2p' (head 1f9b91f318a0f2369243844a3cf7f485528492d7)
to branch 'i2p.i2p.zzz.snarkconfig' (head 37b27b6d354d62487294fd9276504b98a23f1057)
2014-06-21 13:02:22 +00:00
zzz
91408cbdce SigUtil: Catch EdDSA IAE
SU3File: Hide EdDSA and unavailable sig types from help text
2014-05-05 19:49:24 +00:00
97c1ba2d02 merge of '477b2b4e4f6f8a2e406fb9729cd603d8caeadb40'
and 'ef12e90467e2bdbf5e64a9e55230ce56121d7347'
2014-05-04 14:52:06 +00:00
zzz
284802bfa5 add caching of EdDSA keys 2014-05-04 14:09:02 +00:00
zzz
48b6e0693e finals 2014-05-02 19:43:21 +00:00
d867f9f36e Fix for SigType.isAvailable() 2014-04-27 01:56:01 +00:00
55d92fc9f2 Support "raw" EdDSA signatures (in reality they are double-hashed) 2014-04-26 13:03:38 +00:00
2e2d3c39e6 Added Ed25519-SHA-512 to I2PTunnel advanced UI 2014-04-26 12:11:02 +00:00
3cd01acb73 Fixed Ed25519-SHA-512 algorithm name 2014-04-26 12:10:18 +00:00
02c0ddb3d3 Generalized to support any EdDSA parameter spec 2014-04-26 11:59:16 +00:00
ce397f5858 Added EdDSA support (directly, not using Provider) 2014-04-26 11:24:31 +00:00
611f991fdd Added a security provider for I2P-internal crypto 2014-04-22 07:20:30 +00:00
zzz
47712a39ac i2psnark:
- Support arbitrary location for torrent data. Save location in
   per-torrent config file. TODO: Fix torrent browse pages
   (ticket #1028)
 - Enhance idle shutdown message
 - Javadocs
2014-01-27 13:41:38 +00:00
zzz
18146daad8 i2psnark:
- Add missing nonce protection for file priority setting
 - Add torrent mime type
 - String append cleanup
2014-01-26 14:26:16 +00:00
zzz
a2e7fa8b7b another minor dir listing speedup 2013-12-22 14:23:01 +00:00
zzz
30ccf1b334 i2psnark:
- Refactor file deletion in prep for better file name handling (ticket #571)
 - Don't use canonical files in directory listings,
   for speed and to avoid file comparison problems (tickets #1079, #1148)
 - Set base file/dir in Storage constructor, make final,
   in prep for arbitrary locations (ticket #1028)
2013-12-22 13:52:35 +00:00
zzz
01b153488a i2psnark:
- Move config file and DHT persistence file to a config dir
   - Move per-torrent configuration from "zmeta" in the main config file
     to a per-torrent config file (ticket #1132)
   - Split timestamp and bitfield into separate configs
   - Fix misspelling of autoStart config
   - Remove two unused SnarkManager methods
2013-12-16 16:12:32 +00:00
584 changed files with 116686 additions and 74926 deletions

View File

@ -12,9 +12,11 @@ trans.it = apps/i2ptunnel/locale/messages_it.po
trans.ja = apps/i2ptunnel/locale/messages_ja.po
trans.nb = apps/i2ptunnel/locale/messages_nb.po
trans.nl = apps/i2ptunnel/locale/messages_nl.po
trans.nn = apps/i2ptunnel/locale/messages_nn.po
trans.pl = apps/i2ptunnel/locale/messages_pl.po
trans.pt = apps/i2ptunnel/locale/messages_pt.po
trans.pt_BR = apps/i2ptunnel/locale/messages_pt_BR.po
trans.ro = apps/i2ptunnel/locale/messages_ro.po
trans.ru_RU = apps/i2ptunnel/locale/messages_ru.po
trans.sk = apps/i2ptunnel/locale/messages_sk.po
trans.sv_SE = apps/i2ptunnel/locale/messages_sv.po
@ -39,6 +41,7 @@ trans.pt = apps/i2ptunnel/locale-proxy/messages_pt.po
trans.pt_BR = apps/i2ptunnel/locale-proxy/messages_pt_BR.po
trans.ro = apps/i2ptunnel/locale-proxy/messages_ro.po
trans.ru_RU = apps/i2ptunnel/locale-proxy/messages_ru.po
trans.sk = apps/i2ptunnel/locale-proxy/messages_sk.po
trans.sv_SE = apps/i2ptunnel/locale-proxy/messages_sv.po
trans.uk_UA = apps/i2ptunnel/locale-proxy/messages_uk.po
trans.vi = apps/i2ptunnel/locale-proxy/messages_vi.po
@ -80,8 +83,10 @@ trans.de = apps/routerconsole/locale-news/messages_de.po
trans.es = apps/routerconsole/locale-news/messages_es.po
trans.fr = apps/routerconsole/locale-news/messages_fr.po
trans.he = apps/routerconsole/locale-news/messages_he.po
trans.ja = apps/routerconsole/locale-news/messages_ja.po
trans.it = apps/routerconsole/locale-news/messages_it.po
trans.ja = apps/routerconsole/locale-news/messages_ja.po
trans.ko = apps/routerconsole/locale-news/messages_ko.po
trans.nb = apps/routerconsole/locale-news/messages_nb.po
trans.nl = apps/routerconsole/locale-news/messages_nl.po
trans.pl = apps/routerconsole/locale-news/messages_pl.po
trans.pt = apps/routerconsole/locale-news/messages_pt.po
@ -91,12 +96,14 @@ trans.ru_RU = apps/routerconsole/locale-news/messages_ru.po
trans.sk = apps/routerconsole/locale-news/messages_sk.po
trans.sv_SE = apps/routerconsole/locale-news/messages_sv.po
trans.tr_TR = apps/routerconsole/locale-news/messages_tr.po
trans.uk_UA = apps/routerconsole/locale-news/messages_uk.po
trans.zh_CN = apps/routerconsole/locale-news/messages_zh.po
[I2P.countries]
type = PO
source_file = apps/routerconsole/locale-countries/messages_en.po
source_lang = en
trans.ca = apps/routerconsole/locale-countries/messages_ca.po
trans.da = apps/routerconsole/locale-countries/messages_da.po
trans.de = apps/routerconsole/locale-countries/messages_de.po
trans.el = apps/routerconsole/locale-countries/messages_el.po
@ -115,7 +122,9 @@ trans.pt_BR = apps/routerconsole/locale-countries/messages_pt_BR.po
trans.ro = apps/routerconsole/locale-countries/messages_ro.po
trans.ru_RU = apps/routerconsole/locale-countries/messages_ru.po
trans.sk = apps/routerconsole/locale-countries/messages_sk.po
trans.sq = apps/routerconsole/locale-countries/messages_sq.po
trans.sv_SE = apps/routerconsole/locale-countries/messages_sv.po
trans.uk_UA = apps/routerconsole/locale-countries/messages_uk.po
trans.tr_TR = apps/routerconsole/locale-countries/messages_tr.po
trans.vi = apps/routerconsole/locale-countries/messages_vi.po
trans.zh_CN = apps/routerconsole/locale-countries/messages_zh.po
@ -134,6 +143,7 @@ trans.nb = apps/i2psnark/locale/messages_nb.po
trans.nl = apps/i2psnark/locale/messages_nl.po
trans.pl = apps/i2psnark/locale/messages_pl.po
trans.pt = apps/i2psnark/locale/messages_pt.po
trans.pt_BR = apps/i2psnark/locale/messages_pt_bR.po
trans.ro = apps/i2psnark/locale/messages_ro.po
trans.ru_RU = apps/i2psnark/locale/messages_ru.po
trans.sk = apps/i2psnark/locale/messages_sk.po
@ -161,6 +171,7 @@ trans.pt_BR = apps/susidns/locale/messages_pt_BR.po
trans.ro = apps/susidns/locale/messages_ro.po
trans.ru_RU = apps/susidns/locale/messages_ru.po
trans.sv_SE = apps/susidns/locale/messages_sv.po
trans.tr_TR = apps/susidns/locale/messages_tr.po
trans.uk_UA = apps/susidns/locale/messages_uk.po
trans.vi = apps/susidns/locale/messages_vi.po
trans.zh_CN = apps/susidns/locale/messages_zh.po
@ -194,6 +205,7 @@ trans.zh_CN = apps/desktopgui/locale/messages_zh.po
source_file = apps/susimail/locale/messages_en.po
source_lang = en
trans.cs = apps/susimail/locale/messages_cs.po
trans.da = apps/susimail/locale/messages_da.po
trans.de = apps/susimail/locale/messages_de.po
trans.es = apps/susimail/locale/messages_es.po
trans.fr = apps/susimail/locale/messages_fr.po
@ -242,6 +254,7 @@ trans.fr = installer/resources/locale/po/messages_fr.po
trans.it = installer/resources/locale/po/messages_it.po
trans.pl = installer/resources/locale/po/messages_pl.po
trans.ja = installer/resources/locale/po/messages_ja.po
trans.pl = installer/resources/locale/po/messages_pl.po
trans.pt = installer/resources/locale/po/messages_pt.po
trans.pt_BR = installer/resources/locale/po/messages_pt_BR.po
trans.ro = installer/resources/locale/po/messages_ro.po
@ -274,6 +287,14 @@ trans.zh_CN = core/java/src/gnu/getopt/MessagesBundle_zh.properties
[I2P.streaming]
source_file = apps/ministreaming/locale/messages_en.po
source_lang = en
trans.de = apps/ministreaming/locale/messages_de.po
trans.es = apps/ministreaming/locale/messages_es.po
trans.fr = apps/ministreaming/locale/messages_fr.po
trans.it = apps/ministreaming/locale/messages_it.po
trans.nb = apps/ministreaming/locale/messages_nb.po
trans.ru_RU = apps/ministreaming/locale/messages_ru.po
trans.uk_UA = apps/ministreaming/locale/messages_uk.po
trans.zh_CN = apps/ministreaming/locale/messages_zh.po
[main]
host = https://www.transifex.com

View File

@ -137,7 +137,7 @@ Installer:
Java Service Wrapper Community Edition 32-bit 3.5.19:
Java Service Wrapper Community Edition 32-bit 3.5.25:
Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
See licenses/LICENSE-Wrapper.txt
@ -182,7 +182,7 @@ Applications:
By welterde.
See licenses/LICENSE-GPLv2.txt
Jetty 8.1.15.v20140411:
Jetty 8.1.16.v20140903:
See licenses/ABOUT-Jetty.html
See licenses/NOTICE-Jetty.html
See licenses/LICENSE-Apache2.0.txt

View File

@ -119,15 +119,16 @@ public class BOB implements Runnable, ClientApp {
public final static String PROP_BOB_HOST = "BOB.host";
public final static String PROP_CFG_VER = "BOB.CFG.VER";
/** unused when started via the ClientApp interface */
private static BOB _bob;
private NamedDB database;
private Properties props = new Properties();
private AtomicBoolean spin = new AtomicBoolean(true);
private final NamedDB database;
private final Properties props = new Properties();
private final AtomicBoolean spin = new AtomicBoolean(true);
private static final String P_RUNNING = "RUNNING";
private static final String P_STARTING = "STARTING";
private static final String P_STOPPING = "STOPPING";
private AtomicBoolean lock = new AtomicBoolean(false);
private final AtomicBoolean lock = new AtomicBoolean(false);
// no longer used.
// private static int maxConnections = 0;
@ -143,8 +144,9 @@ public class BOB implements Runnable, ClientApp {
* Stop BOB gracefully
* @deprecated unused
*/
public static void stop() {
_bob.shutdown(null);
public synchronized static void stop() {
if (_bob != null)
_bob.shutdown(null);
}
/**
@ -189,7 +191,7 @@ public class BOB implements Runnable, ClientApp {
*
* @param args
*/
public static void main(String[] args) {
public synchronized static void main(String[] args) {
try {
_bob = new BOB(I2PAppContext.getGlobalContext(), null, args);
_bob.startup();

View File

@ -64,10 +64,11 @@ class ConfigParser {
if (inputLine.startsWith(";")) {
return "";
}
if (inputLine.split("#").length > 0) {
return inputLine.split("#")[0];
int hash = inputLine.indexOf('#');
if (hash >= 0) {
return inputLine.substring(0, hash);
} else {
return "";
return inputLine;
}
}

View File

@ -100,15 +100,15 @@
<target name="war" depends="jar, bundle, warUpToDate, listChangedFiles" unless="war.uptodate" >
<!-- set if unset -->
<property name="workspace.changes.tr" value="" />
<copy todir="build/icons/.icons" >
<fileset dir="../icons/" />
<copy todir="build/resources/.resources" >
<fileset dir="../resources/" />
</copy>
<!-- mime.properties must be in with the classes -->
<copy file="../mime.properties" todir="build/obj/org/klomp/snark/web" />
<war destfile="../i2psnark.war" webxml="../web.xml" >
<!-- include only the web stuff, as of 0.7.12 the router will add i2psnark.jar to the classpath for the war -->
<classes dir="./build/obj" includes="**/web/*" />
<fileset dir="build/icons/" />
<fileset dir="build/resources/" />
<manifest>
<attribute name="Implementation-Version" value="${full.version}" />
<attribute name="Built-By" value="${build.built-by}" />
@ -121,7 +121,7 @@
<target name="warUpToDate">
<uptodate property="war.uptodate" targetfile="../i2psnark.war" >
<srcfiles dir= "." includes="build/obj/org/klomp/snark/web/*.class ../icons/* ../web.xml" />
<srcfiles dir= "." includes="build/obj/org/klomp/snark/web/*.class ../resources/**/* ../web.xml" />
</uptodate>
</target>

View File

@ -54,7 +54,15 @@ public interface CompleteListener {
*/
public void gotPiece(Snark snark);
// not really listeners but the easiest way to get back to an optional SnarkManager
/** not really listeners but the easiest way to get back to an optional SnarkManager */
public long getSavedTorrentTime(Snark snark);
public BitField getSavedTorrentBitField(Snark snark);
/**
* @since 0.9.15
*/
public boolean getSavedPreserveNamesSetting(Snark snark);
/**
* @since 0.9.15
*/
public long getSavedUploaded(Snark snark);
}

View File

@ -3,12 +3,15 @@ package org.klomp.snark;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
@ -71,7 +74,6 @@ public class I2PSnarkUtil {
private static final int EEPGET_CONNECT_TIMEOUT_SHORT = 5*1000;
public static final int DEFAULT_STARTUP_DELAY = 3;
public static final boolean DEFAULT_USE_OPENTRACKERS = true;
public static final String DEFAULT_OPENTRACKERS = "http://tracker.welterde.i2p/a";
public static final int DEFAULT_MAX_UP_BW = 8; //KBps
public static final int MAX_CONNECTIONS = 16; // per torrent
public static final String PROP_MAX_BW = "i2cp.outboundBytesPerSecond";
@ -99,8 +101,7 @@ public class I2PSnarkUtil {
_maxConnections = MAX_CONNECTIONS;
_startupDelay = DEFAULT_STARTUP_DELAY;
_shouldUseOT = DEFAULT_USE_OPENTRACKERS;
// FIXME split if default has more than one
_openTrackers = Collections.singletonList(DEFAULT_OPENTRACKERS);
_openTrackers = Collections.emptyList();
_shouldUseDHT = DEFAULT_USE_DHT;
// This is used for both announce replies and .torrent file downloads,
// so it must be available even if not connected to I2CP.
@ -565,12 +566,12 @@ public class I2PSnarkUtil {
return rv;
}
/** @param ot non-null */
/** @param ot non-null list of announce URLs */
public void setOpenTrackers(List<String> ot) {
_openTrackers = ot;
}
/** List of open trackers to use as backups
/** List of open tracker announce URLs to use as backups
* @return non-null, possibly unmodifiable, empty if disabled
*/
public List<String> getOpenTrackers() {
@ -580,7 +581,22 @@ public class I2PSnarkUtil {
}
/**
* List of open trackers to use as backups even if disabled
* Is this announce URL probably for an open tracker?
*
* @since 0.9.17
*/
public boolean isKnownOpenTracker(String url) {
try {
URL u = new URL(url);
String host = u.getHost();
return host != null && SnarkManager.KNOWN_OPENTRACKERS.contains(host);
} catch (MalformedURLException mue) {
return false;
}
}
/**
* List of open tracker announce URLs to use as backups even if disabled
* @return non-null
* @since 0.9.4
*/

View File

@ -66,7 +66,8 @@ class IdleChecker extends SimpleTimer2.TimedEvent {
if (_log.shouldLog(Log.WARN))
_log.warn("Closing tunnels on idle");
_util.disconnect();
_mgr.addMessage(_util.getString("I2P tunnel closed."));
_mgr.addMessage(_util.getString("No more torrents running.") + ' ' +
_util.getString("I2P tunnel closed."));
schedule(3 * CHECK_TIME);
return;
}

View File

@ -42,7 +42,7 @@ public class MagnetURI {
name = util.getString("Magnet") + ' ' + ihash;
String dn = getParam("dn", url);
if (dn != null)
name += " (" + Storage.filterName(dn) + ')';
name += " (" + dn + ')';
} else if (url.startsWith(MAGGOT)) {
// maggot://0691e40aae02e552cfcb57af1dca56214680c0c5:0b557bbdf8718e95d352fbe994dec3a383e2ede7
ihash = url.substring(MAGGOT.length()).trim();
@ -82,7 +82,7 @@ public class MagnetURI {
}
/**
* @return pretty name or null
* @return pretty name or null, NOT HTML escaped
*/
public String getName() {
return _name;
@ -175,18 +175,25 @@ public class MagnetURI {
}
/**
* Decode %xx encoding, convert to UTF-8 if necessary
* Copied from i2ptunnel LocalHTTPServer
* Decode %xx encoding, convert to UTF-8 if necessary.
* Copied from i2ptunnel LocalHTTPServer.
* Also converts '+' to ' ' so the dn parameter comes out right
* These are coming in via a application/x-www-form-urlencoded form so
* the pluses are in there...
* hopefully any real + is encoded as %2B.
*
* @since 0.9.1
*/
private static String decode(String s) {
if (!s.contains("%"))
if (!(s.contains("%") || s.contains("+")))
return s;
StringBuilder buf = new StringBuilder(s.length());
boolean utf8 = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c != '%') {
if (c == '+') {
buf.append(' ');
} else if (c != '%') {
buf.append(c);
} else {
try {

View File

@ -57,8 +57,8 @@ public class Peer implements Comparable<Peer>
private DataOutputStream dout;
/** running counters */
private long downloaded;
private long uploaded;
private final AtomicLong downloaded = new AtomicLong();
private final AtomicLong uploaded = new AtomicLong();
// Keeps state for in/out connections. Non-null when the handshake
// was successful, the connection setup and runs
@ -618,7 +618,7 @@ public class Peer implements Comparable<Peer>
* @since 0.8.4
*/
public void downloaded(int size) {
downloaded += size;
downloaded.addAndGet(size);
}
/**
@ -626,7 +626,7 @@ public class Peer implements Comparable<Peer>
* @since 0.8.4
*/
public void uploaded(int size) {
uploaded += size;
uploaded.addAndGet(size);
}
/**
@ -635,7 +635,7 @@ public class Peer implements Comparable<Peer>
*/
public long getDownloaded()
{
return downloaded;
return downloaded.get();
}
/**
@ -644,7 +644,7 @@ public class Peer implements Comparable<Peer>
*/
public long getUploaded()
{
return uploaded;
return uploaded.get();
}
/**
@ -652,8 +652,8 @@ public class Peer implements Comparable<Peer>
*/
public void resetCounters()
{
downloaded = 0;
uploaded = 0;
downloaded.set(0);
uploaded.set(0);
}
public long getInactiveTime() {

View File

@ -281,6 +281,14 @@ class PeerCoordinator implements PeerListener
return uploaded;
}
/**
* Sets the initial total of uploaded bytes of all peers (from a saved status)
* @since 0.9.15
*/
public void setUploaded(long up) {
uploaded = up;
}
/**
* Returns the total number of downloaded bytes of all peers.
*/

View File

@ -163,7 +163,7 @@ class PeerState implements DataLoader
_log.debug(peer + " rcv bitfield");
if (bitfield != null)
{
// XXX - Be liberal in what you except?
// XXX - Be liberal in what you accept?
if (_log.shouldLog(Log.WARN))
_log.warn("Got unexpected bitfield message from " + peer);
return;

View File

@ -27,13 +27,13 @@ import java.io.InputStream;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import java.util.StringTokenizer;
import net.i2p.I2PAppContext;
import net.i2p.client.streaming.I2PServerSocket;
import net.i2p.data.Destination;
import net.i2p.util.Log;
import net.i2p.util.SecureFile;
/**
* Main Snark program startup class.
@ -221,7 +221,7 @@ public class Snark
private PeerCoordinator coordinator;
private ConnectionAcceptor acceptor;
private TrackerClient trackerclient;
private String rootDataDir = ".";
private final File rootDataDir;
private final CompleteListener completeListener;
private volatile boolean stopped;
private volatile boolean starting;
@ -236,15 +236,27 @@ public class Snark
private volatile boolean _autoStoppable;
// String indicating main activity
private volatile String activity = "Not started";
private final long savedUploaded;
/** from main() via parseArguments() single torrent */
/**
* from main() via parseArguments() single torrent
*
* @deprecated unused
*/
/****
Snark(I2PSnarkUtil util, String torrent, String ip, int user_port,
StorageListener slistener, CoordinatorListener clistener) {
this(util, torrent, ip, user_port, slistener, clistener, null, null, null, true, ".");
}
****/
/** single torrent - via router */
/**
* single torrent - via router
*
* @deprecated unused
*/
/****
public Snark(I2PAppContext ctx, Properties opts, String torrent,
StorageListener slistener, boolean start, String rootDir) {
this(new I2PSnarkUtil(ctx), torrent, null, -1, slistener, null, null, null, null, false, rootDir);
@ -274,12 +286,30 @@ public class Snark
if (start)
this.startTorrent();
}
****/
/** multitorrent */
/**
* multitorrent
*/
public Snark(I2PSnarkUtil util, String torrent, String ip, int user_port,
StorageListener slistener, CoordinatorListener clistener,
CompleteListener complistener, PeerCoordinatorSet peerCoordinatorSet,
ConnectionAcceptor connectionAcceptor, boolean start, String rootDir)
{
this(util, torrent, ip, user_port, slistener, clistener, complistener,
peerCoordinatorSet, connectionAcceptor, start, rootDir, null);
}
/**
* multitorrent
*
* @param baseFile if null, use rootDir/torrentName; if non-null, use it instead
* @since 0.9.11
*/
public Snark(I2PSnarkUtil util, String torrent, String ip, int user_port,
StorageListener slistener, CoordinatorListener clistener,
CompleteListener complistener, PeerCoordinatorSet peerCoordinatorSet,
ConnectionAcceptor connectionAcceptor, boolean start, String rootDir, File baseFile)
{
if (slistener == null)
slistener = this;
@ -291,7 +321,7 @@ public class Snark
acceptor = connectionAcceptor;
this.torrent = torrent;
this.rootDataDir = rootDir;
this.rootDataDir = new File(rootDir);
stopped = true;
activity = "Network setup";
@ -394,13 +424,22 @@ public class Snark
try
{
activity = "Checking storage";
storage = new Storage(_util, meta, slistener);
boolean shouldPreserve = completeListener != null && completeListener.getSavedPreserveNamesSetting(this);
if (baseFile == null) {
String base = meta.getName();
if (!shouldPreserve)
base = Storage.filterName(base);
if (_util.getFilesPublic())
baseFile = new File(rootDataDir, base);
else
baseFile = new SecureFile(rootDataDir, base);
}
storage = new Storage(_util, baseFile, meta, slistener, shouldPreserve);
if (completeListener != null) {
storage.check(rootDataDir,
completeListener.getSavedTorrentTime(this),
storage.check(completeListener.getSavedTorrentTime(this),
completeListener.getSavedTorrentBitField(this));
} else {
storage.check(rootDataDir);
storage.check();
}
// have to figure out when to reopen
// if (!start)
@ -428,6 +467,7 @@ public class Snark
trackerclient = new TrackerClient(meta, coordinator);
*/
savedUploaded = (completeListener != null) ? completeListener.getSavedUploaded(this) : 0;
if (start)
startTorrent();
}
@ -452,7 +492,8 @@ public class Snark
this.torrent = torrent;
this.infoHash = ih;
this.additionalTrackerURL = trackerURL;
this.rootDataDir = rootDir;
this.rootDataDir = rootDir != null ? new File(rootDir) : null; // null only for FetchAndAdd extension
savedUploaded = 0;
stopped = true;
id = generateID();
@ -477,18 +518,13 @@ public class Snark
// Create a new ID and fill it with something random. First nine
// zeros bytes, then three bytes filled with snark and then
// sixteen random bytes.
// eight random bytes.
byte snark = (((3 + 7 + 10) * (1000 - 8)) / 992) - 17;
byte[] rv = new byte[20];
Random random = I2PAppContext.getGlobalContext().random();
int i;
for (i = 0; i < 9; i++)
rv[i] = 0;
rv[i++] = snark;
rv[i++] = snark;
rv[i++] = snark;
while (i < 20)
rv[i++] = (byte)random.nextInt(256);
rv[9] = snark;
rv[10] = snark;
rv[11] = snark;
I2PAppContext.getGlobalContext().random().nextBytes(rv, 12, 8);
return rv;
}
@ -521,6 +557,7 @@ public class Snark
_log.info("Starting PeerCoordinator, ConnectionAcceptor, and TrackerClient");
activity = "Collecting pieces";
coordinator = new PeerCoordinator(_util, id, infoHash, meta, storage, this, this);
coordinator.setUploaded(savedUploaded);
if (_peerCoordinatorSet != null) {
// multitorrent
_peerCoordinatorSet.add(coordinator);
@ -547,7 +584,7 @@ public class Snark
} else if (trackerclient.halted()) {
if (storage != null) {
try {
storage.reopen(rootDataDir);
storage.reopen();
} catch (IOException ioe) {
try { storage.close(); } catch (IOException ioee) {
ioee.printStackTrace();
@ -584,7 +621,7 @@ public class Snark
pc.halt();
Storage st = storage;
if (st != null) {
boolean changed = storage.isChanged();
boolean changed = storage.isChanged() || getUploaded() != savedUploaded;
try {
storage.close();
} catch (IOException ioe) {
@ -738,7 +775,7 @@ public class Snark
PeerCoordinator coord = coordinator;
if (coord != null)
return coord.getUploaded();
return 0;
return savedUploaded;
}
/**
@ -762,6 +799,7 @@ public class Snark
}
/**
* Not HTML escaped.
* @return String returned from tracker, or null if no error
* @since 0.8.4
*/
@ -834,7 +872,7 @@ public class Snark
}
/**
* Bytes still wanted. DOES account for skipped files.
* Bytes still wanted. DOES account for (i.e. does not include) skipped files.
* FIXME -1 when not running.
* @return exact value. or -1 if no storage yet or when not running.
* @since 0.9.1
@ -847,7 +885,7 @@ public class Snark
}
/**
* Does not account for skipped files.
* Does not account (i.e. includes) for skipped files.
* @return number of pieces still needed (magnet mode or not), or -1 if unknown
* @since 0.8.4
*/
@ -918,6 +956,7 @@ public class Snark
* non-valid argument list. The given listeners will be
* passed to all components that take one.
*/
/****
private static Snark parseArguments(String[] args,
StorageListener slistener,
CoordinatorListener clistener)
@ -932,6 +971,7 @@ public class Snark
int i = 0;
while (i < args.length)
{
****/
/*
if (args[i].equals("--debug"))
{
@ -953,7 +993,9 @@ public class Snark
catch (NumberFormatException nfe) { }
}
}
else */ if (args[i].equals("--port"))
else */
/****
if (args[i].equals("--port"))
{
if (args.length - 1 < i + 1)
usage("--port needs port number to listen on");
@ -1059,6 +1101,7 @@ public class Snark
System.out.println
(" \tor (with --share) a file to share.");
}
****/
/**
* Aborts program abnormally.
@ -1102,9 +1145,15 @@ public class Snark
*/
public void gotMetaInfo(PeerCoordinator coordinator, MetaInfo metainfo) {
try {
String base = Storage.filterName(metainfo.getName());
File baseFile;
if (_util.getFilesPublic())
baseFile = new File(rootDataDir, base);
else
baseFile = new SecureFile(rootDataDir, base);
// The following two may throw IOE...
storage = new Storage(_util, metainfo, this);
storage.check(rootDataDir);
storage = new Storage(_util, baseFile, metainfo, this, false);
storage.check();
// ... so don't set meta until here
meta = metainfo;
if (completeListener != null) {

View File

@ -15,6 +15,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@ -26,6 +27,7 @@ import java.util.concurrent.LinkedBlockingQueue;
import net.i2p.I2PAppContext;
import net.i2p.app.ClientAppManager;
import net.i2p.crypto.SigType;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.update.*;
@ -40,6 +42,7 @@ import net.i2p.util.SimpleTimer;
import net.i2p.util.SimpleTimer2;
import org.klomp.snark.dht.DHT;
import org.klomp.snark.dht.KRPC;
/**
* Manage multiple snarks
@ -55,7 +58,10 @@ public class SnarkManager implements CompleteListener {
/** used to prevent DirMonitor from deleting torrents that don't have a torrent file yet */
private final Set<String> _magnets;
private final Object _addSnarkLock;
private /* FIXME final FIXME */ File _configFile;
private File _configFile;
private File _configDir;
/** one lock for all config, files for simplicity */
private final Object _configLock = new Object();
private Properties _config;
private final I2PAppContext _context;
private final String _contextPath;
@ -81,14 +87,22 @@ public class SnarkManager implements CompleteListener {
public static final String PROP_UPLOADERS_TOTAL = "i2psnark.uploaders.total";
public static final String PROP_UPBW_MAX = "i2psnark.upbw.max";
public static final String PROP_DIR = "i2psnark.dir";
public static final String PROP_META_PREFIX = "i2psnark.zmeta.";
public static final String PROP_META_BITFIELD_SUFFIX = ".bitfield";
public static final String PROP_META_PRIORITY_SUFFIX = ".priority";
public static final String PROP_META_MAGNET_PREFIX = "i2psnark.magnet.";
private static final String PROP_META_PREFIX = "i2psnark.zmeta.";
private static final String PROP_META_STAMP = "stamp";
private static final String PROP_META_BASE = "base";
private static final String PROP_META_BITFIELD = "bitfield";
private static final String PROP_META_PRIORITY = "priority";
private static final String PROP_META_PRESERVE_NAMES = "preserveFileNames";
private static final String PROP_META_UPLOADED = "uploaded";
//private static final String PROP_META_BITFIELD_SUFFIX = ".bitfield";
//private static final String PROP_META_PRIORITY_SUFFIX = ".priority";
private static final String PROP_META_MAGNET_PREFIX = "i2psnark.magnet.";
private static final String CONFIG_FILE_SUFFIX = ".config";
private static final String CONFIG_FILE = "i2psnark" + CONFIG_FILE_SUFFIX;
public static final String PROP_FILES_PUBLIC = "i2psnark.filesPublic";
public static final String PROP_AUTO_START = "i2snark.autoStart"; // oops
public static final String PROP_OLD_AUTO_START = "i2snark.autoStart"; // oops
public static final String PROP_AUTO_START = "i2psnark.autoStart"; // convert in migration to new config file
public static final String DEFAULT_AUTO_START = "false";
//public static final String PROP_LINK_PREFIX = "i2psnark.linkPrefix";
//public static final String DEFAULT_LINK_PREFIX = "file:///";
@ -109,10 +123,16 @@ public class SnarkManager implements CompleteListener {
public static final int DEFAULT_STARTUP_DELAY = 3;
public static final int DEFAULT_REFRESH_DELAY_SECS = 60;
private static final int DEFAULT_PAGE_SIZE = 50;
public static final String CONFIG_DIR_SUFFIX = ".d";
private static final String SUBDIR_PREFIX = "s";
private static final String B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-~";
/**
* "name", "announceURL=websiteURL" pairs
* '=' in announceURL must be escaped as &#44;
*
* Please use host name, not b32 or full dest, in announce URL. Ensure in default hosts.txt.
* Please use host name, not b32 or full dest, in website URL. Ensure in default hosts.txt.
*/
private static final String DEFAULT_TRACKERS[] = {
// "Postman", "http://YRgrgTLGnbTq2aZOZDJQ~o6Uk5k6TK-OZtx0St9pb0G-5EGYURZioxqYG8AQt~LgyyI~NCj6aYWpPO-150RcEvsfgXLR~CxkkZcVpgt6pns8SRc3Bi-QSAkXpJtloapRGcQfzTtwllokbdC-aMGpeDOjYLd8b5V9Im8wdCHYy7LRFxhEtGb~RL55DA8aYOgEXcTpr6RPPywbV~Qf3q5UK55el6Kex-6VCxreUnPEe4hmTAbqZNR7Fm0hpCiHKGoToRcygafpFqDw5frLXToYiqs9d4liyVB-BcOb0ihORbo0nS3CLmAwZGvdAP8BZ7cIYE3Z9IU9D1G8JCMxWarfKX1pix~6pIA-sp1gKlL1HhYhPMxwyxvuSqx34o3BqU7vdTYwWiLpGM~zU1~j9rHL7x60pVuYaXcFQDR4-QVy26b6Pt6BlAZoFmHhPcAuWfu-SFhjyZYsqzmEmHeYdAwa~HojSbofg0TMUgESRXMw6YThK1KXWeeJVeztGTz25sL8AAAA.i2p/announce.php=http://tracker.postman.i2p/"
@ -125,17 +145,40 @@ public class SnarkManager implements CompleteListener {
// , "mastertracker", "http://VzXD~stRKbL3MOmeTn1iaCQ0CFyTmuFHiKYyo0Rd~dFPZFCYH-22rT8JD7i-C2xzYFa4jT5U2aqHzHI-Jre4HL3Ri5hFtZrLk2ax3ji7Qfb6qPnuYkuiF2E2UDmKUOppI8d9Ye7tjdhQVCy0izn55tBaB-U7UWdcvSK2i85sauyw3G0Gfads1Rvy5-CAe2paqyYATcDmGjpUNLoxbfv9KH1KmwRTNH6k1v4PyWYYnhbT39WfKMbBjSxVQRdi19cyJrULSWhjxaQfJHeWx5Z8Ev4bSPByBeQBFl2~4vqy0S5RypINsRSa3MZdbiAAyn5tr5slWR6QdoqY3qBQgBJFZppy-3iWkFqqKgSxCPundF8gdDLC5ddizl~KYcYKl42y9SGFHIukH-TZs8~em0~iahzsqWVRks3zRG~tlBcX2U3M2~OJs~C33-NKhyfZT7-XFBREvb8Szmd~p66jDxrwOnKaku-G6DyoQipJqIz4VHmY9-y5T8RrUcJcM-5lVoMpAAAA.i2p/announce.php=http://tracker.mastertracker.i2p/"
// , "Galen", "http://5jpwQMI5FT303YwKa5Rd38PYSX04pbIKgTaKQsWbqoWjIfoancFdWCShXHLI5G5ofOb0Xu11vl2VEMyPsg1jUFYSVnu4-VfMe3y4TKTR6DTpetWrnmEK6m2UXh91J5DZJAKlgmO7UdsFlBkQfR2rY853-DfbJtQIFl91tbsmjcA5CGQi4VxMFyIkBzv-pCsuLQiZqOwWasTlnzey8GcDAPG1LDcvfflGV~6F5no9mnuisZPteZKlrv~~TDoXTj74QjByWc4EOYlwqK8sbU9aOvz~s31XzErbPTfwiawiaZ0RUI-IDrKgyvmj0neuFTWgjRGVTH8bz7cBZIc3viy6ioD-eMQOrXaQL0TCWZUelRwHRvgdPiQrxdYQs7ixkajeHzxi-Pq0EMm5Vbh3j3Q9kfUFW3JjFDA-MLB4g6XnjCbM5J1rC0oOBDCIEfhQkszru5cyLjHiZ5yeA0VThgu~c7xKHybv~OMXION7V8pBKOgET7ZgAkw1xgYe3Kkyq5syAAAA.i2p/tr/announce.php=http://galen.i2p/tr/"
"Postman", "http://tracker2.postman.i2p/announce.php=http://tracker2.postman.i2p/"
,"Welterde", "http://tracker.welterde.i2p/a=http://tracker.welterde.i2p/stats?mode=top5"
// ,"Welterde", "http://tracker.welterde.i2p/a=http://tracker.welterde.i2p/stats?mode=top5"
,"Diftracker", "http://diftracker.i2p/announce.php=http://diftracker.i2p/"
// , "CRSTRACK", "http://b4G9sCdtfvccMAXh~SaZrPqVQNyGQbhbYMbw6supq2XGzbjU4NcOmjFI0vxQ8w1L05twmkOvg5QERcX6Mi8NQrWnR0stLExu2LucUXg1aYjnggxIR8TIOGygZVIMV3STKH4UQXD--wz0BUrqaLxPhrm2Eh9Hwc8TdB6Na4ShQUq5Xm8D4elzNUVdpM~RtChEyJWuQvoGAHY3ppX-EJJLkiSr1t77neS4Lc-KofMVmgI9a2tSSpNAagBiNI6Ak9L1T0F9uxeDfEG9bBSQPNMOSUbAoEcNxtt7xOW~cNOAyMyGydwPMnrQ5kIYPY8Pd3XudEko970vE0D6gO19yoBMJpKx6Dh50DGgybLQ9CpRaynh2zPULTHxm8rneOGRcQo8D3mE7FQ92m54~SvfjXjD2TwAVGI~ae~n9HDxt8uxOecAAvjjJ3TD4XM63Q9TmB38RmGNzNLDBQMEmJFpqQU8YeuhnS54IVdUoVQFqui5SfDeLXlSkh4vYoMU66pvBfWbAAAA.i2p/tracker/announce.php=http://crstrack.i2p/tracker/"
// ,"Exotrack", "http://blbgywsjubw3d2zih2giokakhe3o2cko7jtte4risb3hohbcoyva.b32.i2p/announce.php=http://exotrack.i2p/"
,"DgTrack", "http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a=http://opentracker.dg2.i2p/"
// The following is ECDSA_SHA256_P256
,"TheBland", "http://s5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq.b32.i2p/a=http://tracker.thebland.i2p/stats?mode=peer"
};
/** URL. This is our equivalent to router.utorrent.com for bootstrap */
public static final String DEFAULT_BACKUP_TRACKER = "http://opentracker.dg2.i2p/a";
/** URLs, comma-separated. Used for "announce to open trackers also" */
private static final String DEFAULT_OPENTRACKERS = DEFAULT_BACKUP_TRACKER +
(SigType.ECDSA_SHA256_P256.isAvailable() ? ",http://tracker.thebland.i2p/a" : "");
public static final Set<String> DEFAULT_TRACKER_ANNOUNCES;
/** host names for config form */
public static final Set<String> KNOWN_OPENTRACKERS = new HashSet(Arrays.asList(new String[] {
"tracker.welterde.i2p", "cfmqlafjfmgkzbt4r3jsfyhgsr5abgxryl6fnz3d3y5a365di5aa.b32.i2p",
"opentracker.dg2.i2p", "w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p",
"tracker.thebland.i2p", "s5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq.b32.i2p",
"psi.i2p", "avviiexdngd32ccoy4kuckvc3mkf53ycvzbz6vz75vzhv4tbpk5a.b32.i2p",
"opentracker.psi.i2p", "vmow3h54yljn7zvzbqepdddt5fmygijujycod2q6yznpy2rrzuwa.b32.i2p",
"tracker.killyourtv.i2p", "5mpvzxfbd4rtped3c7ln4ddw52e7i7t56s36ztky4ustxtxrjdpa.b32.i2p",
"opendiftracker.i2p", "bikpeyxci4zuyy36eau5ycw665dplun4yxamn7vmsastejdqtfoq.b32.i2p"
}));
static {
Set<String> ann = new HashSet();
for (int i = 1; i < DEFAULT_TRACKERS.length; i += 2) {
if (DEFAULT_TRACKERS[i-1].equals("TheBland") && !SigType.ECDSA_SHA256_P256.isAvailable())
continue;
String urls[] = DEFAULT_TRACKERS[i].split("=", 2);
ann.add(urls[0]);
}
@ -169,9 +212,11 @@ public class SnarkManager implements CompleteListener {
_messages = new LinkedBlockingQueue<String>();
_util = new I2PSnarkUtil(_context, ctxName);
String cfile = ctxName + CONFIG_FILE_SUFFIX;
_configFile = new File(cfile);
if (!_configFile.isAbsolute())
_configFile = new File(_context.getConfigDir(), cfile);
File configFile = new File(cfile);
if (!configFile.isAbsolute())
configFile = new File(_context.getConfigDir(), cfile);
_configDir = migrateConfig(configFile);
_configFile = new File(_configDir, CONFIG_FILE);
_trackerMap = new ConcurrentHashMap<String, Tracker>(4);
loadConfig(null);
}
@ -341,20 +386,179 @@ public class SnarkManager implements CompleteListener {
return f;
}
/**
* Migrate the old flat config file to the new config dir
* containing the config file minus the per-torrent entries,
* the dht file, and 64 subdirs for per-torrent config files
* Caller must synch.
*
* @return the new config directory, non-null
* @throws RuntimeException on creation fail
* @since 0.9.15
*/
private File migrateConfig(File oldFile) {
File dir = new SecureDirectory(oldFile + CONFIG_DIR_SUFFIX);
if ((!dir.exists()) && (!dir.mkdirs())) {
_log.error("Error creating I2PSnark config dir " + dir);
throw new RuntimeException("Error creating I2PSnark config dir " + dir);
}
// move the DHT file as-is
String oldName = oldFile.toString();
if (oldName.endsWith(CONFIG_FILE_SUFFIX)) {
String oldDHT = oldName.replace(CONFIG_FILE_SUFFIX, KRPC.DHT_FILE_SUFFIX);
File oldDHTFile = new File(oldDHT);
if (oldDHTFile.exists()) {
File newDHTFile = new File(dir, "i2psnark" + KRPC.DHT_FILE_SUFFIX);
FileUtil.rename(oldDHTFile, newDHTFile);
}
}
if (!oldFile.exists())
return dir;
Properties oldProps = new Properties();
try {
DataHelper.loadProps(oldProps, oldFile);
// a good time to fix this ancient typo
String auto = (String) oldProps.remove(PROP_OLD_AUTO_START);
if (auto != null)
oldProps.setProperty(PROP_AUTO_START, auto);
} catch (IOException ioe) {
_log.error("Error loading I2PSnark config " + oldFile, ioe);
return dir;
}
// Gather the props for each torrent, removing them from config
// old b64 of hash as key
Map<String, Properties> configs = new HashMap<String, Properties>(16);
for (Iterator<Map.Entry<Object, Object>> iter = oldProps.entrySet().iterator(); iter.hasNext(); ) {
Map.Entry<Object, Object> e = iter.next();
String k = (String) e.getKey();
if (k.startsWith(PROP_META_PREFIX)) {
iter.remove();
String v = (String) e.getValue();
try {
k = k.substring(PROP_META_PREFIX.length());
String h = k.substring(0, 28); // length of b64 of 160 bit infohash
k = k.substring(29); // skip '.'
Properties tprops = configs.get(h);
if (tprops == null) {
tprops = new OrderedProperties();
configs.put(h, tprops);
}
if (k.equals(PROP_META_BITFIELD)) {
// old config was timestamp,bitfield; split them
int comma = v.indexOf(',');
if (comma > 0 && v.length() > comma + 1) {
tprops.put(PROP_META_STAMP, v.substring(0, comma));
tprops.put(PROP_META_BITFIELD, v.substring(comma + 1));
} else {
// timestamp only??
tprops.put(PROP_META_STAMP, v);
}
} else {
tprops.put(k, v);
}
} catch (IndexOutOfBoundsException ioobe) {
continue;
}
}
}
// Now make a config file for each torrent
for (Map.Entry<String, Properties> e : configs.entrySet()) {
String b64 = e.getKey();
Properties props = e.getValue();
if (props.isEmpty())
continue;
b64 = b64.replace('$', '=');
byte[] ih = Base64.decode(b64);
if (ih == null || ih.length != 20)
continue;
File cfg = configFile(dir, ih);
if (!cfg.exists()) {
File subdir = cfg.getParentFile();
if (!subdir.exists())
subdir.mkdirs();
try {
DataHelper.storeProps(props, cfg);
} catch (IOException ioe) {
_log.error("Error storing I2PSnark config " + cfg, ioe);
}
}
}
// now store in new location, minus the zmeta entries
File newFile = new File(dir, CONFIG_FILE);
Properties newProps = new OrderedProperties();
newProps.putAll(oldProps);
try {
DataHelper.storeProps(newProps, newFile);
} catch (IOException ioe) {
_log.error("Error storing I2PSnark config " + newFile, ioe);
return dir;
}
oldFile.delete();
if (_log.shouldLog(Log.WARN))
_log.warn("Config migrated from " + oldFile + " to " + dir);
return dir;
}
/**
* The config for a torrent
* @return non-null, possibly empty
* @since 0.9.15
*/
private Properties getConfig(Snark snark) {
return getConfig(snark.getInfoHash());
}
/**
* The config for a torrent
* @param ih 20-byte infohash
* @return non-null, possibly empty
* @since 0.9.15
*/
private Properties getConfig(byte[] ih) {
Properties rv = new OrderedProperties();
File conf = configFile(_configDir, ih);
synchronized(_configLock) { // one lock for all
try {
DataHelper.loadProps(rv, conf);
} catch (IOException ioe) {}
}
return rv;
}
/**
* The config file for a torrent
* @param confDir the config directory
* @param ih 20-byte infohash
* @since 0.9.15
*/
private static File configFile(File confDir, byte[] ih) {
String hex = I2PSnarkUtil.toHex(ih);
File subdir = new SecureDirectory(confDir, SUBDIR_PREFIX + B64.charAt((ih[0] >> 2) & 0x3f));
return new File(subdir, hex + CONFIG_FILE_SUFFIX);
}
/** null to set initial defaults */
public void loadConfig(String filename) {
synchronized(_configLock) {
locked_loadConfig(filename);
}
}
/** null to set initial defaults */
private void locked_loadConfig(String filename) {
if (_config == null)
_config = new OrderedProperties();
if (filename != null) {
File cfg = new File(filename);
if (!cfg.isAbsolute())
cfg = new File(_context.getConfigDir(), filename);
_configFile = cfg;
if (cfg.exists()) {
_configDir = migrateConfig(cfg);
_configFile = new File(_configDir, CONFIG_FILE);
if (_configFile.exists()) {
try {
DataHelper.loadProps(_config, cfg);
DataHelper.loadProps(_config, _configFile);
} catch (IOException ioe) {
_log.error("Error loading I2PSnark config '" + filename + "'", ioe);
_log.error("Error loading I2PSnark config " + _configFile, ioe);
}
}
}
@ -364,7 +568,7 @@ public class SnarkManager implements CompleteListener {
if (!_config.containsKey(PROP_I2CP_PORT))
_config.setProperty(PROP_I2CP_PORT, "7654");
if (!_config.containsKey(PROP_I2CP_OPTS))
_config.setProperty(PROP_I2CP_OPTS, "inbound.length=2 inbound.lengthVariance=0 outbound.length=2 outbound.lengthVariance=0 inbound.quantity=3 outbound.quantity=3");
_config.setProperty(PROP_I2CP_OPTS, "inbound.length=3 outbound.length=3 inbound.quantity=3 outbound.quantity=3");
//if (!_config.containsKey(PROP_EEP_HOST))
// _config.setProperty(PROP_EEP_HOST, "127.0.0.1");
//if (!_config.containsKey(PROP_EEP_PORT))
@ -388,6 +592,7 @@ public class SnarkManager implements CompleteListener {
// _config.setProperty(PROP_USE_DHT, Boolean.toString(I2PSnarkUtil.DEFAULT_USE_DHT));
updateConfig();
}
/**
* Get current theme.
* @return String -- the current theme
@ -419,10 +624,10 @@ public class SnarkManager implements CompleteListener {
/**
* Get all themes
* @return String[] -- Array of all the themes found.
* @return String[] -- Array of all the themes found, non-null, unsorted
*/
public String[] getThemes() {
String[] themes = null;
String[] themes;
// "docs/themes/snark/"
File dir = new File(_context.getBaseDir(), "docs/themes/snark");
FileFilter fileFilter = new FileFilter() { public boolean accept(File file) { return file.isDirectory(); } };
@ -433,6 +638,8 @@ public class SnarkManager implements CompleteListener {
for(int i = 0; i < dirnames.length; i++) {
themes[i] = dirnames[i].getName();
}
} else {
themes = new String[0];
}
// return the map.
return themes;
@ -474,9 +681,7 @@ public class SnarkManager implements CompleteListener {
_util.setMaxUpBW(getInt(PROP_UPBW_MAX, DEFAULT_MAX_UP_BW));
_util.setStartupDelay(getInt(PROP_STARTUP_DELAY, DEFAULT_STARTUP_DELAY));
_util.setFilesPublic(areFilesPublic());
String ot = _config.getProperty(PROP_OPENTRACKERS);
if (ot != null)
_util.setOpenTrackers(getOpenTrackers());
_util.setOpenTrackers(getListConfig(PROP_OPENTRACKERS, DEFAULT_OPENTRACKERS));
String useOT = _config.getProperty(PROP_USE_OPENTRACKERS);
boolean bOT = useOT == null || Boolean.parseBoolean(useOT);
_util.setUseOpenTrackers(bOT);
@ -505,6 +710,18 @@ public class SnarkManager implements CompleteListener {
String startDelay, String pageSize, String seedPct, String eepHost,
String eepPort, String i2cpHost, String i2cpPort, String i2cpOpts,
String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme) {
synchronized(_configLock) {
locked_updateConfig(dataDir, filesPublic, autoStart, refreshDelay,
startDelay, pageSize, seedPct, eepHost,
eepPort, i2cpHost, i2cpPort, i2cpOpts,
upLimit, upBW, useOpenTrackers, useDHT, theme);
}
}
private void locked_updateConfig(String dataDir, boolean filesPublic, boolean autoStart, String refreshDelay,
String startDelay, String pageSize, String seedPct, String eepHost,
String eepPort, String i2cpHost, String i2cpPort, String i2cpOpts,
String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme) {
boolean changed = false;
boolean interruptMonitor = false;
//if (eepHost != null) {
@ -764,7 +981,7 @@ public class SnarkManager implements CompleteListener {
private List<String> getOpenTrackers() {
if (!_util.shouldUseOpenTrackers())
return Collections.emptyList();
return getListConfig(PROP_OPENTRACKERS, I2PSnarkUtil.DEFAULT_OPENTRACKERS);
return getListConfig(PROP_OPENTRACKERS, DEFAULT_OPENTRACKERS);
}
/**
@ -782,7 +999,7 @@ public class SnarkManager implements CompleteListener {
public void saveOpenTrackers(List<String> ot) {
setListConfig(PROP_OPENTRACKERS, ot);
if (ot == null)
ot = Collections.singletonList(I2PSnarkUtil.DEFAULT_OPENTRACKERS);
ot = getListConfig(PROP_OPENTRACKERS, DEFAULT_OPENTRACKERS);
_util.setOpenTrackers(ot);
addMessage(_("Open Tracker list changed - torrent restart required to take effect."));
saveConfig();
@ -836,7 +1053,7 @@ public class SnarkManager implements CompleteListener {
public void saveConfig() {
try {
synchronized (_configFile) {
synchronized (_configLock) {
DataHelper.storeProps(_config, _configFile);
}
} catch (IOException ioe) {
@ -844,13 +1061,6 @@ public class SnarkManager implements CompleteListener {
}
}
public Properties getConfig() { return _config; }
/** @since Jetty 7 */
public String getConfigFilename() {
return _configFile.getAbsolutePath();
}
/** hardcoded for sanity. perhaps this should be customizable, for people who increase their ulimit, etc. */
public static final int MAX_FILES_PER_TORRENT = 512;
@ -908,15 +1118,25 @@ public class SnarkManager implements CompleteListener {
/**
* Caller must verify this torrent is not already added.
*
* @param filename the absolute path to save the metainfo to, generally ending in ".torrent"
* @param baseFile may be null, if so look in dataDir
* @throws RuntimeException via Snark.fatal()
*/
private void addTorrent(String filename) { addTorrent(filename, false); }
private void addTorrent(String filename, File baseFile, boolean dontAutoStart) {
addTorrent(filename, baseFile, dontAutoStart, null);
}
/**
* Caller must verify this torrent is not already added.
*
* @param filename the absolute path to save the metainfo to, generally ending in ".torrent"
* @param baseFile may be null, if so look in dataDir
* @param dataDir must exist, or null to default to snark data directory
* @throws RuntimeException via Snark.fatal()
* @since 0.9.17
*/
private void addTorrent(String filename, boolean dontAutoStart) {
private void addTorrent(String filename, File baseFile, boolean dontAutoStart, File dataDir) {
if ((!dontAutoStart) && !_util.connected()) {
addMessage(_("Connecting to I2P"));
boolean ok = _util.connect();
@ -933,7 +1153,8 @@ public class SnarkManager implements CompleteListener {
addMessage(_("Error: Could not add the torrent {0}", filename) + ": " + ioe);
return;
}
File dataDir = getDataDir();
if (dataDir == null)
dataDir = getDataDir();
Snark torrent = null;
synchronized (_snarks) {
torrent = _snarks.get(filename);
@ -997,9 +1218,13 @@ public class SnarkManager implements CompleteListener {
} else {
// TODO load saved closest DHT nodes and pass to the Snark ?
// This may take a LONG time
if (baseFile == null)
baseFile = getSavedBaseFile(info.getInfoHash());
if (_log.shouldLog(Log.INFO))
_log.info("New Snark, torrent: " + filename + " base: " + baseFile);
torrent = new Snark(_util, filename, null, -1, null, null, this,
_peerCoordinatorSet, _connectionAcceptor,
false, dataDir.getPath());
false, dataDir.getPath(), baseFile);
loadSavedFilePriorities(torrent);
synchronized (_snarks) {
_snarks.put(filename, torrent);
@ -1045,7 +1270,25 @@ public class SnarkManager implements CompleteListener {
*/
public void addMagnet(String name, byte[] ih, String trackerURL, boolean updateStatus) {
// updateStatus is true from UI, false from config file bulk add
addMagnet(name, ih, trackerURL, updateStatus, updateStatus, this);
addMagnet(name, ih, trackerURL, updateStatus, updateStatus, null, this);
}
/**
* Add a torrent with the info hash alone (magnet / maggot)
*
* @param name hex or b32 name from the magnet link
* @param ih 20 byte info hash
* @param trackerURL may be null
* @param updateStatus should we add this magnet to the config file,
* to save it across restarts, in case we don't get
* the metadata before shutdown?
* @param dataDir must exist, or null to default to snark data directory
* @throws RuntimeException via Snark.fatal()
* @since 0.9.17
*/
public void addMagnet(String name, byte[] ih, String trackerURL, boolean updateStatus, File dataDir) {
// updateStatus is true from UI, false from config file bulk add
addMagnet(name, ih, trackerURL, updateStatus, updateStatus, dataDir, this);
}
/**
@ -1058,16 +1301,18 @@ public class SnarkManager implements CompleteListener {
* @param updateStatus should we add this magnet to the config file,
* to save it across restarts, in case we don't get
* the metadata before shutdown?
* @param dataDir must exist, or null to default to snark data directory
* @param listener to intercept callbacks, should pass through to this
* @return the new Snark or null on failure
* @throws RuntimeException via Snark.fatal()
* @since 0.9.4
*/
public Snark addMagnet(String name, byte[] ih, String trackerURL, boolean updateStatus,
boolean autoStart, CompleteListener listener) {
boolean autoStart, File dataDir, CompleteListener listener) {
String dirPath = dataDir != null ? dataDir.getAbsolutePath() : getDataDir().getPath();
Snark torrent = new Snark(_util, name, ih, trackerURL, listener,
_peerCoordinatorSet, _connectionAcceptor,
false, getDataDir().getPath());
false, dirPath);
synchronized (_snarks) {
Snark snark = getTorrentByInfoHash(ih);
@ -1142,32 +1387,39 @@ public class SnarkManager implements CompleteListener {
* This verifies that a torrent with this infohash is not already added.
* This may take a LONG time to create or check the storage.
*
* Called from servlet. This is only for the 'create torrent' form.
*
* @param metainfo the metainfo for the torrent
* @param bitfield the current completion status of the torrent
* @param filename the absolute path to save the metainfo to, generally ending in ".torrent", which is also the name of the torrent
* Must be a filesystem-safe name.
* @param baseFile may be null, if so look in rootDataDir
* @throws RuntimeException via Snark.fatal()
* @return success
* @since 0.8.4
*/
public void addTorrent(MetaInfo metainfo, BitField bitfield, String filename, boolean dontAutoStart) throws IOException {
public boolean addTorrent(MetaInfo metainfo, BitField bitfield, String filename,
File baseFile, boolean dontAutoStart) throws IOException {
// prevent interference by DirMonitor
synchronized (_snarks) {
Snark snark = getTorrentByInfoHash(metainfo.getInfoHash());
if (snark != null) {
addMessage(_("Torrent with this info hash is already running: {0}", snark.getBaseName()));
return;
return false;
}
// so addTorrent won't recheck
saveTorrentStatus(metainfo, bitfield, null); // no file priorities
saveTorrentStatus(metainfo, bitfield, null, baseFile, true, 0); // no file priorities
try {
locked_writeMetaInfo(metainfo, filename, areFilesPublic());
// hold the lock for a long time
addTorrent(filename, dontAutoStart);
addTorrent(filename, baseFile, dontAutoStart);
} catch (IOException ioe) {
addMessage(_("Failed to copy torrent file to {0}", filename));
_log.error("Failed to write torrent file", ioe);
return false;
}
}
return true;
}
/**
@ -1179,10 +1431,11 @@ public class SnarkManager implements CompleteListener {
* @param fromfile where the file is now, presumably in a temp directory somewhere
* @param filename the absolute path to save the metainfo to, generally ending in ".torrent", which is also the name of the torrent
* Must be a filesystem-safe name.
* @param dataDir must exist, or null to default to snark data directory
* @throws RuntimeException via Snark.fatal()
* @since 0.8.4
*/
public void copyAndAddTorrent(File fromfile, String filename) throws IOException {
public void copyAndAddTorrent(File fromfile, String filename, File dataDir) throws IOException {
// prevent interference by DirMonitor
synchronized (_snarks) {
boolean success = FileUtil.copy(fromfile.getAbsolutePath(), filename, false);
@ -1194,7 +1447,7 @@ public class SnarkManager implements CompleteListener {
if (!areFilesPublic())
SecureFileOutputStream.setPerms(new File(filename));
// hold the lock for a long time
addTorrent(filename);
addTorrent(filename, null, false, dataDir);
}
}
@ -1235,16 +1488,10 @@ public class SnarkManager implements CompleteListener {
* A Snark.CompleteListener method.
*/
public long getSavedTorrentTime(Snark snark) {
byte[] ih = snark.getInfoHash();
String infohash = Base64.encode(ih);
infohash = infohash.replace('=', '$');
String time = _config.getProperty(PROP_META_PREFIX + infohash + PROP_META_BITFIELD_SUFFIX);
Properties config = getConfig(snark);
String time = config.getProperty(PROP_META_STAMP);
if (time == null)
return 0;
int comma = time.indexOf(',');
if (comma <= 0)
return 0;
time = time.substring(0, comma);
try { return Long.parseLong(time); } catch (NumberFormatException nfe) {}
return 0;
}
@ -1258,16 +1505,10 @@ public class SnarkManager implements CompleteListener {
MetaInfo metainfo = snark.getMetaInfo();
if (metainfo == null)
return null;
byte[] ih = snark.getInfoHash();
String infohash = Base64.encode(ih);
infohash = infohash.replace('=', '$');
String bf = _config.getProperty(PROP_META_PREFIX + infohash + PROP_META_BITFIELD_SUFFIX);
Properties config = getConfig(snark);
String bf = config.getProperty(PROP_META_BITFIELD);
if (bf == null)
return null;
int comma = bf.indexOf(',');
if (comma <= 0)
return null;
bf = bf.substring(comma + 1).trim();
int len = metainfo.getPieces();
if (bf.equals(".")) {
BitField bitfield = new BitField(len);
@ -1294,10 +1535,8 @@ public class SnarkManager implements CompleteListener {
return;
if (metainfo.getFiles() == null)
return;
byte[] ih = snark.getInfoHash();
String infohash = Base64.encode(ih);
infohash = infohash.replace('=', '$');
String pri = _config.getProperty(PROP_META_PREFIX + infohash + PROP_META_PRIORITY_SUFFIX);
Properties config = getConfig(snark);
String pri = config.getProperty(PROP_META_PRIORITY);
if (pri == null)
return;
int filecount = metainfo.getFiles().size();
@ -1312,24 +1551,82 @@ public class SnarkManager implements CompleteListener {
}
storage.setFilePriorities(rv);
}
/**
* Get the base location for a torrent from the config file.
* @return File or null, doesn't necessarily exist
* @since 0.9.15
*/
private File getSavedBaseFile(byte[] ih) {
Properties config = getConfig(ih);
String base = config.getProperty(PROP_META_BASE);
if (base == null)
return null;
return new File(base);
}
/**
* Get setting for a torrent from the config file.
* @return setting, false if not found
* @since 0.9.15
*/
public boolean getSavedPreserveNamesSetting(Snark snark) {
Properties config = getConfig(snark);
return Boolean.parseBoolean(config.getProperty(PROP_META_PRESERVE_NAMES));
}
/**
* Get setting for a torrent from the config file.
* @return setting, 0 if not found
* @since 0.9.15
*/
public long getSavedUploaded(Snark snark) {
Properties config = getConfig(snark);
if (config != null) {
try {
return Long.parseLong(config.getProperty(PROP_META_UPLOADED));
} catch (NumberFormatException nfe) {}
}
return 0;
}
/**
* Save the completion status of a torrent and other data in the config file
* for that torrent. Does nothing for magnets.
*
* @since 0.9.15
*/
public void saveTorrentStatus(Snark snark) {
MetaInfo meta = snark.getMetaInfo();
Storage storage = snark.getStorage();
if (meta == null || storage == null)
return;
saveTorrentStatus(meta, storage.getBitField(), storage.getFilePriorities(),
storage.getBase(), storage.getPreserveFileNames(),
snark.getUploaded());
}
/**
* Save the completion status of a torrent and the current time in the config file
* in the form "i2psnark.zmeta.$base64infohash=$time,$base64bitfield".
* The config file property key is appended with the Base64 of the infohash,
* with the '=' changed to '$' since a key can't contain '='.
* for that torrent.
* The time is a standard long converted to string.
* The status is either a bitfield converted to Base64 or "." for a completed
* torrent to save space in the config file and in memory.
*
* @param bitfield non-null
* @param priorities may be null
* @param base may be null
*/
public void saveTorrentStatus(MetaInfo metainfo, BitField bitfield, int[] priorities) {
private void saveTorrentStatus(MetaInfo metainfo, BitField bitfield, int[] priorities,
File base, boolean preserveNames, long uploaded) {
synchronized (_configLock) {
locked_saveTorrentStatus(metainfo, bitfield, priorities, base, preserveNames, uploaded);
}
}
private void locked_saveTorrentStatus(MetaInfo metainfo, BitField bitfield, int[] priorities,
File base, boolean preserveNames, long uploaded) {
byte[] ih = metainfo.getInfoHash();
String infohash = Base64.encode(ih);
infohash = infohash.replace('=', '$');
String now = "" + System.currentTimeMillis();
String bfs;
if (bitfield.complete()) {
bfs = ".";
@ -1337,10 +1634,15 @@ public class SnarkManager implements CompleteListener {
byte[] bf = bitfield.getFieldBytes();
bfs = Base64.encode(bf);
}
_config.setProperty(PROP_META_PREFIX + infohash + PROP_META_BITFIELD_SUFFIX, now + "," + bfs);
Properties config = getConfig(ih);
config.setProperty(PROP_META_STAMP, Long.toString(System.currentTimeMillis()));
config.setProperty(PROP_META_BITFIELD, bfs);
config.setProperty(PROP_META_PRESERVE_NAMES, Boolean.toString(preserveNames));
config.setProperty(PROP_META_UPLOADED, Long.toString(uploaded));
if (base != null)
config.setProperty(PROP_META_BASE, base.getAbsolutePath());
// now the file priorities
String prop = PROP_META_PREFIX + infohash + PROP_META_PRIORITY_SUFFIX;
if (priorities != null) {
boolean nonzero = false;
for (int i = 0; i < priorities.length; i++) {
@ -1358,30 +1660,40 @@ public class SnarkManager implements CompleteListener {
if (i != priorities.length - 1)
buf.append(',');
}
_config.setProperty(prop, buf.toString());
config.setProperty(PROP_META_PRIORITY, buf.toString());
} else {
_config.remove(prop);
config.remove(PROP_META_PRIORITY);
}
} else {
_config.remove(prop);
config.remove(PROP_META_PRIORITY);
}
// TODO save closest DHT nodes too
saveConfig();
File conf = configFile(_configDir, ih);
File subdir = conf.getParentFile();
if (!subdir.exists())
subdir.mkdirs();
try {
DataHelper.storeProps(config, conf);
} catch (IOException ioe) {
_log.error("Unable to save the config to " + conf);
}
}
/**
* Remove the status of a torrent from the config file.
* This may help the config file from growing too big.
* Remove the status of a torrent by removing the config file.
*/
public void removeTorrentStatus(MetaInfo metainfo) {
byte[] ih = metainfo.getInfoHash();
String infohash = Base64.encode(ih);
infohash = infohash.replace('=', '$');
_config.remove(PROP_META_PREFIX + infohash + PROP_META_BITFIELD_SUFFIX);
_config.remove(PROP_META_PREFIX + infohash + PROP_META_PRIORITY_SUFFIX);
saveConfig();
File conf = configFile(_configDir, ih);
synchronized (_configLock) {
conf.delete();
File subdir = conf.getParentFile();
String[] files = subdir.list();
if (files != null && files.length == 0)
subdir.delete();
}
}
/**
@ -1566,10 +1878,11 @@ public class SnarkManager implements CompleteListener {
if (meta == null || storage == null)
return;
StringBuilder buf = new StringBuilder(256);
buf.append("<a href=\"").append(_contextPath).append('/').append(storage.getBaseName());
String base = DataHelper.escapeHTML(storage.getBaseName());
buf.append("<a href=\"").append(_contextPath).append('/').append(base);
if (meta.getFiles() != null)
buf.append('/');
buf.append("\">").append(storage.getBaseName()).append("</a>");
buf.append("\">").append(base).append("</a>");
addMessageNoEscape(_("Download finished: {0}", buf.toString())); // + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')');
updateStatus(snark);
}
@ -1581,7 +1894,8 @@ public class SnarkManager implements CompleteListener {
MetaInfo meta = snark.getMetaInfo();
Storage storage = snark.getStorage();
if (meta != null && storage != null)
saveTorrentStatus(meta, storage.getBitField(), storage.getFilePriorities());
saveTorrentStatus(meta, storage.getBitField(), storage.getFilePriorities(),
storage.getBase(), storage.getPreserveFileNames(), snark.getUploaded());
}
/**
@ -1603,7 +1917,8 @@ public class SnarkManager implements CompleteListener {
snark.stopTorrent();
return null;
}
saveTorrentStatus(meta, storage.getBitField(), null); // no file priorities
saveTorrentStatus(meta, storage.getBitField(), null,
storage.getBase(), storage.getPreserveFileNames(), 0);
// temp for addMessage() in case canonical throws
String name = storage.getBaseName();
try {
@ -1704,7 +2019,7 @@ public class SnarkManager implements CompleteListener {
try {
// Snark.fatal() throws a RuntimeException
// don't let one bad torrent kill the whole loop
addTorrent(name, !shouldAutoStart());
addTorrent(name, null, !shouldAutoStart());
} catch (Exception e) {
addMessage(_("Error: Could not add the torrent {0}", name) + ": " + e);
_log.error("Unable to add the torrent " + name, e);
@ -1802,6 +2117,8 @@ public class SnarkManager implements CompleteListener {
_trackerMap.clear();
for (int i = 0; i < DEFAULT_TRACKERS.length; i += 2) {
String name = DEFAULT_TRACKERS[i];
if (name.equals("TheBland") && !SigType.ECDSA_SHA256_P256.isAvailable())
continue;
String urls[] = DEFAULT_TRACKERS[i+1].split("=", 2);
String url2 = urls.length > 1 ? urls[1] : null;
_trackerMap.put(name, new Tracker(name, urls[0], url2));

View File

@ -32,7 +32,9 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
import java.util.StringTokenizer;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
@ -52,6 +54,7 @@ public class Storage
{
private final MetaInfo metainfo;
private final List<TorrentFile> _torrentFiles;
private final File _base;
private final StorageListener listener;
private final I2PSnarkUtil _util;
private final Log _log;
@ -63,6 +66,7 @@ public class Storage
private final int piece_size;
private final int pieces;
private final long total_length;
private final boolean _preserveFileNames;
private boolean changed;
private volatile boolean _isChecking;
private final AtomicInteger _allocateCount = new AtomicInteger();
@ -70,7 +74,7 @@ public class Storage
/** The default piece size. */
private static final int DEFAULT_PIECE_SIZE = 256*1024;
/** bigger than this will be rejected */
public static final int MAX_PIECE_SIZE = 4*1024*1024;
public static final int MAX_PIECE_SIZE = 8*1024*1024;
/** The maximum number of pieces in a torrent. */
public static final int MAX_PIECES = 10*1024;
public static final long MAX_TOTAL_SIZE = MAX_PIECE_SIZE * (long) MAX_PIECES;
@ -83,15 +87,19 @@ public class Storage
private static final ByteCache _cache = ByteCache.getInstance(16, BUFSIZE);
/**
* Creates a new storage based on the supplied MetaInfo. This will
* Creates a new storage based on the supplied MetaInfo.
*
* Does not check storage. Caller MUST call check(), which will
* try to create and/or check all needed files in the MetaInfo.
*
* Does not check storage. Caller MUST call check()
* @param baseFile the torrent data file or dir
* @param preserveFileNames if true, do not remap names to a 'safe' charset
*/
public Storage(I2PSnarkUtil util, MetaInfo metainfo, StorageListener listener)
public Storage(I2PSnarkUtil util, File baseFile, MetaInfo metainfo, StorageListener listener, boolean preserveFileNames)
{
_util = util;
_log = util.getContext().logManager().getLog(Storage.class);
_base = baseFile;
this.metainfo = metainfo;
this.listener = listener;
needed = metainfo.getPieces();
@ -102,6 +110,7 @@ public class Storage
List<List<String>> files = metainfo.getFiles();
int sz = files != null ? files.size() : 1;
_torrentFiles = new ArrayList<TorrentFile>(sz);
_preserveFileNames = preserveFileNames;
}
/**
@ -121,8 +130,10 @@ public class Storage
throws IOException
{
_util = util;
_base = baseFile;
_log = util.getContext().logManager().getLog(Storage.class);
this.listener = listener;
_preserveFileNames = true;
// Create names, rafs and lengths arrays.
_torrentFiles = getFiles(baseFile);
@ -305,24 +316,34 @@ public class Storage
}
/**
* @param file canonical path (non-directory)
* Get index to pass to remaining(), getPriority(), setPriority()
*
* @param file non-canonical path (non-directory)
* @return internal index of file; -1 if unknown file
* @since 0.9.15
*/
public int indexOf(File file) {
for (int i = 0; i < _torrentFiles.size(); i++) {
File f = _torrentFiles.get(i).RAFfile;
if (f.equals(file))
return i;
}
return -1;
}
/**
* @param fileIndex as obtained from indexOf
* @return number of bytes remaining; -1 if unknown file
* @since 0.7.14
*/
public long remaining(String file) {
public long remaining(int fileIndex) {
if (fileIndex < 0 || fileIndex >= _torrentFiles.size())
return -1;
long bytes = 0;
for (TorrentFile tf : _torrentFiles) {
File f = tf.RAFfile;
// use canonical in case snark dir or sub dirs are symlinked
String canonical = null;
if (f != null) {
try {
canonical = f.getCanonicalPath();
} catch (IOException ioe) {
f = null;
}
}
if (f != null && canonical.equals(file)) {
for (int i = 0; i < _torrentFiles.size(); i++) {
TorrentFile tf = _torrentFiles.get(i);
if (i == fileIndex) {
File f = tf.RAFfile;
if (complete())
return 0;
int psz = piece_size;
@ -348,49 +369,30 @@ public class Storage
}
/**
* @param file canonical path (non-directory)
* @param fileIndex as obtained from indexOf
* @since 0.8.1
*/
public int getPriority(String file) {
public int getPriority(int fileIndex) {
if (complete() || metainfo.getFiles() == null)
return 0;
for (TorrentFile tf : _torrentFiles) {
File f = tf.RAFfile;
// use canonical in case snark dir or sub dirs are symlinked
if (f != null) {
try {
String canonical = f.getCanonicalPath();
if (canonical.equals(file))
return tf.priority;
} catch (IOException ioe) {}
}
}
return 0;
if (fileIndex < 0 || fileIndex >= _torrentFiles.size())
return 0;
return _torrentFiles.get(fileIndex).priority;
}
/**
* Must call Snark.updatePiecePriorities()
* (which calls getPiecePriorities()) after calling this.
* @param file canonical path (non-directory)
* @param fileIndex as obtained from indexOf
* @param pri default 0; <0 to disable
* @since 0.8.1
*/
public void setPriority(String file, int pri) {
public void setPriority(int fileIndex, int pri) {
if (complete() || metainfo.getFiles() == null)
return;
for (TorrentFile tf : _torrentFiles) {
File f = tf.RAFfile;
// use canonical in case snark dir or sub dirs are symlinked
if (f != null) {
try {
String canonical = f.getCanonicalPath();
if (canonical.equals(file)) {
tf.priority = pri;
return;
}
} catch (IOException ioe) {}
}
}
if (fileIndex < 0 || fileIndex >= _torrentFiles.size())
return;
_torrentFiles.get(fileIndex).priority = pri;
}
/**
@ -483,16 +485,21 @@ public class Storage
* @since 0.7.14
*/
public String getBaseName() {
return filterName(metainfo.getName());
return optFilterName(metainfo.getName());
}
/** @since 0.9.15 */
public boolean getPreserveFileNames() {
return _preserveFileNames;
}
/**
* Creates (and/or checks) all files from the metainfo file list.
* Only call this once, and only after the constructor with the metainfo.
*/
public void check(String rootDir) throws IOException
public void check() throws IOException
{
check(rootDir, 0, null);
check(0, null);
}
/**
@ -500,14 +507,9 @@ public class Storage
* Use a saved bitfield and timestamp from a config file.
* Only call this once, and only after the constructor with the metainfo.
*/
public void check(String rootDir, long savedTime, BitField savedBitField) throws IOException
public void check(long savedTime, BitField savedBitField) throws IOException
{
File base;
boolean areFilesPublic = _util.getFilesPublic();
if (areFilesPublic)
base = new File(rootDir, filterName(metainfo.getName()));
else
base = new SecureFile(rootDir, filterName(metainfo.getName()));
boolean useSavedBitField = savedTime > 0 && savedBitField != null;
if (!_torrentFiles.isEmpty())
@ -517,18 +519,18 @@ public class Storage
{
// Create base as file.
if (_log.shouldLog(Log.INFO))
_log.info("Creating/Checking file: " + base);
_log.info("Creating/Checking file: " + _base);
// createNewFile() can throw a "Permission denied" IOE even if the file exists???
// so do it second
if (!base.exists() && !base.createNewFile())
throw new IOException("Could not create file " + base);
if (!_base.exists() && !_base.createNewFile())
throw new IOException("Could not create file " + _base);
_torrentFiles.add(new TorrentFile(base, base, metainfo.getTotalLength()));
_torrentFiles.add(new TorrentFile(_base, _base, metainfo.getTotalLength()));
if (useSavedBitField) {
long lm = base.lastModified();
long lm = _base.lastModified();
if (lm <= 0 || lm > savedTime)
useSavedBitField = false;
else if (base.length() != metainfo.getTotalLength())
else if (_base.length() != metainfo.getTotalLength())
useSavedBitField = false;
}
}
@ -536,9 +538,9 @@ public class Storage
{
// Create base as dir.
if (_log.shouldLog(Log.INFO))
_log.info("Creating/Checking directory: " + base);
if (!base.mkdir() && !base.isDirectory())
throw new IOException("Could not create directory " + base);
_log.info("Creating/Checking directory: " + _base);
if (!_base.mkdir() && !_base.isDirectory())
throw new IOException("Could not create directory " + _base);
List<Long> ls = metainfo.getLengths();
int size = files.size();
@ -546,7 +548,7 @@ public class Storage
for (int i = 0; i < size; i++)
{
List<String> path = files.get(i);
File f = createFileFromNames(base, path, areFilesPublic);
File f = createFileFromNames(_base, path, areFilesPublic);
// dup file name check after filtering
for (int j = 0; j < i; j++) {
if (f.equals(_torrentFiles.get(j).RAFfile)) {
@ -562,12 +564,12 @@ public class Storage
else
lastPath = '_' + lastPath;
path.set(last, lastPath);
f = createFileFromNames(base, path, areFilesPublic);
f = createFileFromNames(_base, path, areFilesPublic);
j = 0;
}
}
long len = ls.get(i).longValue();
_torrentFiles.add(new TorrentFile(base, f, len));
_torrentFiles.add(new TorrentFile(_base, f, len));
total += len;
if (useSavedBitField) {
long lm = f.lastModified();
@ -611,10 +613,9 @@ public class Storage
* Doesn't really reopen the file descriptors for a restart.
* Just does an existence check but no length check or data reverification
*
* @param rootDir ignored
* @throws IOE on fail
*/
public void reopen(String rootDir) throws IOException
public void reopen() throws IOException
{
if (_torrentFiles.isEmpty())
throw new IOException("Storage not checked yet");
@ -637,6 +638,19 @@ public class Storage
0x2028, 0x2029
};
/**
* Filter the name, but only if configured to do so.
* We will do so on torrents received from others, but not
* on those we created ourselves, so we do not lose track of files.
*
* @since 0.9.15
*/
private String optFilterName(String name) {
if (_preserveFileNames)
return name;
return filterName(name);
}
/**
* Removes 'suspicious' characters from the given file name.
* http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
@ -690,14 +704,16 @@ public class Storage
* Note that filtering each path element individually may lead to
* things going in the wrong place if there are duplicates
* in intermediate path elements after filtering.
*
* @param names path elements
*/
private static File createFileFromNames(File base, List<String> names, boolean areFilesPublic) throws IOException
private File createFileFromNames(File base, List<String> names, boolean areFilesPublic) throws IOException
{
File f = null;
Iterator<String> it = names.iterator();
while (it.hasNext())
{
String name = filterName(it.next());
String name = optFilterName(it.next());
if (it.hasNext())
{
// Another dir in the hierarchy.
@ -725,15 +741,47 @@ public class Storage
return f;
}
public static File getFileFromNames(File base, List<String> names)
{
Iterator<String> it = names.iterator();
while (it.hasNext())
{
String name = filterName(it.next());
base = new File(base, name);
/**
* The base file or directory.
* @return the File
* @since 0.9.15
*/
public File getBase() {
return _base;
}
/**
* Does not include directories. Unsorted.
* @return a new List
* @since 0.9.15
*/
public List<File> getFiles() {
List<File> rv = new ArrayList<File>(_torrentFiles.size());
for (TorrentFile tf : _torrentFiles) {
rv.add(tf.RAFfile);
}
return base;
return rv;
}
/**
* Includes the base for a multi-file torrent.
* Sorted bottom-up for easy deletion.
* Slow. Use for deletion only.
* @return a new Set or null for a single-file torrent
* @since 0.9.15
*/
public SortedSet<File> getDirectories() {
if (!_base.isDirectory())
return null;
SortedSet<File> rv = new TreeSet<File>(Collections.reverseOrder());
rv.add(_base);
for (TorrentFile tf : _torrentFiles) {
File f = tf.RAFfile;
do {
f = f.getParentFile();
} while (f != null && rv.add(f));
}
return rv;
}
/**

View File

@ -72,8 +72,8 @@ public class TrackerClient implements Runnable {
private static final String STOPPED_EVENT = "stopped";
private static final String NOT_REGISTERED = "torrent not registered"; //bytemonsoon
private static final String NOT_REGISTERED_2 = "torrent not found"; // diftracker
/** this is our equivalent to router.utorrent.com for bootstrap */
private static final String DEFAULT_BACKUP_TRACKER = "http://tracker.welterde.i2p/a";
private static final String NOT_REGISTERED_3 = "torrent unauthorised"; // vuze
private static final String ERROR_GOT_HTML = "received html"; // fake return
private final static int SLEEP = 5; // 5 minutes.
private final static int DELAY_MIN = 2000; // 2 secs.
@ -342,7 +342,9 @@ public class TrackerClient implements Runnable {
_log.debug("Backup announce: [" + url + "] for infoHash: " + infoHash);
}
if (backupTrackers.isEmpty()) {
backupTrackers.add(new TCTracker(DEFAULT_BACKUP_TRACKER, false));
backupTrackers.add(new TCTracker(SnarkManager.DEFAULT_BACKUP_TRACKER, false));
} else if (trackers.size() > 1) {
Collections.shuffle(backupTrackers, _util.getContext().random());
}
}
this.completed = coordinator.getLeft() == 0;
@ -528,7 +530,7 @@ public class TrackerClient implements Runnable {
coordinator.getPeerCount() <= 0 &&
_util.getContext().clock().now() > _startedOn + 2*60*60*1000 &&
snark.getTotalLength() > 0 &&
uploaded >= snark.getTotalLength() * 3 / 2) {
uploaded >= snark.getTotalLength() * 5 / 4) {
if (_log.shouldLog(Log.WARN))
_log.warn("Auto stopping " + snark.getBaseName());
snark.setAutoStoppable(false);
@ -577,14 +579,20 @@ public class TrackerClient implements Runnable {
if (tr.isPrimary)
snark.setTrackerProblems(tr.trackerProblems);
String tplc = tr.trackerProblems.toLowerCase(Locale.US);
if (tplc.startsWith(NOT_REGISTERED) || tplc.startsWith(NOT_REGISTERED_2)) {
if (tplc.startsWith(NOT_REGISTERED) || tplc.startsWith(NOT_REGISTERED_2) ||
tplc.startsWith(NOT_REGISTERED_3) || tplc.startsWith(ERROR_GOT_HTML)) {
// Give a guy some time to register it if using opentrackers too
//if (trckrs.size() == 1) {
// stop = true;
// snark.stopTorrent();
//} else { // hopefully each on the opentrackers list is really open
if (tr.registerFails++ > MAX_REGISTER_FAILS ||
!completed || // no use retrying if we aren't seeding
tplc.startsWith(ERROR_GOT_HTML) || // fake msg from doRequest()
(!tr.isPrimary && tr.registerFails > MAX_REGISTER_FAILS / 2))
if (_log.shouldLog(Log.WARN))
_log.warn("Not longer announcing to " + tr.announce + " : " +
tr.trackerProblems + " after " + tr.registerFails + " failures");
tr.stop = true;
//
}
@ -797,10 +805,15 @@ public class TrackerClient implements Runnable {
tr.lastRequestTime = System.currentTimeMillis();
// Don't wait for a response to stopped when shutting down
boolean fast = _fastUnannounce && event.equals(STOPPED_EVENT);
byte[] fetched = _util.get(s, true, fast ? -1 : 0, small ? 128 : 1024, small ? 1024 : 8*1024);
if (fetched == null) {
throw new IOException("Error fetching " + s);
}
byte[] fetched = _util.get(s, true, fast ? -1 : 0, small ? 128 : 1024, small ? 1024 : 32*1024);
if (fetched == null)
throw new IOException("Error fetching");
if (fetched.length == 0)
throw new IOException("No data");
// The HTML check only works if we didn't exceed the maxium fetch size specified in get(),
// otherwise we already threw an IOE.
if (fetched[0] == '<')
throw new IOException(ERROR_GOT_HTML);
InputStream in = new ByteArrayInputStream(fetched);

View File

@ -196,6 +196,9 @@ class TrackerInfo
return complete;
}
/**
* Not HTML escaped.
*/
public String getFailureReason()
{
return failure_reason;

View File

@ -6,6 +6,7 @@ import java.util.List;
import net.i2p.I2PAppContext;
import net.i2p.crypto.TrustedUpdate;
import net.i2p.data.DataHelper;
import net.i2p.update.*;
import net.i2p.util.Log;
import net.i2p.util.SimpleTimer2;
@ -109,7 +110,7 @@ class UpdateRunner implements UpdateTask, CompleteListener {
_umgr.notifyAttemptFailed(this, "No tracker, no DHT, no OT", null);
continue;
}
_snark = _smgr.addMagnet(name, ih, trackerURL, true, true, this);
_snark = _smgr.addMagnet(name, ih, trackerURL, true, true, null, this);
if (_snark != null) {
updateStatus("<b>" + _smgr.util().getString("Updating from {0}", linkify(updateURL)) + "</b>");
new Timeout();
@ -290,12 +291,21 @@ class UpdateRunner implements UpdateTask, CompleteListener {
return _smgr.getSavedTorrentBitField(snark);
}
public boolean getSavedPreserveNamesSetting(Snark snark) {
return _smgr.getSavedPreserveNamesSetting(snark);
}
public long getSavedUploaded(Snark snark) {
return _smgr.getSavedUploaded(snark);
}
//////// end CompleteListener methods
private static String linkify(String url) {
String durl = url.length() <= 28 ? url :
url.substring(0, 25) + "&hellip;";
return "<a target=\"_blank\" href=\"" + url + "\"/>" + durl + "</a>";
String durl = url.length() <= 28 ? DataHelper.escapeHTML(url) :
DataHelper.escapeHTML(url.substring(0, 25)) + "&hellip;";
// TODO urlEncode instead
return "<a target=\"_blank\" href=\"" + DataHelper.escapeHTML(url) + "\"/>" + durl + "</a>";
}
private void updateStatus(String s) {

View File

@ -40,6 +40,7 @@ import net.i2p.util.I2PAppThread;
import net.i2p.util.Log;
import net.i2p.util.SimpleTimer2;
import org.klomp.snark.SnarkManager;
import org.klomp.snark.TrackerClient;
import org.klomp.snark.bencode.BDecoder;
import org.klomp.snark.bencode.BEncoder;
@ -152,7 +153,7 @@ public class KRPC implements I2PSessionMuxedListener, DHT {
private static final long CLEAN_TIME = 63*1000;
private static final long EXPLORE_TIME = 877*1000;
private static final long BLACKLIST_CLEAN_TIME = 17*60*1000;
private static final String DHT_FILE_SUFFIX = ".dht.dat";
public static final String DHT_FILE_SUFFIX = ".dht.dat";
private static final int SEND_CRYPTO_TAGS = 8;
private static final int LOW_CRYPTO_TAGS = 4;
@ -185,8 +186,14 @@ public class KRPC implements I2PSessionMuxedListener, DHT {
_myNID = new NID(_myID);
}
_myNodeInfo = new NodeInfo(_myNID, session.getMyDestination(), _qPort);
_dhtFile = new File(ctx.getConfigDir(), baseName + DHT_FILE_SUFFIX);
_backupDhtFile = baseName.equals("i2psnark") ? null : new File(ctx.getConfigDir(), "i2psnark" + DHT_FILE_SUFFIX);
File conf = new File(ctx.getConfigDir(), baseName + ".config" + SnarkManager.CONFIG_DIR_SUFFIX);
_dhtFile = new File(conf, "i2psnark" + DHT_FILE_SUFFIX);
if (baseName.equals("i2psnark")) {
_backupDhtFile = null;
} else {
File bconf = new File(ctx.getConfigDir(), "i2psnark.config" + SnarkManager.CONFIG_DIR_SUFFIX);
_backupDhtFile = new File(bconf, "i2psnark" + DHT_FILE_SUFFIX);
}
_knownNodes = new DHTNodes(ctx, _myNID);
start();

View File

@ -181,11 +181,10 @@ class BasicServlet extends HttpServlet
HttpContent r = null;
if (_warBase != null && pathInContext.startsWith(_warBase)) {
r = new JarContent(pathInContext);
} else if (!pathInContext.contains("..") &&
!pathInContext.endsWith("/")) {
File f = new File(_resourceBase, pathInContext);
} else {
File f = getResource(pathInContext);
// exists && !directory
if (f.isFile())
if (f != null && f.isFile())
r = new FileContent(f);
}
return r;
@ -283,7 +282,12 @@ class BasicServlet extends HttpServlet
{
if (content.getLastModified()/1000 <= ifmsl/1000)
{
response.reset();
try {
response.reset();
} catch (IllegalStateException ise) {
// committed
return true;
}
response.setStatus(304);
response.flushBuffer();
return false;
@ -555,14 +559,17 @@ class BasicServlet extends HttpServlet
/**
* Simple version of URIUtil.encodePath()
*/
protected static String encodePath(String path) throws MalformedURLException {
try {
URI uri = new URI(null, null, path, null);
return uri.toString();
} catch (URISyntaxException use) {
// for ease of use, since a USE is not an IOE but a MUE is...
throw new MalformedURLException(use.getMessage());
}
protected static String encodePath(String path) /* throws MalformedURLException */ {
// Does NOT handle a ':' correctly, throws MUE.
// Can't convert to %3a before hand or the % gets escaped
//try {
// URI uri = new URI(null, null, path, null);
// return uri.toString();
//} catch (URISyntaxException use) {
// // for ease of use, since a USE is not an IOE but a MUE is...
// throw new MalformedURLException(use.getMessage());
//}
return URIUtil.encodePath(path);
}
/**

View File

@ -50,6 +50,7 @@ public class FetchAndAdd extends Snark implements EepGet.StatusListener, Runnabl
private final String _url;
private final byte[] _fakeHash;
private final String _name;
private final File _dataDir;
private volatile long _remaining = -1;
private volatile long _total = -1;
private volatile long _transferred;
@ -65,8 +66,10 @@ public class FetchAndAdd extends Snark implements EepGet.StatusListener, Runnabl
/**
* Caller should call _mgr.addDownloader(this), which
* will start things off.
*
* @param dataDir null to default to snark data directory
*/
public FetchAndAdd(I2PAppContext ctx, SnarkManager mgr, String url) {
public FetchAndAdd(I2PAppContext ctx, SnarkManager mgr, String url, File dataDir) {
// magnet constructor
super(mgr.util(), "Torrent download",
null, null, null, null, null, false, null);
@ -75,6 +78,7 @@ public class FetchAndAdd extends Snark implements EepGet.StatusListener, Runnabl
_mgr = mgr;
_url = url;
_name = _("Download torrent file from {0}", url);
_dataDir = dataDir;
byte[] fake = null;
try {
fake = SHA1.getInstance().digest(url.getBytes("ISO-8859-1"));
@ -176,7 +180,7 @@ public class FetchAndAdd extends Snark implements EepGet.StatusListener, Runnabl
_mgr.addMessage(_("Torrent already in the queue: {0}", name));
} else {
// This may take a LONG time to create the storage.
_mgr.copyAndAddTorrent(file, canonical);
_mgr.copyAndAddTorrent(file, canonical, _dataDir);
snark = _mgr.getTorrentByBaseName(originalName);
if (snark != null)
snark.startTorrent();

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,530 @@
package org.klomp.snark.web;
import java.io.File;
import java.io.Serializable;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.Locale;
import org.klomp.snark.MetaInfo;
import org.klomp.snark.Snark;
import org.klomp.snark.Storage;
/**
* Comparators for various columns
*
* @since 0.9.16 from TorrentNameComparator, moved from I2PSnarkservlet
*/
class Sorters {
/**
* Negative is reverse
*
*<ul>
*<li>0, 1: Name
*<li>2: Status
*<li>3: Peers
*<li>4: ETA
*<li>5: Size
*<li>6: Downloaded
*<li>7: Uploaded
*<li>8: Down rate
*<li>9: Up rate
*<li>10: Remaining (needed)
*<li>11: Upload ratio
*<li>12: File type
*</ul>
*
* @param servlet for file type callback only
*/
public static Comparator<Snark> getComparator(int type, I2PSnarkServlet servlet) {
boolean rev = type < 0;
Comparator<Snark> rv;
switch (type) {
case -1:
case 0:
case 1:
default:
rv = new TorrentNameComparator();
if (rev)
rv = Collections.reverseOrder(rv);
break;
case -2:
case 2:
rv = new StatusComparator(rev);
break;
case -3:
case 3:
rv = new PeersComparator(rev);
break;
case -4:
case 4:
rv = new ETAComparator(rev);
break;
case -5:
case 5:
rv = new SizeComparator(rev);
break;
case -6:
case 6:
rv = new DownloadedComparator(rev);
break;
case -7:
case 7:
rv = new UploadedComparator(rev);
break;
case -8:
case 8:
rv = new DownRateComparator(rev);
break;
case -9:
case 9:
rv = new UpRateComparator(rev);
break;
case -10:
case 10:
rv = new RemainingComparator(rev);
break;
case -11:
case 11:
rv = new RatioComparator(rev);
break;
case -12:
case 12:
rv = new FileTypeComparator(rev, servlet);
break;
}
return rv;
}
/**
* Sort alphabetically in current locale, ignore case, ignore leading "the "
* (I guess this is worth it, a lot of torrents start with "The "
* @since 0.7.14
*/
private static class TorrentNameComparator implements Comparator<Snark>, Serializable {
public int compare(Snark l, Snark r) {
return comp(l, r);
}
public static int comp(Snark l, Snark r) {
// put downloads and magnets first
if (l.getStorage() == null && r.getStorage() != null)
return -1;
if (l.getStorage() != null && r.getStorage() == null)
return 1;
String ls = l.getBaseName();
String llc = ls.toLowerCase(Locale.US);
if (llc.startsWith("the ") || llc.startsWith("the.") || llc.startsWith("the_"))
ls = ls.substring(4);
String rs = r.getBaseName();
String rlc = rs.toLowerCase(Locale.US);
if (rlc.startsWith("the ") || rlc.startsWith("the.") || rlc.startsWith("the_"))
rs = rs.substring(4);
return Collator.getInstance().compare(ls, rs);
}
}
/**
* Forward or reverse sort, but the fallback is always forward
*/
private static abstract class Sort implements Comparator<Snark>, Serializable {
private final boolean _rev;
public Sort(boolean rev) {
_rev = rev;
}
public int compare(Snark l, Snark r) {
int rv = compareIt(l, r);
if (rv != 0)
return _rev ? 0 - rv : rv;
return TorrentNameComparator.comp(l, r);
}
protected abstract int compareIt(Snark l, Snark r);
protected static int compLong(long l, long r) {
if (l < r)
return -1;
if (l > r)
return 1;
return 0;
}
}
private static class StatusComparator extends Sort {
private StatusComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
int rv = getStatus(l) - getStatus(r);
if (rv != 0)
return rv;
// use reverse remaining as first tie break
return compLong(r.getNeededLength(), l.getNeededLength());
}
private static int getStatus(Snark snark) {
long remaining = snark.getRemainingLength();
if (snark.isStopped()) {
if (remaining < 0)
return 0;
if (remaining > 0)
return 5;
return 10;
}
if (snark.isStarting())
return 15;
if (snark.isAllocating())
return 20;
if (remaining < 0)
return 15; // magnet
if (remaining == 0)
return 100;
if (snark.isChecking())
return 95;
if (snark.getNeededLength() <= 0)
return 90;
if (snark.getPeerCount() <= 0)
return 40;
if (snark.getDownloadRate() <= 0)
return 50;
return 60;
}
}
private static class PeersComparator extends Sort {
public PeersComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return l.getPeerCount() - r.getPeerCount();
}
}
private static class RemainingComparator extends Sort {
public RemainingComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return compLong(l.getNeededLength(), r.getNeededLength());
}
}
private static class ETAComparator extends Sort {
public ETAComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return compLong(eta(l), eta(r));
}
private static long eta(Snark snark) {
long needed = snark.getNeededLength();
if (needed <= 0)
return 0;
long total = snark.getTotalLength();
if (needed > total)
needed = total;
long downBps = snark.getDownloadRate();
if (downBps > 0)
return needed / downBps;
return Long.MAX_VALUE;
}
}
private static class SizeComparator extends Sort {
public SizeComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return compLong(l.getTotalLength(), r.getTotalLength());
}
}
private static class DownloadedComparator extends Sort {
public DownloadedComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
long ld = l.getTotalLength() - l.getRemainingLength();
long rd = r.getTotalLength() - r.getRemainingLength();
return compLong(ld, rd);
}
}
private static class UploadedComparator extends Sort {
public UploadedComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return compLong(l.getUploaded(), r.getUploaded());
}
}
private static class DownRateComparator extends Sort {
public DownRateComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return compLong(l.getDownloadRate(), r.getDownloadRate());
}
}
private static class UpRateComparator extends Sort {
public UpRateComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
return compLong(l.getUploadRate(), r.getUploadRate());
}
}
private static class RatioComparator extends Sort {
private static final long M = 128 * 1024 * 1024;
public RatioComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
long lt = l.getTotalLength();
long ld = lt > 0 ? ((M * l.getUploaded()) / lt) : 0;
long rt = r.getTotalLength();
long rd = rt > 0 ? ((M * r.getUploaded()) / rt) : 0;
return compLong(ld, rd);
}
}
private static class FileTypeComparator extends Sort {
private final I2PSnarkServlet servlet;
public FileTypeComparator(boolean rev, I2PSnarkServlet servlet) {
super(rev);
this.servlet = servlet;
}
public int compareIt(Snark l, Snark r) {
String ls = toName(l);
String rs = toName(r);
return ls.compareTo(rs);
}
private String toName(Snark snark) {
MetaInfo meta = snark.getMetaInfo();
if (meta == null)
return "0";
if (meta.getFiles() != null)
return "1";
// arbitrary sort based on icon name
return servlet.toIcon(meta.getName());
}
}
////////////// Comparators for details page below
/**
* Class to precompute and efficiently sort data
* on a torrent file entry.
*/
public static class FileAndIndex {
public final File file;
public final boolean isDirectory;
public final long length;
public final long remaining;
public final int priority;
public final int index;
/**
* @param storage may be null
*/
public FileAndIndex(File file, Storage storage) {
this.file = file;
index = storage != null ? storage.indexOf(file) : -1;
if (index >= 0) {
isDirectory = false;
remaining = storage.remaining(index);
priority = storage.getPriority(index);
} else {
isDirectory = file.isDirectory();
remaining = -1;
priority = -999;
}
length = isDirectory ? 0 : file.length();
}
}
/**
* Negative is reverse
*
*<ul>
*<li>0, 1: Name
*<li>5: Size
*<li>10: Remaining (needed)
*<li>12: File type
*<li>13: Priority
*</ul>
*
* @param servlet for file type callback only
*/
public static Comparator<FileAndIndex> getFileComparator(int type, I2PSnarkServlet servlet) {
boolean rev = type < 0;
Comparator<FileAndIndex> rv;
switch (type) {
case -1:
case 0:
case 1:
default:
rv = new FileNameComparator();
if (rev)
rv = Collections.reverseOrder(rv);
break;
case -5:
case 5:
rv = new FAISizeComparator(rev);
break;
case -10:
case 10:
rv = new FAIRemainingComparator(rev);
break;
case -12:
case 12:
rv = new FAITypeComparator(rev, servlet);
break;
case -13:
case 13:
rv = new FAIPriorityComparator(rev);
break;
}
return rv;
}
/**
* Sort alphabetically in current locale, ignore case,
* directories first
* @since 0.9.6 moved from I2PSnarkServlet in 0.9.16
*/
private static class FileNameComparator implements Comparator<FileAndIndex>, Serializable {
public int compare(FileAndIndex l, FileAndIndex r) {
return comp(l, r);
}
public static int comp(FileAndIndex l, FileAndIndex r) {
boolean ld = l.isDirectory;
boolean rd = r.isDirectory;
if (ld && !rd)
return -1;
if (rd && !ld)
return 1;
return Collator.getInstance().compare(l.file.getName(), r.file.getName());
}
}
/**
* Forward or reverse sort, but the fallback is always forward
*/
private static abstract class FAISort implements Comparator<FileAndIndex>, Serializable {
private final boolean _rev;
public FAISort(boolean rev) {
_rev = rev;
}
public int compare(FileAndIndex l, FileAndIndex r) {
int rv = compareIt(l, r);
if (rv != 0)
return _rev ? 0 - rv : rv;
return FileNameComparator.comp(l, r);
}
protected abstract int compareIt(FileAndIndex l, FileAndIndex r);
protected static int compLong(long l, long r) {
if (l < r)
return -1;
if (l > r)
return 1;
return 0;
}
}
private static class FAIRemainingComparator extends FAISort {
public FAIRemainingComparator(boolean rev) { super(rev); }
public int compareIt(FileAndIndex l, FileAndIndex r) {
return compLong(l.remaining, r.remaining);
}
}
private static class FAISizeComparator extends FAISort {
public FAISizeComparator(boolean rev) { super(rev); }
public int compareIt(FileAndIndex l, FileAndIndex r) {
return compLong(l.length, r.length);
}
}
private static class FAITypeComparator extends FAISort {
private final I2PSnarkServlet servlet;
public FAITypeComparator(boolean rev, I2PSnarkServlet servlet) {
super(rev);
this.servlet = servlet;
}
public int compareIt(FileAndIndex l, FileAndIndex r) {
String ls = toName(l);
String rs = toName(r);
return ls.compareTo(rs);
}
private String toName(FileAndIndex fai) {
if (fai.isDirectory)
return "0";
// arbitrary sort based on icon name
return servlet.toIcon(fai.file.getName());
}
}
private static class FAIPriorityComparator extends FAISort {
public FAIPriorityComparator(boolean rev) { super(rev); }
/** highest first */
public int compareIt(FileAndIndex l, FileAndIndex r) {
return r.priority - l.priority;
}
}
}

View File

@ -0,0 +1,250 @@
//
// ========================================================================
// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.klomp.snark.web;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLEncoder;
import net.i2p.data.DataHelper;
/** URI Holder.
* This class assists with the decoding and encoding or HTTP URI's.
* It differs from the java.net.URL class as it does not provide
* communications ability, but it does assist with query string
* formatting.
* <P>UTF-8 encoding is used by default for % encoded characters. This
* may be overridden with the org.eclipse.jetty.util.URI.charset system property.
* see UrlEncoded
*
* I2P modded from Jetty 8.1.15
* @since 0.9.15
*/
class URIUtil
{
/** Encode a URI path.
* This is the same encoding offered by URLEncoder, except that
* the '/' character is not encoded.
* @param path The path the encode
* @return The encoded path
*/
public static String encodePath(String path)
{
if (path==null || path.length()==0)
return path;
StringBuilder buf = encodePath(null,path);
return buf==null?path:buf.toString();
}
/** Encode a URI path.
*
* Somewhat oddly, this encodes all chars >= 0x80 if buf is null, (strict RFC 2396)
* but only the control, space, and special chars if buf is non-null.
*
* @param path The path the encode
* @param buf StringBuilder to encode path into (or null)
* @return The StringBuilder or null if no substitutions required.
*/
public static StringBuilder encodePath(StringBuilder buf, String path)
{
byte[] bytes=null;
if (buf==null)
{
loop:
for (int i=0;i<path.length();i++)
{
char c=path.charAt(i);
switch(c)
{
case '%':
case '?':
case ';':
case '#':
case '\'':
case '"':
case '<':
case '>':
case ' ':
case ':':
case '[':
case ']':
buf=new StringBuilder(path.length()*2);
break loop;
default:
if (c >= 0x7f || c <= 0x1f)
{
bytes = DataHelper.getUTF8(path);
buf=new StringBuilder(path.length()*2);
break loop;
}
}
}
if (buf==null)
return null;
}
//synchronized(buf)
//{
if (bytes!=null)
{
for (int i=0;i<bytes.length;i++)
{
byte c=bytes[i];
switch(c)
{
case '%':
buf.append("%25");
continue;
case '?':
buf.append("%3F");
continue;
case ';':
buf.append("%3B");
continue;
case '#':
buf.append("%23");
continue;
case '"':
buf.append("%22");
continue;
case '\'':
buf.append("%27");
continue;
case '<':
buf.append("%3C");
continue;
case '>':
buf.append("%3E");
continue;
case ' ':
buf.append("%20");
continue;
case 0x7f:
buf.append("%7F");
continue;
case ':':
buf.append("%3A");
continue;
case '[':
buf.append("%5B");
continue;
case ']':
buf.append("%5D");
continue;
default:
if (c <= 0x1f) // includes negative
toHex(c,buf);
else
buf.append((char)c);
continue;
}
}
}
else
{
for (int i=0;i<path.length();i++)
{
char c=path.charAt(i);
switch(c)
{
case '%':
buf.append("%25");
continue;
case '?':
buf.append("%3F");
continue;
case ';':
buf.append("%3B");
continue;
case '#':
buf.append("%23");
continue;
case '"':
buf.append("%22");
continue;
case '\'':
buf.append("%27");
continue;
case '<':
buf.append("%3C");
continue;
case '>':
buf.append("%3E");
continue;
case ' ':
buf.append("%20");
continue;
case ':':
buf.append("%3A");
continue;
case '[':
buf.append("%5B");
continue;
case ']':
buf.append("%5D");
continue;
default:
if (c <= 0x1f || (c >= 0x7f && c <= 0x9f) || Character.isSpaceChar(c))
toHex(c,buf);
else
buf.append(c);
continue;
}
}
}
//}
return buf;
}
/**
* Modded from Jetty TypeUtil
*/
private static void toHex(byte b, StringBuilder buf)
{
buf.append('%');
int d=0xf&((0xF0&b)>>4);
buf.append((char)((d>9?('A'-10):'0')+d));
d=0xf&b;
buf.append((char)((d>9?('A'-10):'0')+d));
}
/**
* UTF-8
*/
private static void toHex(char c, StringBuilder buf)
{
if (c > 0x7f) {
byte[] b = DataHelper.getUTF8(Character.toString(c));
for (int i = 0; i < b.length; i++) {
toHex(b[i], buf);
}
} else {
toHex((byte) c, buf);
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,7 @@ su2 = application/zip
su3 = application/zip
sud = application/zip
tbz = application/x-bzip2
torrent = application/x-bittorrent
txt = text/plain
war = application/java-archive
webm = video/webm

View File

Before

Width:  |  Height:  |  Size: 464 B

After

Width:  |  Height:  |  Size: 464 B

View File

Before

Width:  |  Height:  |  Size: 733 B

After

Width:  |  Height:  |  Size: 733 B

View File

Before

Width:  |  Height:  |  Size: 587 B

After

Width:  |  Height:  |  Size: 587 B

View File

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 673 B

View File

Before

Width:  |  Height:  |  Size: 882 B

After

Width:  |  Height:  |  Size: 882 B

View File

Before

Width:  |  Height:  |  Size: 889 B

After

Width:  |  Height:  |  Size: 889 B

View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

View File

Before

Width:  |  Height:  |  Size: 653 B

After

Width:  |  Height:  |  Size: 653 B

View File

Before

Width:  |  Height:  |  Size: 537 B

After

Width:  |  Height:  |  Size: 537 B

View File

Before

Width:  |  Height:  |  Size: 578 B

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

View File

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

View File

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 385 B

View File

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 853 B

View File

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 635 B

View File

Before

Width:  |  Height:  |  Size: 294 B

After

Width:  |  Height:  |  Size: 294 B

View File

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

View File

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 589 B

View File

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

View File

Before

Width:  |  Height:  |  Size: 537 B

After

Width:  |  Height:  |  Size: 537 B

View File

@ -0,0 +1,93 @@
function setupbuttons() {
updatesetallbuttons();
var form = document.forms[0];
form.savepri.disabled = true;
form.savepri.className = 'disabled';
}
function priorityclicked() {
updatesetallbuttons();
var form = document.forms[0];
form.savepri.disabled = false;
form.savepri.className = 'accept';
}
function updatesetallbuttons() {
var notNorm = false;
var notHigh = false;
var notSkip = false;
var form = document.forms[0];
for(i = 0; i < form.elements.length; i++) {
var elem = form.elements[i];
if (elem.type == 'radio') {
if (!elem.checked) {
if (elem.className == 'prinorm')
notNorm = true;
else if (elem.className == 'prihigh')
notHigh = true;
else
notSkip = true;
}
}
}
if (notNorm)
document.getElementById('setallnorm').className = 'control';
else
document.getElementById('setallnorm').className = 'controld';
if (notHigh)
document.getElementById('setallhigh').className = 'control';
else
document.getElementById('setallhigh').className = 'controld';
if (notSkip)
document.getElementById('setallskip').className = 'control';
else
document.getElementById('setallskip').className = 'controld';
}
function setallnorm() {
var form = document.forms[0];
for(i = 0; i < form.elements.length; i++) {
var elem = form.elements[i];
if (elem.type == 'radio') {
if (elem.className === 'prinorm')
elem.checked = true;
}
}
document.getElementById('setallnorm').className = 'controld';
document.getElementById('setallhigh').className = 'control';
document.getElementById('setallskip').className = 'control';
form.savepri.disabled = false;
form.savepri.className = 'accept';
}
function setallhigh() {
var form = document.forms[0];
for(i = 0; i < form.elements.length; i++) {
var elem = form.elements[i];
if (elem.type == 'radio') {
if (elem.className === 'prihigh')
elem.checked = true;
}
}
document.getElementById('setallnorm').className = 'control';
document.getElementById('setallhigh').className = 'controld';
document.getElementById('setallskip').className = 'control';
form.savepri.disabled = false;
form.savepri.className = 'accept';
}
function setallskip() {
var form = document.forms[0];
for(i = 0; i < form.elements.length; i++) {
var elem = form.elements[i];
if (elem.type == 'radio') {
if (elem.className === 'priskip')
elem.checked = true;
}
}
document.getElementById('setallnorm').className = 'control';
document.getElementById('setallhigh').className = 'control';
document.getElementById('setallskip').className = 'controld';
form.savepri.disabled = false;
form.savepri.className = 'accept';
}

View File

@ -40,9 +40,11 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.lang.reflect.Constructor;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@ -50,6 +52,7 @@ import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicLong;
@ -105,7 +108,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
private static final String nocli_args[] = { "-nocli", "-die"};
private final List<I2PTunnelTask> tasks = new ArrayList<I2PTunnelTask>();
private final List<I2PTunnelTask> tasks = new CopyOnWriteArrayList<I2PTunnelTask>();
private int next_task_id = 1;
private final Set<ConnectionEventListener> listeners = new CopyOnWriteArraySet<ConnectionEventListener>();
@ -121,6 +124,9 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
new LongOpt("wait", LongOpt.NO_ARGUMENT, null, 'w')
};
/** @since 0.9.17 */
private enum CloseMode { NORMAL, FORCED, DESTROY }
public static void main(String[] args) {
try {
new I2PTunnel(args);
@ -255,7 +261,15 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
}
if (gui) {
new I2PTunnelGUI(this);
// removed from source, now in i2p.scripts
//new I2PTunnelGUI(this);
try {
Class<?> cls = Class.forName("net.i2p.i2ptunnel.I2PTunnelGUI");
Constructor<?> con = cls.getConstructor(I2PTunnel.class);
con.newInstance(this);
} catch (Throwable t) {
throw new UnsupportedOperationException("GUI is not available, try -cli", t);
}
} else if (cli) {
try {
System.out.println("Enter 'help' for help.");
@ -306,19 +320,33 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
" -w, -wait, --wait : do not run the command line interface or GUI";
}
/** @return A copy, non-null */
/**
* @return A copy, unmodifiable, non-null
*/
List<I2PSession> getSessions() {
return new ArrayList<I2PSession>(_sessions);
if (_sessions.isEmpty())
return Collections.emptyList();
return new ArrayList<I2PSession>(_sessions);
}
/**
* @param session null ok
*/
void addSession(I2PSession session) {
if (session == null) return;
_sessions.add(session);
boolean added = _sessions.add(session);
if (added && _log.shouldLog(Log.INFO))
_log.info(getPrefix() + " session added: " + session, new Exception());
}
/**
* @param session null ok
*/
void removeSession(I2PSession session) {
if (session == null) return;
_sessions.remove(session);
boolean removed = _sessions.remove(session);
if (removed && _log.shouldLog(Log.INFO))
_log.info(getPrefix() + " session removed: " + session, new Exception());
}
/**
@ -334,6 +362,11 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
tsk.setId(next_task_id);
next_task_id++;
tasks.add(tsk);
if (_log.shouldLog(Log.INFO))
_log.info(getPrefix() + " adding task: " + tsk);
} else {
if (_log.shouldLog(Log.INFO))
_log.info(getPrefix() + " not adding task that isn't open: " + tsk);
}
}
@ -426,7 +459,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
" auth <username> <password>\n" +
" client <port> <pubkey>[,<pubkey,...]|file:<pubkeyfile> [<sharedClient>]\n" +
" clientoptions [-acx] [key=value ]*\n" +
" close [forced] <jobnumber>|all\n" +
" close [forced|destroy] <jobnumber>|all\n" +
" config [-s] <i2phost> <i2pport>\n" +
" connectclient <port> [<sharedClient>] [<proxy>]\n" +
" genkeys <privkeyfile> [<pubkeyfile>]\n" +
@ -1502,27 +1535,34 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
*
* Sets the event "closeResult" = "ok" after the closing is complete
*
* @param args {jobNumber}, {"forced", jobNumber}, {"forced", "all"}
* @param args {jobNumber}, {"forced", jobNumber}, {"forced", "all"}, {"destroy", jobNumber}, {"destroy", "all"}
* @param l logger to receive events and output
*/
public void runClose(String args[], Logging l) {
if (args.length == 0 || args.length > 2) {
l.log("close [forced] <jobnumber>|all\n" +
l.log("close [forced|destroy] <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");
} else {
int argindex = 0; // parse optional 'forced' keyword
boolean forced = false;
CloseMode mode = CloseMode.NORMAL;
if (args[argindex].equalsIgnoreCase("forced")) {
forced = true;
mode = CloseMode.FORCED;
argindex++;
} else if (args[argindex].equalsIgnoreCase("destroy")) {
mode = CloseMode.DESTROY;
argindex++;
}
if (args[argindex].equalsIgnoreCase("all")) {
boolean error = false;
if (tasks.isEmpty()) {
if (_log.shouldLog(Log.INFO))
_log.info(getPrefix() + " runClose(all) no tasks");
}
for (I2PTunnelTask t : tasks) {
if (!closetask(t, forced, l)) {
if (!closetask(t, mode, l)) {
notifyEvent("closeResult", "error");
error = true;
} else if (!error) { // If there's an error, don't hide it
@ -1531,7 +1571,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
}
} else {
try {
if (!closetask(Integer.parseInt(args[argindex]), forced, l)) {
if (!closetask(Integer.parseInt(args[argindex]), mode, l)) {
notifyEvent("closeResult", "error");
} else {
notifyEvent("closeResult", "ok");
@ -1636,7 +1676,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* closure)
*
*/
private boolean closetask(int num, boolean forced, Logging l) {
private boolean closetask(int num, CloseMode mode, Logging l) {
boolean closed = false;
_log.debug(getPrefix() + "closetask(): looking for task " + num);
@ -1645,7 +1685,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
if (_log.shouldLog(Log.DEBUG))
_log.debug(getPrefix() + "closetask(): parsing task " + id + " (" + t.toString() + ")");
if (id == num) {
closed = closetask(t, forced, l);
closed = closetask(t, mode, l);
break;
} else if (id > num) {
break;
@ -1659,17 +1699,23 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
* (optionally forcing closure)
*
*/
private boolean closetask(I2PTunnelTask t, boolean forced, Logging l) {
private boolean closetask(I2PTunnelTask t, CloseMode mode, Logging l) {
if (_log.shouldLog(Log.INFO))
_log.info("Closing task " + t.getId() + (forced ? " forced..." : "..."));
_log.info("Closing task " + t.getId() + " mode: " + mode);
//l.log("Closing task " + t.getId() + (forced ? " forced..." : "..."));
if (t.close(forced)) {
boolean success;
if (mode == CloseMode.NORMAL)
success = t.close(false);
else if (mode == CloseMode.FORCED)
success = t.close(true);
else // DESTROY
success = t.destroy();
if (success) {
if (_log.shouldLog(Log.INFO))
_log.info("Task " + t.getId() + " closed.");
//l.log("Task " + t.getId() + " closed.");
return true;
}
return false;
return success;
}
/**
@ -1693,7 +1739,8 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
*/
public void log(String s) {
System.out.println(s);
_log.info(getPrefix() + "Display: " + s);
if (_log.shouldLog(Log.INFO))
_log.info(getPrefix() + "Display: " + s);
}
/**

View File

@ -24,6 +24,9 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicLong;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
@ -34,6 +37,7 @@ import net.i2p.client.streaming.I2PSocketOptions;
import net.i2p.data.Destination;
import net.i2p.util.EventDispatcher;
import net.i2p.util.I2PAppThread;
import net.i2p.util.I2PSSLSocketFactory;
import net.i2p.util.Log;
public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runnable {
@ -86,6 +90,8 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
private static int _executorThreadCount;
private static final Object _executorLock = new Object();
public static final String PROP_USE_SSL = I2PTunnelServer.PROP_USE_SSL;
/**
* This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
* It is used to add a client to an existing socket manager.
@ -342,6 +348,10 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
} else {
if (_log.shouldLog(Log.INFO))
_log.info(tunnel.getClientOptions().getProperty("inbound.nickname") + ": Not building a new socket manager since the old one is open [s=" + s + "]");
// If some other tunnel created the session, we need to add it
// as our session too.
// It's a Set in I2PTunnel
tunnel.addSession(s);
}
} else {
if (_log.shouldLog(Log.INFO))
@ -599,7 +609,25 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
}
return;
}
ss = new ServerSocket(localPort, 0, addr);
Properties opts = getTunnel().getClientOptions();
boolean useSSL = Boolean.parseBoolean(opts.getProperty(PROP_USE_SSL));
if (useSSL) {
// was already done in web/IndexBean.java when saving the config
boolean wasCreated = SSLClientUtil.verifyKeyStore(opts);
if (wasCreated) {
// From here, we can't save the config.
// We shouldn't get here, as SSL isn't the default, so it would
// be enabled via the GUI only.
// If it was done manually, the keys will be regenerated at every startup,
// which is bad.
_log.logAlways(Log.WARN, "Created new i2ptunnel SSL keys but can't save the config, disable and enable via i2ptunnel GUI");
}
SSLServerSocketFactory fact = SSLClientUtil.initializeFactory(opts);
ss = fact.createServerSocket(localPort, 0, addr);
I2PSSLSocketFactory.setProtocolsAndCiphers((SSLServerSocket) ss);
} else {
ss = new ServerSocket(localPort, 0, addr);
}
// If a free port was requested, find out what we got
if (localPort == 0) {
@ -746,6 +774,12 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
if (!chained) {
I2PSession session = sockMgr.getSession();
getTunnel().removeSession(session);
if (_ownDest) {
try {
session.destroySession();
} catch (I2PException ex) {}
}
// TCG will try to destroy it too
} // else the app chaining to this one closes it!
}
l.log("Stopping client " + toString());
@ -762,6 +796,22 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
return true;
}
/**
* Note that the tunnel cannot be reopened after this by calling startRunning(),
* as it will destroy the underlying socket manager.
* This releases all resources if not a shared client.
* For shared client, the router will kill all the remaining streaming timers at shutdown.
*
* @since 0.9.17
*/
@Override
public synchronized boolean destroy() {
close(true);
if (_ownDest)
sockMgr.destroySocketManager();
return true;
}
public static void closeSocket(Socket s) {
try {
s.close();

View File

@ -1,48 +0,0 @@
/* I2PTunnel is GPL'ed (with the exception mentioned in I2PTunnel.java)
* (c) 2003 - 2004 mihi
*/
package net.i2p.i2ptunnel;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* AWT gui since kaffe doesn't support swing yet
*/
public class I2PTunnelGUI extends Frame implements ActionListener, Logging {
TextField input;
TextArea log;
I2PTunnel t;
public I2PTunnelGUI(I2PTunnel t) {
super("I2PTunnel control panel");
this.t = t;
setLayout(new BorderLayout());
add("South", input = new TextField());
input.addActionListener(this);
Font font = new Font("Monospaced", Font.PLAIN, 12);
add("Center", log = new TextArea("", 20, 80, TextArea.SCROLLBARS_VERTICAL_ONLY));
log.setFont(font);
log.setEditable(false);
log("enter 'help' for help.");
pack();
setVisible(true);
}
public void log(String s) {
log.append(s + "\n");
}
public void actionPerformed(ActionEvent evt) {
log("I2PTunnel>" + input.getText());
t.runCommand(input.getText(), this);
log("---");
input.setText("");
}
}

View File

@ -601,9 +601,12 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem
return;
int status = ise != null ? ise.getStatus() : -1;
String error;
//TODO MessageStatusMessage.STATUS_SEND_FAILURE_UNSUPPORTED_ENCRYPTION
if (status == MessageStatusMessage.STATUS_SEND_FAILURE_NO_LEASESET) {
// We won't get this one unless it is treated as a hard failure
// in streaming. See PacketQueue.java
error = usingWWWProxy ? "nolsp" : "nols";
} else if (status == MessageStatusMessage.STATUS_SEND_FAILURE_UNSUPPORTED_ENCRYPTION) {
error = usingWWWProxy ? "encp" : "enc";
} else {
error = usingWWWProxy ? "dnfp" : "dnf";
}

View File

@ -182,6 +182,10 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
if (getTunnel() != tunnel)
return;
setupPostThrottle();
Properties props = tunnel.getClientOptions();
// see TunnelController.setSessionOptions()
String spoofHost = props.getProperty(TunnelController.PROP_SPOOFED_HOST);
_spoofHost = (spoofHost != null && spoofHost.trim().length() > 0) ? spoofHost.trim() : null;
super.optionsUpdated(tunnel);
}

View File

@ -16,6 +16,7 @@ import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.security.GeneralSecurityException;
import java.util.Map;
import java.util.Properties;
@ -28,6 +29,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.ThreadFactory;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionException;
import net.i2p.client.streaming.I2PServerSocket;
import net.i2p.client.streaming.I2PSocket;
@ -44,14 +46,14 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
protected final Log _log;
protected final I2PSocketManager sockMgr;
protected I2PServerSocket i2pss;
protected volatile I2PServerSocket i2pss;
private final Object lock = new Object();
protected final Object slock = new Object();
protected final Object sslLock = new Object();
protected final InetAddress remoteHost;
protected final int remotePort;
protected InetAddress remoteHost;
protected int remotePort;
private final boolean _usePool;
protected final Logging l;
private I2PSSLSocketFactory _sslFactory;
@ -212,7 +214,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
try {
I2PSocketManager rv = I2PSocketManagerFactory.createDisconnectedManager(privData, getTunnel().host,
portNum, props);
rv.setName("Server");
rv.setName("I2PTunnel Server");
getTunnel().addSession(rv.getSession());
return rv;
} catch (I2PSessionException ise) {
@ -265,6 +267,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
* Copy input stream to a byte array, so we can retry
* @since 0.7.10
*/
/****
private static ByteArrayInputStream copyOfInputStream(InputStream is) throws IOException {
byte[] buf = new byte[128];
ByteArrayOutputStream os = new ByteArrayOutputStream(768);
@ -279,6 +282,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
}
return new ByteArrayInputStream(os.toByteArray());
}
****/
/**
* Start running the I2PTunnelServer.
@ -314,6 +318,13 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
return readTimeout;
}
/**
* Note that the tunnel can be reopened after this by calling startRunning().
* This does not release all resources. In particular, the I2PSocketManager remains
* and it may have timer threads that continue running.
*
* To release all resources permanently, call destroy().
*/
public synchronized boolean close(boolean forced) {
if (!open) return true;
if (task != null) {
@ -328,16 +339,20 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
return false;
}
l.log("Stopping tunnels for server at " + this.remoteHost + ':' + this.remotePort);
open = false;
try {
if (i2pss != null) i2pss.close();
getTunnel().removeSession(sockMgr.getSession());
sockMgr.getSession().destroySession();
if (i2pss != null) {
i2pss.close();
i2pss = null;
}
I2PSession session = sockMgr.getSession();
getTunnel().removeSession(session);
session.destroySession();
} catch (I2PException ex) {
_log.error("Error destroying the session", ex);
//System.exit(1);
}
//l.log("Server shut down.");
open = false;
if (_usePool && _executor != null) {
_executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());
_executor.shutdownNow();
@ -346,8 +361,23 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
}
}
/**
* Note that the tunnel cannot be reopened after this by calling startRunning(),
* as it will destroy the underlying socket manager.
* This releases all resources.
*
* @since 0.9.17
*/
@Override
public synchronized boolean destroy() {
close(true);
sockMgr.destroySocketManager();
return true;
}
/**
* Update the I2PSocketManager.
* And since 0.9.15, the target host and port.
*
* @since 0.9.1
*/
@ -357,6 +387,27 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
return;
Properties props = tunnel.getClientOptions();
sockMgr.setDefaultOptions(sockMgr.buildOptions(props));
// see TunnelController.setSessionOptions()
String h = props.getProperty(TunnelController.PROP_TARGET_HOST);
if (h != null) {
try {
remoteHost = InetAddress.getByName(h);
} catch (UnknownHostException uhe) {
l.log("Unknown host: " + h);
}
}
String p = props.getProperty(TunnelController.PROP_TARGET_PORT);
if (p != null) {
try {
int port = Integer.parseInt(p);
if (port > 0 && port <= 65535)
remotePort = port;
else
l.log("Bad port: " + port);
} catch (NumberFormatException nfe) {
l.log("Bad port: " + p);
}
}
buildSocketMap(props);
}
@ -409,7 +460,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
* hands each I2P socket to the executor or runs it in-line.
*/
public void run() {
I2PServerSocket i2pS_S = sockMgr.getServerSocket();
i2pss = sockMgr.getServerSocket();
if (_log.shouldLog(Log.WARN)) {
if (_usePool)
_log.warn("Starting executor with " + getHandlerCount() + " threads max");
@ -421,7 +472,10 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
}
while (open) {
try {
final I2PSocket i2ps = i2pS_S.accept();
I2PServerSocket ci2pss = i2pss;
if (ci2pss == null)
throw new I2PException("I2PServerSocket closed");
final I2PSocket i2ps = ci2pss.accept();
if (i2ps == null) throw new I2PException("I2PServerSocket closed");
if (_usePool) {
try {
@ -448,10 +502,8 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
} catch (ConnectException ce) {
if (_log.shouldLog(Log.ERROR))
_log.error("Error accepting", ce);
// not killing the server..
try {
Thread.sleep(500);
} catch (InterruptedException ie) {}
open = false;
break;
} catch(SocketTimeoutException ste) {
// ignored, we never set the timeout
} catch (Exception e) {
@ -464,7 +516,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
} catch (InterruptedException ie) {}
}
}
if (_executor != null)
if (_executor != null && !_executor.isTerminating() && !_executor.isShutdown())
_executor.shutdownNow();
}

View File

@ -8,9 +8,15 @@ import net.i2p.util.EventDispatcher;
import net.i2p.util.EventDispatcherImpl;
/**
* Either a Server or a Client.
* Either a Server or a Client.
*
* Use caution if extending externally.
* This class should be maintained as a stable API,
* but ask to be sure.
*
* Note that there is no startRunning() method,
* however all extending classes implement one.
*/
public abstract class I2PTunnelTask extends EventDispatcherImpl {
private int id;
@ -56,12 +62,37 @@ public abstract class I2PTunnelTask extends EventDispatcherImpl {
tunnel.routerDisconnected();
}
/**
* Note that the tunnel can be reopened after this by calling startRunning().
* This may not release all resources. In particular, the I2PSocketManager remains
* and it may have timer threads that continue running.
*
* To release all resources permanently, call destroy().
*
* @return success
*/
public abstract boolean close(boolean forced);
/**
* Note that the tunnel cannot be reopened after this by calling startRunning(),
* as it may destroy the underlying socket manager, depending on implementation.
* This should release all resources.
*
* The implementation here simply calls close(true).
* Extending classes should override to release all resources.
*
* @return success
* @since 0.9.17
*/
public boolean destroy() {
return close(true);
}
/**
* Notify the task that I2PTunnel's options have been updated.
* Extending classes should override and call I2PTunnel.getClientOptions(),
* then update the I2PSocketManager.
* Does nothing here.
*
* @since 0.9.1
*/
@ -80,9 +111,15 @@ public abstract class I2PTunnelTask extends EventDispatcherImpl {
getTunnel().removeSession(session);
}
/**
* Does nothing here. Extending classes may override.
*/
public void errorOccurred(I2PSession session, String message, Throwable error) {
}
/**
* Does nothing here. Extending classes may override.
*/
public void reportAbuse(I2PSession session, int severity) {
}

View File

@ -0,0 +1,203 @@
package net.i2p.i2ptunnel;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.GeneralSecurityException;
import java.util.Properties;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLContext;
import net.i2p.I2PAppContext;
import net.i2p.crypto.KeyStoreUtil;
import net.i2p.util.Log;
import net.i2p.util.SecureDirectory;
/**
* Utilities for I2PTunnel client SSL server sockets.
*
* @since 0.9.15 adopted from net.i2p.router.client.SSLClientListenerRunner
*/
public class SSLClientUtil {
private static final String PROP_KEYSTORE_PASSWORD = "keystorePassword";
private static final String DEFAULT_KEYSTORE_PASSWORD = "changeit";
private static final String PROP_KEY_PASSWORD = "keyPassword";
private static final String PROP_KEY_ALIAS = "keyAlias";
private static final String ASCII_KEYFILE_SUFFIX = ".local.crt";
private static final String PROP_KS_NAME = "keystoreFile";
private static final String KS_DIR = "keystore";
private static final String PREFIX = "i2ptunnel-";
private static final String KS_SUFFIX = ".ks";
private static final String CERT_DIR = "certificates/i2ptunnel";
/**
* Create a new selfsigned cert and keystore and pubkey cert if they don't exist.
* May take a while.
*
* @param opts in/out, updated if rv is true
* @return false if it already exists; if true, caller must save opts
* @throws IOException on creation fail
*/
public static boolean verifyKeyStore(Properties opts) throws IOException {
return verifyKeyStore(opts, "");
}
/**
* Create a new selfsigned cert and keystore and pubkey cert if they don't exist.
* May take a while.
*
* @param opts in/out, updated if rv is true
* @param optPfx add this prefix when getting/setting options
* @return false if it already exists; if true, caller must save opts
* @throws IOException on creation fail
*/
public static boolean verifyKeyStore(Properties opts, String optPfx) throws IOException {
String name = opts.getProperty(optPfx + PROP_KEY_ALIAS);
if (name == null) {
name = KeyStoreUtil.randomString();
opts.setProperty(optPfx + PROP_KEY_ALIAS, name);
}
String ksname = opts.getProperty(optPfx + PROP_KS_NAME);
if (ksname == null) {
ksname = PREFIX + name + KS_SUFFIX;
opts.setProperty(optPfx + PROP_KS_NAME, ksname);
}
File ks = new File(ksname);
if (!ks.isAbsolute()) {
ks = new File(I2PAppContext.getGlobalContext().getConfigDir(), KS_DIR);
ks = new File(ks, ksname);
}
if (ks.exists())
return false;
File dir = ks.getParentFile();
if (!dir.exists()) {
File sdir = new SecureDirectory(dir.getAbsolutePath());
if (!sdir.mkdirs())
throw new IOException("Unable to create keystore " + ks);
}
boolean rv = createKeyStore(ks, name, opts, optPfx);
if (!rv)
throw new IOException("Unable to create keystore " + ks);
// Now read it back out of the new keystore and save it in ascii form
// where the clients can get to it.
// Failure of this part is not fatal.
exportCert(ks, name, opts, optPfx);
return true;
}
/**
* Call out to keytool to create a new keystore with a keypair in it.
*
* @param name used in CNAME
* @param opts in/out, updated if rv is true, must contain PROP_KEY_ALIAS
* @param optPfx add this prefix when getting/setting options
* @return success, if true, opts will have password properties added to be saved
*/
private static boolean createKeyStore(File ks, String name, Properties opts, String optPfx) {
// make a random 48 character password (30 * 8 / 5)
String keyPassword = KeyStoreUtil.randomString();
// and one for the cname
String cname = name + ".i2ptunnel.i2p.net";
String keyName = opts.getProperty(optPfx + PROP_KEY_ALIAS);
boolean success = KeyStoreUtil.createKeys(ks, keyName, cname, "I2PTUNNEL", keyPassword);
if (success) {
success = ks.exists();
if (success) {
opts.setProperty(optPfx + PROP_KEYSTORE_PASSWORD, DEFAULT_KEYSTORE_PASSWORD);
opts.setProperty(optPfx + PROP_KEY_PASSWORD, keyPassword);
}
}
if (success) {
logAlways("Created self-signed certificate for " + cname + " in keystore: " + ks.getAbsolutePath() + "\n" +
"The certificate name was generated randomly, and is not associated with your " +
"IP address, host name, router identity, or destination keys.");
} else {
error("Failed to create I2PTunnel SSL keystore.\n" +
"If you create the keystore manually, you must add " + optPfx + PROP_KEYSTORE_PASSWORD + " and " + optPfx + PROP_KEY_PASSWORD +
" to " + (new File(I2PAppContext.getGlobalContext().getConfigDir(), "i2ptunnel.config")).getAbsolutePath());
}
return success;
}
/**
* Pull the cert back OUT of the keystore and save it as ascii
* so the clients can get to it.
*
* @param name used to generate output file name
* @param opts must contain optPfx + PROP_KEY_ALIAS
* @param optPfx add this prefix when getting options
*/
private static void exportCert(File ks, String name, Properties opts, String optPfx) {
File sdir = new SecureDirectory(I2PAppContext.getGlobalContext().getConfigDir(), CERT_DIR);
if (sdir.exists() || sdir.mkdirs()) {
String keyAlias = opts.getProperty(optPfx + PROP_KEY_ALIAS);
String ksPass = opts.getProperty(optPfx + PROP_KEYSTORE_PASSWORD, DEFAULT_KEYSTORE_PASSWORD);
File out = new File(sdir, PREFIX + name + ASCII_KEYFILE_SUFFIX);
boolean success = KeyStoreUtil.exportCert(ks, ksPass, keyAlias, out);
if (!success)
error("Error getting SSL cert to save as ASCII");
} else {
error("Error saving ASCII SSL keys");
}
}
/**
* Sets up the SSLContext and sets the socket factory.
* No option prefix allowed.
*
* @throws IOException; GeneralSecurityExceptions are wrapped in IOE for convenience
* @return factory, throws on all errors
*/
public static SSLServerSocketFactory initializeFactory(Properties opts) throws IOException {
String ksPass = opts.getProperty(PROP_KEYSTORE_PASSWORD, DEFAULT_KEYSTORE_PASSWORD);
String keyPass = opts.getProperty(PROP_KEY_PASSWORD);
if (keyPass == null) {
throw new IOException("No key password, set " + PROP_KEY_PASSWORD + " in " +
(new File(I2PAppContext.getGlobalContext().getConfigDir(), "i2ptunnel.config")).getAbsolutePath());
}
String ksname = opts.getProperty(PROP_KS_NAME);
if (ksname == null) {
throw new IOException("No keystore, set " + PROP_KS_NAME + " in " +
(new File(I2PAppContext.getGlobalContext().getConfigDir(), "i2ptunnel.config")).getAbsolutePath());
}
File ks = new File(ksname);
if (!ks.isAbsolute()) {
ks = new File(I2PAppContext.getGlobalContext().getConfigDir(), KS_DIR);
ks = new File(ks, ksname);
}
InputStream fis = null;
try {
SSLContext sslc = SSLContext.getInstance("TLS");
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
fis = new FileInputStream(ks);
keyStore.load(fis, ksPass.toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, keyPass.toCharArray());
sslc.init(kmf.getKeyManagers(), null, I2PAppContext.getGlobalContext().random());
return sslc.getServerSocketFactory();
} catch (GeneralSecurityException gse) {
IOException ioe = new IOException("keystore error");
ioe.initCause(gse);
throw ioe;
} finally {
if (fis != null) try { fis.close(); } catch (IOException ioe) {}
}
}
private static void error(String s) {
I2PAppContext.getGlobalContext().logManager().getLog(SSLClientUtil.class).error(s);
}
private static void logAlways(String s) {
I2PAppContext.getGlobalContext().logManager().getLog(SSLClientUtil.class).logAlways(Log.INFO, s);
}
}

View File

@ -4,9 +4,12 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
@ -68,6 +71,7 @@ public class TunnelController implements Logging {
private static final String OPT_BUNDLE_REPLY = PFX_OPTION + "shouldBundleReplyInfo";
private static final String OPT_TAGS_SEND = PFX_OPTION + "crypto.tagsToSend";
private static final String OPT_LOW_TAGS = PFX_OPTION + "crypto.lowTagThreshold";
private static final String OPT_SIG_TYPE = PFX_OPTION + I2PClient.PROP_SIGTYPE;
/** all of these @since 0.9.14 */
public static final String TYPE_CONNECT = "connectclient";
@ -80,9 +84,20 @@ public class TunnelController implements Logging {
public static final String TYPE_SOCKS_IRC = "socksirctunnel";
public static final String TYPE_STD_CLIENT = "client";
public static final String TYPE_STD_SERVER = "server";
/** Client in the UI and I2P side but a server on the localhost side */
public static final String TYPE_STREAMR_CLIENT = "streamrclient";
/** Server in the UI and I2P side but a client on the localhost side */
public static final String TYPE_STREAMR_SERVER = "streamrserver";
/**
* This is guaranteed to be available.
* @since 0.9.17
*/
public static final SigType PREFERRED_SIGTYPE = SigType.ECDSA_SHA256_P256.isAvailable() ?
SigType.ECDSA_SHA256_P256 :
SigType.DSA_SHA1;
/**
* Create a new controller for a tunnel out of the specific config options.
* The config may contain a large number of options - only ones that begin in
@ -121,15 +136,12 @@ public class TunnelController implements Logging {
*/
private boolean createPrivateKey() {
I2PClient client = I2PClientFactory.createClient();
String filename = getPrivKeyFile();
if ( (filename == null) || (filename.trim().length() <= 0) ) {
File keyFile = getPrivateKeyFile();
if (keyFile == null) {
log("No filename specified for the private key");
return false;
}
File keyFile = new File(getPrivKeyFile());
if (!keyFile.isAbsolute())
keyFile = new File(I2PAppContext.getGlobalContext().getConfigDir(), getPrivKeyFile());
if (keyFile.exists()) {
//log("Not overwriting existing private keys in " + keyFile.getAbsolutePath());
return true;
@ -141,14 +153,14 @@ public class TunnelController implements Logging {
FileOutputStream fos = null;
try {
fos = new SecureFileOutputStream(keyFile);
SigType stype = I2PClient.DEFAULT_SIGTYPE;
String st = _config.getProperty(PFX_OPTION + I2PClient.PROP_SIGTYPE);
SigType stype = PREFERRED_SIGTYPE;
String st = _config.getProperty(OPT_SIG_TYPE);
if (st != null) {
SigType type = SigType.parseSigType(st);
if (type != null)
if (type != null && type.isAvailable())
stype = type;
else
log("Unsupported sig type " + st);
log("Unsupported sig type " + st + ", reverting to " + stype);
}
Destination dest = client.createDestination(fos, stype);
String destStr = dest.toBase64();
@ -387,10 +399,9 @@ public class TunnelController implements Logging {
* Note the fact that we are no longer using some sessions, and if
* no other tunnels are using them, close them.
*/
private void release() {
if (_sessions != null && !_sessions.isEmpty()) {
for (int i = 0; i < _sessions.size(); i++) {
I2PSession s = _sessions.get(i);
private void release(Collection<I2PSession> sessions) {
if (!sessions.isEmpty()) {
for (I2PSession s : sessions) {
if (_log.shouldLog(Log.INFO))
_log.info("Releasing session " + s);
TunnelControllerGroup group = TunnelControllerGroup.getInstance();
@ -403,6 +414,22 @@ public class TunnelController implements Logging {
_log.warn("No sessions to release? for " + getName());
}
}
/**
* Get all the sessions we may be using.
*
* @return a copy, non-null
* @since 0.9.15
*/
private Collection<I2PSession> getAllSessions() {
// We use _sessions AND the tunnel sessions as
// _sessions will be null for delay-open tunnels - see acquire().
// We want the current sessions.
Set<I2PSession> sessions = new HashSet(_tunnel.getSessions());
if (_sessions != null)
sessions.addAll(_sessions);
return sessions;
}
private void startClient() {
setListenOn();
@ -487,6 +514,17 @@ public class TunnelController implements Logging {
String proxies = getProxyList();
if (proxies != null)
opts.setProperty(PROP_PROXIES, proxies);
// Ditto spoof host. Since 0.9.15.
String spoofhost = getSpoofedHost();
if (spoofhost != null)
opts.setProperty(PROP_SPOOFED_HOST, spoofhost);
// Ditto target host/port. Since 0.9.15.
String targethost = getTargetHost();
if (targethost != null)
opts.setProperty(PROP_TARGET_HOST, targethost);
String targetport = getTargetPort();
if (targetport != null)
opts.setProperty(PROP_TARGET_PORT, targetport);
_tunnel.setClientOptions(opts);
}
@ -510,9 +548,32 @@ public class TunnelController implements Logging {
}
}
/**
* May be restarted with restartTunnel() or startTunnel() later.
* This may not release all resources. In particular, the I2PSocketManager remains
* and it may have timer threads that continue running.
*/
public void stopTunnel() {
// I2PTunnel removes the session in close(),
// so save the sessions to pass to release() and TCG
Collection<I2PSession> sessions = getAllSessions();
_tunnel.runClose(new String[] { "forced", "all" }, this);
release();
release(sessions);
_running = false;
}
/**
* May NOT be restarted with restartTunnel() or startTunnel() later.
* This should release all resources.
*
* @since 0.9.17
*/
public void destroyTunnel() {
// I2PTunnel removes the session in close(),
// so save the sessions to pass to release() and TCG
Collection<I2PSession> sessions = getAllSessions();
_tunnel.runClose(new String[] { "destroy", "all" }, this);
release(sessions);
_running = false;
}
@ -552,17 +613,40 @@ public class TunnelController implements Logging {
if (!_config.containsKey(OPT_LOW_TAGS))
_config.setProperty(OPT_LOW_TAGS, "14");
}
// same default logic as in EditBean.getSigType()
if (!isClient(type) ||
((type.equals(TYPE_IRC_CLIENT) || type.equals(TYPE_STD_CLIENT) ||
type.equals(TYPE_SOCKS_IRC) || type.equals(TYPE_STREAMR_CLIENT))
&& !Boolean.valueOf(getSharedClient()))) {
if (!_config.containsKey(OPT_SIG_TYPE))
_config.setProperty(OPT_SIG_TYPE, PREFERRED_SIGTYPE.name());
}
}
// tell i2ptunnel, who will tell the TunnelTask, who will tell the SocketManager
setSessionOptions();
if (_running && _sessions != null) {
for (I2PSession s : _sessions) {
if (_running) {
Collection<I2PSession> sessions = getAllSessions();
if (sessions.isEmpty()) {
if (_log.shouldLog(Log.DEBUG))
_log.debug("Running but no sessions to update");
}
for (I2PSession s : sessions) {
// tell the router via the session
if (!s.isClosed()) {
if (_log.shouldLog(Log.DEBUG))
_log.debug("Session is open, updating: " + s);
s.updateOptions(_tunnel.getClientOptions());
} else {
if (_log.shouldLog(Log.DEBUG))
_log.debug("Session is closed, not updating: " + s);
}
}
} else {
if (_log.shouldLog(Log.DEBUG)) {
_log.debug("Not running, not updating sessions");
}
}
}
@ -585,6 +669,34 @@ public class TunnelController implements Logging {
public String getI2CPHost() { return _config.getProperty(PROP_I2CP_HOST); }
public String getI2CPPort() { return _config.getProperty(PROP_I2CP_PORT); }
/**
* Is it a client or server in the UI and I2P side?
* Note that a streamr client is a UI and I2P client but a server on the localhost side.
* Note that a streamr server is a UI and I2P server but a client on the localhost side.
*
* @since 0.9.17
*/
public boolean isClient() {
return isClient(getType());
}
/**
* Is it a client or server in the UI and I2P side?
* Note that a streamr client is a UI and I2P client but a server on the localhost side.
* Note that a streamr server is a UI and I2P server but a client on the localhost side.
*
* @since 0.9.17 moved from IndexBean
*/
public static boolean isClient(String type) {
return TYPE_STD_CLIENT.equals(type) ||
TYPE_HTTP_CLIENT.equals(type) ||
TYPE_SOCKS.equals(type) ||
TYPE_SOCKS_IRC.equals(type) ||
TYPE_CONNECT.equals(type) ||
TYPE_STREAMR_CLIENT.equals(type) ||
TYPE_IRC_CLIENT.equals(type);
}
/**
* These are the ones with a prefix of "option."
*
@ -609,7 +721,12 @@ public class TunnelController implements Logging {
public String getTargetHost() { return _config.getProperty(PROP_TARGET_HOST); }
public String getTargetPort() { return _config.getProperty(PROP_TARGET_PORT); }
public String getSpoofedHost() { return _config.getProperty(PROP_SPOOFED_HOST); }
/**
* Probably not absolute. May be null. getPrivateKeyFile() recommended.
*/
public String getPrivKeyFile() { return _config.getProperty(PROP_FILE); }
public String getListenPort() { return _config.getProperty(PROP_LISTEN_PORT); }
public String getTargetDestination() { return _config.getProperty(PROP_DEST); }
public String getProxyList() { return _config.getProperty(PROP_PROXIES); }
@ -619,30 +736,59 @@ public class TunnelController implements Logging {
public boolean getStartOnLoad() { return Boolean.parseBoolean(_config.getProperty(PROP_START, "true")); }
public boolean getPersistentClientKey() { return Boolean.parseBoolean(_config.getProperty(OPT_PERSISTENT)); }
/**
* Does not necessarily exist.
* @return absolute path or null if unset
* @since 0.9.17
*/
public File getPrivateKeyFile() {
String f = getPrivKeyFile();
if (f == null)
return null;
f = f.trim();
if (f.length() == 0)
return null;
File rv = new File(f);
if (!rv.isAbsolute())
rv = new File(I2PAppContext.getGlobalContext().getConfigDir(), f);
return rv;
}
/**
* Returns null if not running.
* @return Base64 or null
*/
public String getMyDestination() {
if (_tunnel != null) {
List<I2PSession> sessions = _tunnel.getSessions();
for (int i = 0; i < sessions.size(); i++) {
I2PSession session = sessions.get(i);
Destination dest = session.getMyDestination();
if (dest != null)
return dest.toBase64();
}
}
Destination dest = getDestination();
if (dest != null)
return dest.toBase64();
return null;
}
/**
* Returns null if not running.
* @return "{52 chars}.b32.i2p" or null
*/
public String getMyDestHashBase32() {
Destination dest = getDestination();
if (dest != null)
return dest.toBase32();
return null;
}
/**
* Returns null if not running.
* @return Destination or null
* @since 0.9.17
*/
public Destination getDestination() {
if (_tunnel != null) {
List<I2PSession> sessions = _tunnel.getSessions();
for (int i = 0; i < sessions.size(); i++) {
I2PSession session = sessions.get(i);
Destination dest = session.getMyDestination();
if (dest != null)
return dest.toBase32();
return dest;
}
}
return null;
@ -650,6 +796,7 @@ public class TunnelController implements Logging {
public boolean getIsRunning() { return _running; }
public boolean getIsStarting() { return _starting; }
/** if running but no open sessions, we are in standby */
public boolean getIsStandby() {
if (!_running)
@ -802,4 +949,12 @@ public class TunnelController implements Logging {
}
return rv;
}
/**
* @since 0.9.15
*/
@Override
public String toString() {
return "TC " + getType() + ' ' + getName() + " for " + _tunnel;
}
}

View File

@ -268,7 +268,7 @@ public class TunnelControllerGroup implements ClientApp {
*
*/
public synchronized void unloadControllers() {
stopAllControllers();
destroyAllControllers();
_controllers.clear();
if (_log.shouldLog(Log.INFO))
_log.info("All controllers stopped and unloaded");
@ -296,7 +296,7 @@ public class TunnelControllerGroup implements ClientApp {
}
/**
* Stop all tunnels
* Stop all tunnels. May be restarted.
*
* @return list of messages the tunnels generate when stopped
*/
@ -312,6 +312,21 @@ public class TunnelControllerGroup implements ClientApp {
return msgs;
}
/**
* Stop all tunnels. They may not be restarted, you must reload.
* Caller must synch. Caller must clear controller list.
*
* @since 0.9.17
*/
private void destroyAllControllers() {
for (int i = 0; i < _controllers.size(); i++) {
TunnelController controller = _controllers.get(i);
controller.destroyTunnel();
}
if (_log.shouldLog(Log.INFO))
_log.info(_controllers.size() + " controllers stopped");
}
/**
* Start all tunnels
*

View File

@ -1,6 +1,7 @@
package net.i2p.i2ptunnel.streamr;
import net.i2p.i2ptunnel.udp.*;
import net.i2p.util.I2PAppThread;
/**
*
@ -9,7 +10,7 @@ import net.i2p.i2ptunnel.udp.*;
public class Pinger implements Source, Runnable {
public Pinger() {
this.thread = new Thread(this);
this.thread = new I2PAppThread(this);
}
public void setSink(Sink sink) {

View File

@ -6,6 +6,7 @@ import java.util.concurrent.BlockingQueue;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionListener;
import net.i2p.client.datagram.I2PDatagramDissector;
import net.i2p.util.I2PAppThread;
/**
*
@ -33,7 +34,7 @@ public class I2PSource implements Source, Runnable {
this.sess.setSessionListener(new Listener());
// create thread
this.thread = new Thread(this);
this.thread = new I2PAppThread(this);
}
public void setSink(Sink sink) {

View File

@ -3,6 +3,8 @@ package net.i2p.i2ptunnel.udp;
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import net.i2p.util.I2PAppThread;
/**
*
* @author welterde
@ -19,13 +21,13 @@ public class UDPSource implements Source, Runnable {
}
// create thread
this.thread = new Thread(this);
this.thread = new I2PAppThread(this);
}
/** use socket from UDPSink */
public UDPSource(DatagramSocket sock) {
this.sock = sock;
this.thread = new Thread(this);
this.thread = new I2PAppThread(this);
}
public void setSink(Sink sink) {

View File

@ -41,6 +41,11 @@ import net.i2p.util.Addresses;
public class EditBean extends IndexBean {
public EditBean() { super(); }
/**
* Is it a client or server in the UI and I2P side?
* Note that a streamr client is a UI and I2P client but a server on the localhost side.
* Note that a streamr server is a UI and I2P server but a client on the localhost side.
*/
public static boolean staticIsClient(int tunnel) {
TunnelControllerGroup group = TunnelControllerGroup.getInstance();
if (group == null)
@ -181,15 +186,48 @@ 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);
/**
* @param newTunnelType used if tunnel < 0
* @since 0.9.12
*/
public int getSigType(int tunnel, String newTunnelType) {
SigType type;
String ttype;
boolean isShared;
if (tunnel >= 0) {
Destination d = getDestination(tunnel);
if (d != null) {
type = d.getSigType();
if (type != null)
return type.getCode();
}
String stype = getProperty(tunnel, I2PClient.PROP_SIGTYPE, null);
type = stype != null ? SigType.parseSigType(stype) : null;
ttype = getTunnelType(tunnel);
isShared = isSharedClient(tunnel);
} else {
type = null;
ttype = newTunnelType;
isShared = false;
}
if (type == null) {
// same default logic as in TunnelController.setConfig()
if ((!TunnelController.isClient(ttype) ||
((TunnelController.TYPE_IRC_CLIENT.equals(ttype) ||
TunnelController.TYPE_SOCKS_IRC.equals(ttype) ||
TunnelController.TYPE_STREAMR_CLIENT.equals(ttype) ||
TunnelController.TYPE_STD_CLIENT.equals(ttype)) &&
!isShared)))
type = TunnelController.PREFERRED_SIGTYPE;
else
type = SigType.DSA_SHA1;
}
return type.getCode();
}
/** @since 0.9.12 */
public boolean isSigTypeAvailable(int code) {
SigType type = SigType.getByCode(code);
return type != null && type.isAvailable();
return SigType.isAvailable(code);
}
/** @since 0.8.9 */

View File

@ -25,16 +25,20 @@ import net.i2p.I2PAppContext;
import net.i2p.app.ClientAppManager;
import net.i2p.app.Outproxy;
import net.i2p.client.I2PClient;
import net.i2p.data.Base64;
import net.i2p.data.Certificate;
import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
import net.i2p.data.PrivateKeyFile;
import net.i2p.data.SessionKey;
import net.i2p.i2ptunnel.I2PTunnelClientBase;
import net.i2p.i2ptunnel.I2PTunnelConnectClient;
import net.i2p.i2ptunnel.I2PTunnelHTTPClient;
import net.i2p.i2ptunnel.I2PTunnelHTTPClientBase;
import net.i2p.i2ptunnel.I2PTunnelHTTPServer;
import net.i2p.i2ptunnel.I2PTunnelIRCClient;
import net.i2p.i2ptunnel.I2PTunnelServer;
import net.i2p.i2ptunnel.SSLClientUtil;
import net.i2p.i2ptunnel.TunnelController;
import net.i2p.i2ptunnel.TunnelControllerGroup;
import net.i2p.util.Addresses;
@ -255,7 +259,8 @@ public class IndexBean {
// give the messages a chance to make it to the window
try { Thread.sleep(1000); } catch (InterruptedException ie) {}
// and give them something to look at in any case
return _("Starting tunnel") + ' ' + getTunnelName(_tunnel) + "&hellip;";
// FIXME name will be HTML escaped twice
return _("Starting tunnel") + ' ' + getTunnelName(_tunnel) + "...";
}
private String stop() {
@ -268,7 +273,8 @@ public class IndexBean {
// give the messages a chance to make it to the window
try { Thread.sleep(1000); } catch (InterruptedException ie) {}
// and give them something to look at in any case
return _("Stopping tunnel") + ' ' + getTunnelName(_tunnel) + "&hellip;";
// FIXME name will be HTML escaped twice
return _("Stopping tunnel") + ' ' + getTunnelName(_tunnel) + "...";
}
private String saveChanges() {
@ -276,7 +282,27 @@ public class IndexBean {
TunnelController cur = getController(_tunnel);
Properties config = getConfig();
String ksMsg = null;
String type = config.getProperty(TunnelController.PROP_TYPE);
if (TunnelController.TYPE_STD_CLIENT.equals(type) || TunnelController.TYPE_IRC_CLIENT.equals(type)) {
//
// If we switch to SSL, create the keystore here, so we can store the new properties.
// Down in I2PTunnelClientBase it's very hard to save the config.
//
if (Boolean.parseBoolean(config.getProperty(OPT + I2PTunnelClientBase.PROP_USE_SSL))) {
try {
boolean created = SSLClientUtil.verifyKeyStore(config, OPT);
if (created) {
// config now contains new keystore props
ksMsg = "Created new self-signed certificate for tunnel " + getTunnelName(_tunnel);
}
} catch (IOException ioe) {
ksMsg = "Failed to create new self-signed certificate for tunnel " +
getTunnelName(_tunnel) + ", check logs: " + ioe;
}
}
}
if (cur == null) {
// creating new
cur = new TunnelController(config, "", true);
@ -327,6 +353,9 @@ public class IndexBean {
}
List<String> msgs = doSave();
if (ksMsg != null)
msgs.add(ksMsg);
// FIXME name will be HTML escaped twice
return getMessages(msgs);
}
@ -377,7 +406,8 @@ public class IndexBean {
name = Long.toString(_context.clock().now());
}
}
name = "i2ptunnel-deleted-" + name.replace(' ', '_') + '-' + _context.clock().now() + "-privkeys.dat";
name = name.replace(' ', '_').replace(':', '_').replace("..", "_").replace('/', '_').replace('\\', '_');
name = "i2ptunnel-deleted-" + name + '-' + _context.clock().now() + "-privkeys.dat";
File backupDir = new SecureFile(_context.getConfigDir(), TunnelController.KEY_BACKUP_DIR);
File to;
if (backupDir.isDirectory() || backupDir.mkdir())
@ -397,6 +427,7 @@ public class IndexBean {
* Executes any action requested (start/stop/etc) and dump out the
* messages.
*
* @return HTML escaped
*/
public String getMessages() {
if (_group == null)
@ -405,13 +436,14 @@ public class IndexBean {
StringBuilder buf = new StringBuilder(512);
if (_action != null) {
try {
buf.append(processAction()).append("\n");
buf.append(processAction()).append('\n');
} catch (Exception e) {
_log.log(Log.CRIT, "Error processing " + _action, e);
buf.append("Error: ").append(e.toString()).append('\n');
}
}
getMessages(_group.clearAllMessages(), buf);
return buf.toString();
return DataHelper.escapeHTML(buf.toString());
}
////
@ -424,13 +456,11 @@ public class IndexBean {
}
public boolean allowCSS() {
String css = _context.getProperty(PROP_CSS_DISABLED);
return (css == null);
return !_context.getBooleanProperty(PROP_CSS_DISABLED);
}
public boolean allowJS() {
String js = _context.getProperty(PROP_JS_DISABLED);
return (js == null);
return !_context.getBooleanProperty(PROP_JS_DISABLED);
}
public int getTunnelCount() {
@ -438,26 +468,30 @@ public class IndexBean {
return _group.getControllers().size();
}
/**
* Is it a client or server in the UI and I2P side?
* Note that a streamr client is a UI and I2P client but a server on the localhost side.
* Note that a streamr server is a UI and I2P server but a client on the localhost side.
*/
public boolean isClient(int tunnelNum) {
TunnelController cur = getController(tunnelNum);
if (cur == null) return false;
return isClient(cur.getType());
return cur.isClient();
}
/**
* Is it a client or server in the UI and I2P side?
* Note that a streamr client is a UI and I2P client but a server on the localhost side.
* Note that a streamr server is a UI and I2P server but a client on the localhost side.
*/
public static boolean isClient(String type) {
return ( (TunnelController.TYPE_STD_CLIENT.equals(type)) ||
(TunnelController.TYPE_HTTP_CLIENT.equals(type)) ||
(TunnelController.TYPE_SOCKS.equals(type)) ||
(TunnelController.TYPE_SOCKS_IRC.equals(type)) ||
(TunnelController.TYPE_CONNECT.equals(type)) ||
(TunnelController.TYPE_STREAMR_CLIENT.equals(type)) ||
(TunnelController.TYPE_IRC_CLIENT.equals(type)));
return TunnelController.isClient(type);
}
public String getTunnelName(int tunnel) {
TunnelController tun = getController(tunnel);
if (tun != null && tun.getName() != null)
return tun.getName();
return DataHelper.escapeHTML(tun.getName());
else
return _("New Tunnel");
}
@ -563,7 +597,7 @@ public class IndexBean {
public String getTunnelDescription(int tunnel) {
TunnelController tun = getController(tunnel);
if (tun != null && tun.getDescription() != null)
return tun.getDescription();
return DataHelper.escapeHTML(tun.getDescription());
else
return "";
}
@ -628,36 +662,50 @@ public class IndexBean {
return "";
}
public String getDestinationBase64(int tunnel) {
/**
* Works even if tunnel is not running.
* @return Destination or null
* @since 0.9.17
*/
protected Destination getDestination(int tunnel) {
TunnelController tun = getController(tunnel);
if (tun != null) {
String rv = tun.getMyDestination();
Destination rv = tun.getDestination();
if (rv != null)
return rv;
// if not running, do this the hard way
String keyFile = tun.getPrivKeyFile();
if (keyFile != null && keyFile.trim().length() > 0) {
File keyFile = tun.getPrivateKeyFile();
if (keyFile != null) {
PrivateKeyFile pkf = new PrivateKeyFile(keyFile);
try {
Destination d = pkf.getDestination();
if (d != null)
return d.toBase64();
rv = pkf.getDestination();
if (rv != null)
return rv;
} catch (Exception e) {}
}
}
return null;
}
/**
* Works even if tunnel is not running.
* @return Base64 or ""
*/
public String getDestinationBase64(int tunnel) {
Destination d = getDestination(tunnel);
if (d != null)
return d.toBase64();
return "";
}
/**
* Works even if tunnel is not running.
* @return "{52 chars}.b32.i2p" or ""
*/
public String getDestHashBase32(int tunnel) {
TunnelController tun = getController(tunnel);
if (tun != null) {
String rv = tun.getMyDestHashBase32();
if (rv != null)
return rv;
}
Destination d = getDestination(tunnel);
if (d != null)
return d.toBase32();
return "";
}
@ -700,8 +748,9 @@ public class IndexBean {
_name = (name != null ? name.trim() : null);
}
/** one line description */
public void setDescription(String description) {
_description = (description != null ? description.trim() : null);
public void setNofilter_description(String description) {
// '#' will blow up DataHelper.storeProps()
_description = (description != null ? description.replace('#', ' ').trim() : null);
}
/** I2CP host the router is on, ignored when in router context */
public void setClientHost(String host) {
@ -1283,6 +1332,20 @@ public class IndexBean {
}
}
// As of 0.9.17, add a persistent random key if not present
if (!isClient(_type) || _booleanOptions.contains("persistentClientKey")) {
String p = OPT + "inbound.randomKey";
if (!config.containsKey(p)) {
// as of 0.9.17, add a random key if not previously present
byte[] rk = new byte[32];
_context.random().nextBytes(rk);
config.setProperty(p, Base64.encode(rk));
p = OPT + "outbound.randomKey";
_context.random().nextBytes(rk);
config.setProperty(p, Base64.encode(rk));
}
}
return config;
}
@ -1293,7 +1356,8 @@ public class IndexBean {
I2PTunnelIRCClient.PROP_DCC
};
private static final String _booleanClientOpts[] = {
"i2cp.reduceOnIdle", "i2cp.closeOnIdle", "i2cp.newDestOnResume", "persistentClientKey", "i2cp.delayOpen"
"i2cp.reduceOnIdle", "i2cp.closeOnIdle", "i2cp.newDestOnResume", "persistentClientKey", "i2cp.delayOpen",
I2PTunnelClientBase.PROP_USE_SSL,
};
private static final String _booleanProxyOpts[] = {
I2PTunnelHTTPClientBase.PROP_OUTPROXY_AUTH,

View File

@ -2,7 +2,8 @@
// NOTE: Do the header carefully so there is no whitespace before the <?xml... line
response.setHeader("X-Frame-Options", "SAMEORIGIN");
response.setHeader("Content-Security-Policy", "default-src 'self'; style-src 'self' 'unsafe-inline'");
// edit pages need script for the delete button 'are you sure'
response.setHeader("Content-Security-Policy", "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'");
response.setHeader("X-XSS-Protection", "1; mode=block");
%><%@page pageEncoding="UTF-8"
@ -10,7 +11,7 @@
%><%@page contentType="text/html" import="net.i2p.i2ptunnel.web.EditBean"
%><%
String tun = request.getParameter("tunnel");
if (tun != null) {
if (tun != null) {
try {
int curTunnel = Integer.parseInt(tun);
if (EditBean.staticIsClient(curTunnel)) {

View File

@ -44,8 +44,8 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<div id="tunnelEditPanel" class="panel">
<div class="header">
<%
String tunnelTypeName = "";
String tunnelType = "";
String tunnelTypeName;
String tunnelType;
if (curTunnel >= 0) {
tunnelTypeName = editBean.getTunnelType(curTunnel);
tunnelType = editBean.getInternalType(curTunnel);
@ -79,7 +79,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<label for="description" accesskey="e">
<%=intl._("Description")%>:(<span class="accessKey">E</span>)
</label>
<input type="text" size="60" maxlength="80" name="description" id="description" title="Tunnel Description" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext" />
<input type="text" size="60" maxlength="80" name="nofilter_description" id="description" title="Tunnel Description" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext" />
</div>
<div class="subdivider">
@ -140,6 +140,14 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
</select>
<% } /* streamrclient */ %>
</div>
<% if ("client".equals(tunnelType) || "ircclient".equals(tunnelType)) {
%><div id="portField" class="rowItem">
<label>
<%=intl._("Use SSL?")%>
</label>
<input value="1" type="checkbox" id="startOnLoad" name="useSSL" title="Clients use SSL to connect" <%=(editBean.isSSLEnabled(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% } /* tunnel types */ %>
<div class="subdivider">
<hr />
@ -333,6 +341,23 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<div class="subdivider">
<hr />
</div>
<div id="optionsField" class="rowItem">
<label for="reduce" accesskey="c">
<%=intl._("Delay tunnel open until required")%>(<span class="accessKey">D</span>):
</label>
</div>
<div id="portField" class="rowItem">
<label for="access" accesskey="c">
<%=intl._("Enable")%>:
</label>
<input value="1" type="checkbox" id="startOnLoad" name="delayOpen" title="Delay Tunnel Open"<%=(editBean.getDelayOpen(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% } // !streamrclient %>
<div class="subdivider">
<hr />
</div>
<div id="optionsField" class="rowItem">
<label for="reduce" accesskey="d">
@ -397,23 +422,6 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<hr />
</div>
<div id="optionsField" class="rowItem">
<label for="reduce" accesskey="c">
<%=intl._("Delay tunnel open until required")%>(<span class="accessKey">D</span>):
</label>
</div>
<div id="portField" class="rowItem">
<label for="access" accesskey="c">
<%=intl._("Enable")%>:
</label>
<input value="1" type="checkbox" id="startOnLoad" name="delayOpen" title="Delay Tunnel Open"<%=(editBean.getDelayOpen(curTunnel) ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% } // !streamrclient %>
<div class="subdivider">
<hr />
</div>
<% if ("client".equals(tunnelType) || "ircclient".equals(tunnelType) || "socksirctunnel".equals(tunnelType) || "sockstunnel".equals(tunnelType)) { %>
<div id="optionsField" class="rowItem">
<label for="privKeyFile" accesskey="k">
@ -483,7 +491,9 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
</div>
<% } // if httpclient %>
<% if (true /* editBean.isAdvanced() */ ) { %>
<% if (true /* editBean.isAdvanced() */ ) {
int currentSigType = editBean.getSigType(curTunnel, tunnelType);
%>
<div id="tunnelOptionsField" class="rowItem">
<label>
<%=intl._("Signature type")%>
@ -493,24 +503,30 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<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" />
<input value="0" type="radio" id="startOnLoad" name="sigType" title="Default"<%=(currentSigType==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" />
<input value="1" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==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" />
<input value="2" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==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" />
<input value="3" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% }
if (editBean.isSigTypeAvailable(7)) { %>
<div id="portField" class="rowItem">
<label>Ed25519-SHA-512</label>
<input value="7" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==7 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% } // isAvailable %>
</div>
@ -587,7 +603,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<label for="customOptions" accesskey="u">
<%=intl._("Custom options")%>(<span class="accessKey">u</span>):
</label>
<input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="Custom Options" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" />
<input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="Custom Options" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" spellcheck="false"/>
</div>
<div class="footer">

View File

@ -44,8 +44,8 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<div id="tunnelEditPanel" class="panel">
<div class="header">
<%
String tunnelTypeName = "";
String tunnelType = "";
String tunnelTypeName;
String tunnelType;
if (curTunnel >= 0) {
tunnelTypeName = editBean.getTunnelType(curTunnel);
tunnelType = editBean.getInternalType(curTunnel);
@ -79,7 +79,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<label for="description" accesskey="e">
<%=intl._("Description")%>(<span class="accessKey">e</span>):
</label>
<input type="text" size="60" maxlength="80" name="description" id="description" title="Tunnel Description" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext" />
<input type="text" size="60" maxlength="80" name="nofilter_description" id="description" title="Tunnel Description" value="<%=editBean.getTunnelDescription(curTunnel)%>" class="freetext" />
</div>
<div id="startupField" class="rowItem">
<label for="startOnLoad" accesskey="a">
@ -570,7 +570,9 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
</div>
<% **********************/ %>
<% if (true /* editBean.isAdvanced() */ ) { %>
<% if (true /* editBean.isAdvanced() */ ) {
int currentSigType = editBean.getSigType(curTunnel, tunnelType);
%>
<div id="tunnelOptionsField" class="rowItem">
<label>
<%=intl._("Signature type")%>
@ -580,24 +582,30 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<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" />
<input value="0" type="radio" id="startOnLoad" name="sigType" title="Default"<%=(currentSigType==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" />
<input value="1" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==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" />
<input value="2" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==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" />
<input value="3" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==3 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% }
if (editBean.isSigTypeAvailable(7)) { %>
<div id="portField" class="rowItem">
<label>Ed25519-SHA-512</label>
<input value="7" type="radio" id="startOnLoad" name="sigType" title="Advanced users only"<%=(currentSigType==7 ? " checked=\"checked\"" : "")%> class="tickbox" />
</div>
<% } // isAvailable %>
</div>
@ -611,7 +619,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
<label for="customOptions" accesskey="u">
<%=intl._("Custom options")%>(<span class="accessKey">u</span>):
</label>
<input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="Custom Options" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" />
<input type="text" id="customOptions" name="nofilter_customOptions" size="60" title="Custom Options" value="<%=editBean.getCustomOptions(curTunnel)%>" class="freetext" spellcheck="false"/>
</div>
<div class="footer">

View File

@ -244,6 +244,8 @@
<%
String cPort= indexBean.getClientPort2(curClient);
out.write(cPort);
if (indexBean.isSSLEnabled(curClient))
out.write(" SSL");
%>
</span>
</div>

View File

@ -233,11 +233,11 @@
<label for="description" accesskey="e">
<%=intl._("Description")%>:(<span class="accessKey">E</span>)
</label>
<input type="text" size="60" maxlength="80" name="description" id="description" title="Tunnel Description" value="<%=(!"null".equals(request.getParameter("description")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("description")) : "" ) %>" class="freetext" />
<input type="text" size="60" maxlength="80" name="nofilter_description" id="description" title="Tunnel Description" value="<%=(!"null".equals(request.getParameter("nofilter_description")) ? net.i2p.data.DataHelper.stripHTML(request.getParameter("nofilter_description")) : "" ) %>" class="freetext" />
</div><%
} else {
%><input type="hidden" name="name" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter("name"))%>" />
<input type="hidden" name="description" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter("description"))%>" /><%
<input type="hidden" name="nofilter_description" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter("nofilter_description"))%>" /><%
} /* curPage 3 */
/* End page 3 */ %>
@ -440,7 +440,7 @@
</td></tr>
<tr><td><%=intl._("Tunnel name and description")%></td><td>
<%=net.i2p.data.DataHelper.stripHTML(request.getParameter("name"))%><br />
<%=net.i2p.data.DataHelper.stripHTML(request.getParameter("description"))%>
<%=net.i2p.data.DataHelper.stripHTML(request.getParameter("nofilter_description"))%>
</td></tr><%
if (tunnelIsClient) { %>
<tr><td><%=intl._("Tunnel destination")%></td><td><%
@ -484,7 +484,7 @@
<input type="hidden" name="tunnelBackupQuantity" value="0" />
<input type="hidden" name="clientHost" value="internal" />
<input type="hidden" name="clientport" value="internal" />
<input type="hidden" name="customOptions" value="" />
<input type="hidden" name="nofilter_customOptions" value="" />
<%
if (!"streamrclient".equals(tunnelType)) {
@ -501,9 +501,9 @@
}
if ("httpclient".equals(tunnelType) || "connectclient".equals(tunnelType) || "sockstunnel".equals(tunnelType) || "socksirctunnel".equals(tunnelType)) {
%><input type="hidden" name="proxyUsername" value="" />
<input type="hidden" name="proxyPassword" value="" />
<input type="hidden" name="nofilter_proxyPassword" value="" />
<input type="hidden" name="outproxyUsername" value="" />
<input type="hidden" name="outproxyPassword" value="" /><%
<input type="hidden" name="nofilter_outproxyPassword" value="" /><%
}
if ("httpclient".equals(tunnelType)) {
%><input type="hidden" name="jumpList" value="http://i2host.i2p/cgi-bin/i2hostjump?

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:52+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+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"
@ -19,245 +19,385 @@ msgstr ""
"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"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "تحديث بروكسي الى"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr ""
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr ""
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "تم حفظ تغيرات الاعدادات"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr ""
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "أضف الى دفتر العناوين"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "اسم او اتجاه"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "وجهة محلية"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "اسم او اتجاه"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "وجهة محلية"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "تحديث بروكسي الى"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "اعدادات البروكسي الخارجي"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "اعدادات البروكسي الخارجي"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -265,102 +405,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
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 ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "اسم او اتجاه"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -368,55 +421,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "اتجاه"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "بروكسي خارجي"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr ""
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -4,13 +4,14 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
# Translators:
# A5h8d0wf0x <littleslyfoxie28@gmail.com>, 2014
# Waseihou Watashi <waseihou@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:52+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/I2P/language/cs/)\n"
"MIME-Version: 1.0\n"
@ -19,245 +20,385 @@ msgstr ""
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Informace: Nové jméno hostitele"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr ""
msgstr "Konzole routeru"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr ""
msgstr "I2P konzole routeru"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr ""
msgstr "Konfigurace"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr ""
msgstr "Pomoc"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Adresář"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "jméno nebo cíl"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Cíl tunelu"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "jméno nebo cíl"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Cíl tunelu"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr ""
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr ""
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -265,102 +406,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
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 ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "jméno nebo cíl"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -368,55 +422,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "HTTP bidir"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr ""
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -10,7 +10,8 @@
# ducki2p <ducki2p@gmail.com>, 2011
# Ettore Atalan <atalanttore@googlemail.com>, 2014
# foo <foo@bar>, 2009
# echeloni2p <echelon@i2pmail.org>, 2014
# Lars Schimmer <echelon@i2pmail.org>, 2014
# Max Muster <scr53875@soisz.com>, 2014
# mixxy, 2011
# nextloop <ga25day@mytum.de>, 2013
# pirr <pirr@tormail.org>, 2012
@ -19,9 +20,9 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \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"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-11-06 10:05+0000\n"
"Last-Translator: Max Muster <scr53875@soisz.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"
@ -29,245 +30,385 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "Warnung: Outproxy nicht gefunden"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Information: Neuer Hostname"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Routerkonsole"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Routerkonsole"
msgstr "I2P Routerkonsole"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Einstellungen"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Hilfe"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Adressbuch"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Information: Ein neuer Hostname mit Adresshelfer."
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "Der HTTP-Proxy ist nicht bereit"
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."
#: ../java/build/Proxy.java:13
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."
msgid "You may save this host name to your local address book."
msgstr "Du kannst den Adressnamen in deinem Adressbuch speichern."
#: ../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)."
"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."
#: ../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 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:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Tunnel Ziel"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Fehler: Anfrage abgelehnt"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Fehler: Lokaler Zugriff"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Dein Browser unterstützt keine iFrames."
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
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."
"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."
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Warnung: Eepsite unbekannt"
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Warnung: Eepsite Adresse nicht im Adressbuch gefunden"
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
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."
#: ../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}."
#: ../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."
#: ../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. "
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
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."
#: ../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."
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "lokales Ziel"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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."
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "Der I2P Server kann auch offline sein."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Sie sollten es noch einmal {0}probieren{1}."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
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,"
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Warnung: Kein Outproxy eingerichtet"
#: ../java/build/Proxy.java:75
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."
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Bitte stelle einen Ausgangsproxy in I2PTunnel ein"
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Warnung: Destinations Schlüssel Konflikt"
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
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."
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
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."
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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."
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Warnung: Ungültiger Adress-Helfer"
#: ../java/build/Proxy.java:34
#, 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."
#: ../java/build/Proxy.java:35
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."
#: ../java/build/Proxy.java:36
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."
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Warnung: Anfrage abgelehnt"
#: ../java/build/Proxy.java:44
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,"
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Warnung: Eepsite unerreichbar"
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr "Die Eepsite wurde nicht erreicht, da deren Leaseset nicht gefunden wurde."
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr "Die Eepsite ist wahrscheinlich nicht aktiv, aber es kann auch ein Problem im Netzwerk sein"
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Sie sollten es noch einmal {0}probieren{1}."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Tunnel Ziel"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr "Diese Eepseite war nicht erreichbar, da die verwendeten Verschlüsselungseinstellungen nicht von deiner I2P- oder Java-Version unterstützt werden."
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr "Es konnte keine Verbindung zu dem folgenden Ziel aufgebaut werden:"
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Fehler: Anfrage abgelehnt"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Fehler: Lokaler Zugriff"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Dein Browser unterstützt keine iFrames."
#: ../java/build/Proxy.java:73
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."
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Warnung: Kein Outproxy eingerichtet"
#: ../java/build/Proxy.java:81
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."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Bitte stelle einen Ausgangsproxy in I2PTunnel ein"
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "Die Eepsite ist nicht erreichbar."
#: ../java/build/Proxy.java:91
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. "
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "lokales Ziel"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "Die genannte Eepsite Adresse ist nicht gültig, oder andersweitig unerreichbar."
#: ../java/build/Proxy.java:102
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."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "Der I2P Server kann auch offline sein."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Warnung: Kein HTTP Protokoll"
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "Die Anfrage nutzt ein ungültiges Protokoll."
#: ../java/build/Proxy.java:114
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:115
msgid "Other protocols such as FTP are not allowed."
msgstr "Andere Protokolle wie FTP sind nicht erlaubt."
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr "Achtung: Outproxy ist nicht erreichbar"
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr "Der HTTP-Outproxy war nicht erreichbar, da die verwendeten Verschlüsselungseinstellungen nicht von deiner I2P- oder Java-Version unterstützt werden."
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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)."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, 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."
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Warnung: Eepsite unbekannt"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Warnung: Eepsite Adresse nicht im Adressbuch gefunden"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "Die Eepsite wurde nicht im Adressbuch ihres Routers gefunden."
#: ../java/build/Proxy.java:135
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."
#: ../java/build/Proxy.java:136
#, 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}."
#: ../java/build/Proxy.java:137
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."
#: ../java/build/Proxy.java:138
#, 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. "
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Warnung: Ungültige Anfrage URI"
#: ../java/build/Proxy.java:147
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."
#: ../java/build/Proxy.java:148
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."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Warnung: Outproxy nicht gefunden"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr "Der HTTP Outproxy wurde nicht erreicht, da dessen Leaseset nicht gefunden wurde."
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr "Der Outproxy ist wahrscheinlich nicht aktiv, aber es kann auch ein Problem im Netzwerk sein."
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "Der HTTP-Proxy ist nicht bereit"
#: ../java/build/Proxy.java:169
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."
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Anmeldung erforderlich"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Anmeldung für den I2P-HTTP-Proxy vonnöten"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
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
#: ../java/build/Proxy.java:176
#, java-format
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}"
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -275,99 +416,15 @@ msgid ""
"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"
msgstr "Warnung: Eepsite unerreichbar"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "Die Eepsite ist nicht erreichbar."
#: ../java/build/Proxy.java:100
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. "
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Information: Neuer Hostname"
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr "Information: Ein neuer Hostname mit Adresshelfer."
#: ../java/build/Proxy.java:110
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."
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
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."
#: ../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."
#: ../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."
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
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."
#: ../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."
#: ../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."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr "Warnung: Kein HTTP Protokoll"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr "Die Anfrage nutzt ein ungültiges Protokoll."
#: ../java/build/Proxy.java:133
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
msgid "Other protocols such as FTP are not allowed."
msgstr "Andere Protokolle wie FTP sind nicht erlaubt."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Dies scheint kein gültiges Ziel zu sein:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
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:662
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -375,55 +432,43 @@ msgid ""
"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:1151
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr "Leaseset des Servers nicht gefunden."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Ziel"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1165
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Weiter zu {0}, ohne zu speichern"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, 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:1173
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, 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:1174
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, 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:1290
msgid "HTTP Outproxy"
msgstr "HTTP-Outproxy"
#: ../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:"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1334
#, java-format
msgid "{0} jump service"
msgstr "Weiterleitungsdienst {0}"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P i2ptunnel\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-07-23 13:45+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n"
@ -26,9 +26,10 @@ msgstr ""
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr ""
@ -37,9 +38,10 @@ msgstr ""
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:122
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr ""
@ -47,9 +49,10 @@ msgstr ""
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:100
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:123
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr ""
@ -58,9 +61,10 @@ msgstr ""
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:89 ../java/build/Proxy.java:101
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:124
#: ../java/build/Proxy.java:133 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr ""
@ -69,9 +73,10 @@ msgstr ""
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:90 ../java/build/Proxy.java:102
#: ../java/build/Proxy.java:112 ../java/build/Proxy.java:125
#: ../java/build/Proxy.java:134 ../java/build/Proxy.java:146
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr ""
@ -158,7 +163,8 @@ msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
@ -167,205 +173,229 @@ msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid "The eepsite is probably down."
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:152
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr ""
#: ../java/build/Proxy.java:56
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:65 ../java/build/Proxy.java:71
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:72
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:73
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr ""
#: ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
"is bad."
msgstr ""
#: ../java/build/Proxy.java:94
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:103
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:107
msgid "Warning: Eepsite Unknown"
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:116
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:123
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
"below."
"The HTTP outproxy was not reachable, because it uses encryption options that "
"are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:118
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:126
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:127
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:128
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:135
#: ../java/build/Proxy.java:141 ../java/build/Proxy.java:147
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:136
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:137
msgid "The outproxy is probably down."
msgstr ""
#: ../java/build/Proxy.java:138 ../java/build/Proxy.java:150
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:139 ../java/build/Proxy.java:151
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list {0}"
"here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
"below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:149
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:153
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr ""
#: ../java/build/Proxy.java:154
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr ""
#: ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:175
msgid "This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:156
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:157
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration {0}i2ptunnel.proxy."

View File

@ -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:
# "blabla", 2011
# blabla <blabla@trash-mail.com>, 2011-2012
@ -10,473 +10,461 @@
# ducki2p <ducki2p@gmail.com>, 2011
# foo <foo@bar>, 2009
# punkibastardo <punkibastardo@gmail.com>, 2011-2012
# strel, 2013
# trolly, 2013
# trolly, 2013
# strel, 2013-2014
# Trolly, 2013
# Trolly, 2013
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 19:59+0000\n"
"PO-Revision-Date: 2013-11-22 18:46+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 21:45+0000\n"
"Last-Translator: strel\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/I2P/language/"
"es/)\n"
"Language: es\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"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "Advertencia: Outproxy no encontrado"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Información: Nuevo nombre de host"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Consola del Ruter"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Consola del Ruter I2P"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Ajustes"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Ayuda"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Libreta de direcciones"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Información: Nuevo nombre de host con Ayuda de Dirección"
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "El proxy HTTP no está activo"
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr "El enlace de ayuda de direcciones que ha abierto es para un nuevo nombre de dominio que no estaba en su libreta de direcciones."
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
"Está apagado, o hay congestión en la red, o su ruter aún no está bien "
"integrado con los otros pares."
msgid "You may save this host name to your local address book."
msgstr "Quizás desee guardar este dominio en su libreta de direcciones local."
#: ../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 ""
"Puede ser que desee {0}reintentarlo{1} ya uqe esto seleccionará "
"aleatoriamente un outproxy del grupo que haya definido {2}aquí{3} (si tiene "
"configurado más de uno)"
"If you save it to your address book, you will not see this message again."
msgstr "Si lo guarda en su libreta de direcciones, no verá este mensaje de nuevo."
#: ../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 aún sigue teniendo problemas puede ser que desee editar si lista de "
"outproxies {0}aquí{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr "Si no lo guarda, el dominio se olvidará después de reiniciar el ruter."
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "No se pudo encontrar el siguiente destino:"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Error: solicitud denegada"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Error: acceso local"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Su navegador no soporta iFrames."
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
"No use el proxy para acceder a la consola del ruter, localhost o "
"destinaciones en su LAN local."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr "Di no desea visitar este dominio, pulse en botón \"volver\" de su navegador."
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Advertencia: Eepsite desconocida."
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Advertencia: Eepsite no encontrada en la libreta de direcciones"
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr "LA eepsite no se encontró en su libreta de direcciones."
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Compruebe el enlace o busque una dirección Base 32 o 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 tiene una dirección Base 64, {0}añádala a su libreta de direcciones{1}."
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
"below."
msgstr ""
"Si no, encuentre una dirección Base 32 o un enlace de ayuda, o use un "
"servicio de salto de más abajo."
#: ../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 ""
"¿Entra a esta web a menudo? Vea {0}el FAQ{1} para obtener ayuda de como {2}"
"añadir suscripciones{3} a su libreta de direcciones."
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr "Advertencia: URI solicitado no válida"
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
"La URI solicitada no es válida y probablemente tenga caracteres no válidos."
#: ../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 ha pulsado en un enlace, compruebe el final de la URI por caracteres que "
"haya podido añadir el navegador por error."
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Aviso: Destinación no válida."
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
"La destinación de eepsite especificada no es válida, o quizás no se ha "
"podido acceder a ella."
#: ../java/build/Proxy.java:56
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
"is bad."
msgstr ""
"Quizás pegó la destinación Base 64 equivocada o el enlace que ha pulsado "
"estaba mal."
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "También podría ser que ese servidor I2P esté apagado."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Quizás quiera {0}reintentarlo{1}."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr "Advertencia: solicitud denegada"
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Ha intentado conectarse a una localización o una web no I2P."
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Advertencia: no se ha configurado ningún proxy de salida"
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
"Su petición es para una web fuera de I2P, pero no tiene configurado el proxy "
"de salida HTTP."
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Por favor, configure un proxy de salida en el I2PTunnel."
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Advertencia: Conflicto con la clave de destino"
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
"El enlace de ayuda que ha pulsado tienen una clave de destino diferente a la "
"que ya tiene en su base de datos de dominios."
msgstr "El enlace de ayuda que ha pulsado tienen una clave de destino diferente a la que ya tiene en su base de datos de dominios."
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given "
"two eepsites identical names."
msgstr ""
"Alguien podría estar intentando hacerse pasar por otra eepsite, o la gente "
"ha puesto nombres idénticos a varias eepsites."
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr "Alguien podría estar intentando hacerse pasar por otra eepsite, o la gente ha puesto nombres idénticos a varias eepsites."
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
"Puede resolver este conflicto considerando de qué clave se fía, y según "
"esto, eliminando el enlace con la dirección de ayuda, eliminando la entrada "
"de su base de datos de direcciones, o renombrando alguna de ellas."
msgstr "Puede resolver este conflicto considerando de qué clave se fía, y según esto, eliminando el enlace con la dirección de ayuda, eliminando la entrada de su base de datos de direcciones, o renombrando alguna de ellas."
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Advertencia: Dirección de ayuda errónea."
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr "La clave de ayuda en la URL ({0}i2paddresshelper={1}) no se puede resolver."
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Parecen ser datos basura, o una dirección Base 32 mal escrita."
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr "Compruebe la URL e intente arreglar la clave de ayuda para que sea un nombre de dominio Base 32 válido, o una clave Base 64."
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Advertencia: solicitud denegada"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Ha intentado conectarse a una localización o una web no I2P."
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Advertencia: Eepsite no accesible"
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr "El eepsite no estaba accesible porque no se encontró su LeaseSet (grupo de túneles a un destino)"
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr "El eepsite probablemente estaba caído, pero también puedo haber congestión en la red."
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Quizás quiera {0}reintentarlo{1}."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "No se pudo encontrar el siguiente destino:"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr "El eepsite no se pudo alcanzar, porque usa opciones de cifrado que no están soportadas por su versión de I2P o de Java."
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr "No se pudo conectar con el siguiente destino:"
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Error: solicitud denegada"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Error: acceso local"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Su navegador no soporta iFrames."
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr "No use el proxy para acceder a la consola del ruter, localhost o destinaciones en su LAN local."
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Advertencia: no se ha configurado ningún proxy de salida"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Su petición es para una web fuera de I2P, pero no tiene configurado el proxy de salida HTTP."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Por favor, configure un proxy de salida en el I2PTunnel."
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "No se ha podido acceder a la eepsite."
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr "La eepsite está pagada, o hay congestión en la red, o su ruter no está aún bien integrado con los otros pares."
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Aviso: Destinación no válida."
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "La destinación de eepsite especificada no es válida, o quizás no se ha podido acceder a ella."
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr "Quizás pegó la destinación Base 64 equivocada o el enlace que ha pulsado estaba mal."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "También podría ser que ese servidor I2P esté apagado."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Advertencia: Protocolo no HTTP"
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "La petición usa un protocolo incorrecto."
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr "El Proxy HTTP de I2P sólo soporta peticiones HTTP y HTTPS."
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr "Otros protocolos tales como FTP no están permitidos."
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr "Advertencia: Proxy de salida no alcanzable"
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr "El proxy HTTP de salida no se pudo alcanzar, porque usa opciones de cifrado que no están soportadas por su versión de I2P o de Java."
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 "Puede ser que desee {0}reintentarlo{1} ya uqe esto seleccionará aleatoriamente un outproxy del grupo que haya definido {2}aquí{3} (si tiene configurado más de uno)"
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr "Si aún sigue teniendo problemas puede ser que desee editar si lista de outproxies {0}aquí{1}."
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Advertencia: Eepsite desconocida."
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Advertencia: Eepsite no encontrada en la libreta de direcciones"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "LA eepsite no se encontró en su libreta de direcciones."
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Compruebe el enlace o busque una dirección Base 32 o Base 64."
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Si tiene una dirección Base 64, {0}añádala a su libreta de direcciones{1}."
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr "Si no, encuentre una dirección Base 32 o un enlace de ayuda, o use un servicio de salto de más abajo."
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr "¿Entra a esta web a menudo? Vea {0}el FAQ{1} para obtener ayuda de como {2}añadir suscripciones{3} a su libreta de direcciones."
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Advertencia: URI solicitado no válida"
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "La URI solicitada no es válida y probablemente tenga caracteres no válidos."
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr "Si ha pulsado en un enlace, compruebe el final de la URI por caracteres que haya podido añadir el navegador por error."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Advertencia: Outproxy no encontrado"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr "El proxy HTTP de salida a Internet (outproxy) no estaba accesible porque no se encontró su LeaseSet (túneles al mismo destino)."
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr "El proxy de salida a Internet (outproxy) probablemente estaba caído, pero también pudo haber congestión en la red."
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "El proxy HTTP no está activo"
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr "Está apagado, o hay congestión en la red, o su ruter aún no está bien integrado con los otros pares."
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Se necesita Autorización para el Proxy"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Se necesita Autorización para el proxy I2P HTTP"
#: ../java/build/Proxy.java:89
msgid "This proxy is configured to require a username and password for access."
msgstr ""
"Este proxy está configurado para requerir un usuario y contraseña para "
"acceder."
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Este proxy está configurado para requerir un usuario y contraseña para acceder."
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
"Por favor, escriba su usuario y contraseña, o compruebe su configuración{1} "
"del {0}ruter o su configuración{3} de {2}I2PTunnel."
msgstr "Por favor, escriba su usuario y contraseña, o compruebe su configuración{1} del {0}ruter o su configuración{3} de {2}I2PTunnel."
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration {0}i2ptunnel.proxy."
"auth=basic{1}, then stop and restart the HTTP Proxy tunnel."
msgstr ""
"Para desactivar la autorización, elimine la configuración {0}i2ptunnel.proxy."
"auth=basic{1}, entonces apague y reinicie el túnel HTTP Proxy."
"To disable authorization, remove the configuration "
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
"tunnel."
msgstr "Para desactivar la autorización, elimine la configuración {0}i2ptunnel.proxy.auth=basic{1}, entonces apague y reinicie el túnel HTTP Proxy."
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr "Advertencia: Eepsite no accesible"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "No se ha podido acceder a la eepsite."
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
"La eepsite está pagada, o hay congestión en la red, o su ruter no está aún "
"bien integrado con los otros pares."
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Información: Nuevo nombre de host"
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr "Información: Nuevo nombre de host con Ayuda de Dirección"
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
"El enlace de ayuda de direcciones que ha abierto es para un nuevo nombre de "
"dominio que no estaba en su libreta de direcciones."
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr "Quizás desee guardar este dominio en su libreta de direcciones local."
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
msgstr ""
"Si lo guarda en su libreta de direcciones, no verá este mensaje de nuevo."
#: ../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 no lo guarda, el dominio se olvidará después de reiniciar el ruter."
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
"Di no desea visitar este dominio, pulse en botón \"volver\" de su "
"navegador."
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr "Advertencia: Dirección de ayuda errónea."
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
"La clave de ayuda en la URL ({0}i2paddresshelper={1}) no se puede resolver."
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Parecen ser datos basura, o una dirección Base 32 mal escrita."
#: ../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 ""
"Compruebe la URL e intente arreglar la clave de ayuda para que sea un nombre "
"de dominio Base 32 válido, o una clave Base 64."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr "Advertencia: Protocolo no HTTP"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr "La petición usa un protocolo incorrecto."
#: ../java/build/Proxy.java:133
#, java-format
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
msgstr "El proxy HTTP de I2P SÓLO admite peticiones {0}http://{1}."
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
"Otros protocolos como {0}https://{1} y {0}ftp://{1} no están permitidos."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Éste parece ser un destino falso:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "El ayudante de direcciones no te puede ayudar con un destino así."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a href=\"{0}\">here</"
"a>. To visit the conflicting addresshelper destination, click <a href="
"\"{1}\">here</a>."
msgstr ""
"Para visitar el destino en la base de datos de hosts, ¡pincha <a href="
"\"{0}\">aquí</a>! Para visitar el destino del ayudante de direcciones en "
"conflicto, ¡pincha <a href=\"{1}\">aquí</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 "Para visitar el destino en la base de datos de hosts, ¡pincha <a href=\"{0}\">aquí</a>! Para visitar el destino del ayudante de direcciones en conflicto, ¡pincha <a href=\"{1}\">aquí</a>!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr "No se encontró el LeaseSet (túneles) del destino"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destino"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Acceder a {0} sin guardar"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
"Guardar {0} a la libreta de direcciones del router y acceder al sitio i2p."
msgstr "Guardar {0} a la libreta de direcciones del router y acceder al sitio i2p."
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
"Guardar {0} a la libreta de direcciones principal y acceder al sitio i2p."
msgstr "Guardar {0} a la libreta de direcciones principal y acceder al sitio i2p."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
"Guardar {0} a la libreta de direcciones privada y acceder al sitio i2p."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "Puerta de salida HTTP"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:"
msgstr ""
"Pincha en un enlace de debajo para buscar un ayudante de direcciones "
"mediante el uso de un servicio de \"salto\":"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr "servicio saltador {0}"
msgstr "Guardar {0} a la libreta de direcciones privada y acceder al sitio i2p."
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format

View File

@ -8,14 +8,14 @@
# ducki2p <ducki2p@gmail.com>, 2011
# foo <foo@bar>, 2009
# Boxoa590, 2013
# Towatowa441, 2013-2014
# Towinet, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \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"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-11-01 11:14+0000\n"
"Last-Translator: Towinet\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"
@ -23,245 +23,385 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "Avertissement : outproxy non trouvé"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Information : nouveau nom d'hôte"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Console du routeur"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Console du routeur I2P"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Configuration"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Aide"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Carnet d'adresses"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Information : nouveau nom d'hôte avec assistant d'adresse"
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "Le proxy HTTP n'est pas en place"
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."
#: ../java/build/Proxy.java:13
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."
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."
#: ../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 parmi le pool que vous avez défini {2}ici{3} (si vous en avez plus d'un de configuré)."
"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."
#: ../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 pourriez vouloir modifier votre liste de outproxy {0}ici{1}."
"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:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Destination du tunnel"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Erreur : demande refusée"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Erreur : accès local"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Votre navigateur n'est pas compatible iFrames."
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
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."
"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."
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Avertissement : Eepsite inconnu"
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
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."
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
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}."
#: ../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."
#: ../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."
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
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."
#: ../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."
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Avertissement : destination invalide"
#: ../java/build/Proxy.java:55
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."
#: ../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."
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "L'hôte I2P pourrait également être déconnecté."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Vous pouvez vouloir {0}réessayer{1}."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr "Avertissement : demande refusée"
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Vous avez tenté de vous connecter à un site ou emplacement non-I2P."
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Avertissement : pas de proxy sortant configuré"
#: ../java/build/Proxy.java:75
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é."
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Veuillez configurer un outproxy dans I2PTunnel."
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Avertissement : conflit de clé de destination"
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
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."
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
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."
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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."
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Avertissement : mauvais assistant d'adresse"
#: ../java/build/Proxy.java:34
#, 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."
#: ../java/build/Proxy.java:35
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."
#: ../java/build/Proxy.java:36
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."
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Avertissement : demande refusée"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Vous avez tenté de vous connecter à un site ou emplacement non-I2P."
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Avertissement : Eepsite inaccessible"
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr "L'eepsite n'était pas accessible, parce que son jeu de bail n'a pas été trouvé."
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr "L'eepsite est probablement hors ligne, mais il pourrait également y avoir congestion du réseau."
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Vous pouvez vouloir {0}réessayer{1}."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Destination du tunnel"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr "L'eepsite n'était pas accessible, parce qu'il utilise les options de chiffrement qui ne sont pas supportées par votre version d'I2P ou de Java."
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr "Ne pouvait pas vous connecter à la destination suivante :"
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Erreur : demande refusée"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Erreur : accès local"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Votre navigateur n'est pas compatible iFrames."
#: ../java/build/Proxy.java:73
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."
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Avertissement : pas de proxy sortant configuré"
#: ../java/build/Proxy.java:81
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é."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Veuillez configurer un outproxy dans I2PTunnel."
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "Le eepsite n'était pas joignable."
#: ../java/build/Proxy.java:91
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."
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Avertissement : destination invalide"
#: ../java/build/Proxy.java:101
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."
#: ../java/build/Proxy.java:102
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."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "L'hôte I2P pourrait également être déconnecté."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Avertissement : protocole non HTTP"
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "La requête utilise un mauvais protocole."
#: ../java/build/Proxy.java:114
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:115
msgid "Other protocols such as FTP are not allowed."
msgstr "Les autres protocoles tel que le FTP ne sont pas permis."
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr "Avertissement : le proxy sortant est inaccessible"
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr "Le proxy sortant HTTP n'était pas accessible, parce qu'il utilise les options de chiffrement qui ne sont pas supportées par votre version d'I2P ou de Java."
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 parmi le pool que vous avez défini {2}ici{3} (si vous en avez plus d'un de configuré)."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, 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 pourriez vouloir modifier votre liste de outproxy {0}ici{1}."
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Avertissement : Eepsite inconnu"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Avertissement : Eepsite pas trouvé dans le carnet d'adresses"
#: ../java/build/Proxy.java:134
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."
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Cliquez le lien ou trouvez une adresse base 32 ou base 64."
#: ../java/build/Proxy.java:136
#, 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}."
#: ../java/build/Proxy.java:137
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."
#: ../java/build/Proxy.java:138
#, 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."
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Avertissement : demande invalide d'URI"
#: ../java/build/Proxy.java:147
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."
#: ../java/build/Proxy.java:148
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."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Avertissement : outproxy non trouvé"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr "L'outproxy HTTP n'était pas accessible, parce que son jeu de bail n'a pas été trouvé."
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr "L'outproxy est probablement hors ligne, mais il pourrait également y avoir congestion du réseau."
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "Le proxy HTTP n'est pas en place"
#: ../java/build/Proxy.java:169
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."
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Autorisation requise par le proxy"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Autorisation requise par le proxy HTTP de I2P"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
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/build/Proxy.java:176
#, 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}."
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -269,99 +409,15 @@ msgid ""
"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"
msgstr "Avertissement : Eepsite inaccessible"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "Le eepsite n'était pas joignable."
#: ../java/build/Proxy.java:100
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."
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Information : nouveau nom d'hôte"
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr "Information : nouveau nom d'hôte avec assistant d'adresse"
#: ../java/build/Proxy.java:110
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."
#: ../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."
#: ../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."
#: ../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."
#: ../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."
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
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."
#: ../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."
#: ../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."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr "Avertissement : protocole non HTTP"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr "La requête utilise un mauvais protocole."
#: ../java/build/Proxy.java:133
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
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:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Cela semble être une mauvaise destination"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
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 !"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:662
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -369,55 +425,43 @@ msgid ""
"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:1151
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr "Le jeu de bail de la destination n'a pas été trouvé"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Hôte"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destination"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1165
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Aller sur le site i2p {0} sans enregistrer dans un carnet d''adresses. "
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, 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:1173
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, 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:1174
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, 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:1290
msgid "HTTP Outproxy"
msgstr "Proxy sortant HTTP"
#: ../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\":"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1334
#, java-format
msgid "{0} jump service"
msgstr "{0} jump service"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:52+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Hungarian (http://www.transifex.com/projects/p/I2P/language/hu/)\n"
"MIME-Version: 1.0\n"
@ -18,245 +18,385 @@ msgstr ""
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Router Konzol"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Router Konzol"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Beállítások"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Segítség"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Címjegyzék"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "A HTTP proxy nincs bekapcsolva"
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Alagút célállomása"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Helyi célállomást"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Alagút célállomása"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Helyi célállomást"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "A HTTP proxy nincs bekapcsolva"
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Kimenő proxy Hitelesítés"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Kimenő proxy Hitelesítés"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -264,102 +404,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
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 ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Ez rossz célállomásnak tűnik:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "i2pcímsegítő nem tud segíteni ilyen célállomással!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -367,55 +420,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "A hoszt adatbázisodban lévő célállomás megtekintéséhez kattints <a href=\"{0}\">ide</a>. Az ütközésben lévő címsegítő célállomás megtekintéséhez kattints <a href=\"{1}\">ide</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Hoszt"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Bázis 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Célállomás"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Mentés nélkül tovább ide: {0}"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "{0} mentése a router címjegyzékbe és tovább az eep oldalra"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "{0} mentése a mester címjegyzékbe és tovább az eep oldalra"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "{0} mentése a privát címjegyzékbe és tovább az eep oldalra"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "HTTP Kimenő proxy"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr "Kattints az alábbi linkre, hogy címsegítő után nézz, \"ugrás\" szolgáltatás segítségével:"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-02-06 18:27+0000\n"
"PO-Revision-Date: 2014-07-06 10:16+0000\n"
"Last-Translator: Tummarellox <tummarellox@gmail.com>\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/I2P/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -25,245 +25,385 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Console del router"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Console del router"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Configurazione"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Aiuto"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Rubrica"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "Il proxy HTTP non è avviato"
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Destinazione tunnel"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Errore: Richiesta negata"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Errore: Accesso locale"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Il tuo browse non supporta gli iFrames."
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Destinazione locale"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Attenzione: Nessun Proxy di uscita configurato"
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Destinazione tunnel"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Errore: Richiesta negata"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Errore: Accesso locale"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Il tuo browse non supporta gli iFrames."
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Attenzione: Nessun Proxy di uscita configurato"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Destinazione locale"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "Il proxy HTTP non è avviato"
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Autorizzazione Outproxy"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Autorizzazione Outproxy"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Questo proxy necessita username e password per l'accesso"
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -271,99 +411,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:133
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:134
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Questa non sembra essere una buona destinazione:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "i2paddresshelper non ti può aiutare con una destinazione del genere!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:662
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -371,55 +427,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "Per visitare la destinazione nel tuo database host, cliccare <a href=\"{0}\">qui</a>. \nPer visitare la destinazione addresshelper in conflitto, cliccare <a href=\"{1}\">qui</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1151
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destinazione"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1165
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Continua a {0} senza salvare"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "Salva {0} nella rubrica del router e continua verso l'eepsite"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1173
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "Salva {0} nella rubrica master e continua verso l'eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1174
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "Salva {0} nella rubrica privata e continua verso l'eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1290
msgid "HTTP Outproxy"
msgstr "Ourproxy HTTP"
#: ../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 "Cliccare un link quì sotto per cercare un address helper usando un servizio di \"salto\":"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1334
#, java-format
msgid "{0} jump service"
msgstr "{0} salta al servizio"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -4,13 +4,13 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
# Translators:
# mikalv <mikalv@mikalv.net>, 2013
# Mikal <mikalv@mikalv.net>, 2013
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:51+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/I2P/language/nb/)\n"
"MIME-Version: 1.0\n"
@ -19,245 +19,385 @@ msgstr ""
"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Ruter Konsoll"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Ruter Konsoll"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Konfigurasjon"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Hjelp"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Adressebok"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Tunnel destinasjon"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Lokal destinasjon"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Tunnel destinasjon"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Lokal destinasjon"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "utproxy autorisasjon"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "utproxy autorisasjon"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -265,102 +405,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
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 ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Dette synes å være en dårlig destinasjon:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "i2paddresshelper kan ikke hjelpe deg med en destinasjon som dette!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -368,55 +421,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "For å besøke destinasjonen i din vert database, klikk <a href=\"{0}\">her</a>. For å å besøke motstridende adressehjelper destinasjon, klikk <a href=\"{1}\">her</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Vert"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destinasjon"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Fortsett til {0} uten å lagre"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "Lagre {0} til ruter adressebok og fortsett til eepsite"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "Save {0} til hoved adressebok og fortsett til eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "Save {0} til privat adressebok og fortsett til eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "HTTP Ut-proxy"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr "Klikk på en link under for en adressehjelper ved å bruke en \"hoppe\" tjeneste:"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr "{0} hopp tjeneste"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:51+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/I2P/language/nl/)\n"
"MIME-Version: 1.0\n"
@ -19,245 +19,385 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr ""
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr ""
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Configuratie wijzigingen opgeslagen"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr ""
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Toevoegen aan lokaal adresboek"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "De HTTP proxy is niet ingeschakeld"
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Tunnel Destinations"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Lokale destination"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Tunnel Destinations"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Lokale destination"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "De HTTP proxy is niet ingeschakeld"
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Uitgaande Proxy Autorisatie"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Uitgaande Proxy Autorisatie"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -265,102 +405,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
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 ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Tunnel Destinations"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -368,55 +421,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "Om de destination in je host database te bezoeken, klik <a href=\"{0}\">hier</a>. Om de conflicterende adreshelper destination te bezoeken, klik <a href=\"{1}\">hier</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destination"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "Uitgaande proxy"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr "Klik op een onderstaande link om te zoeken naar een adreshelper via een \"jump\" service:"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -6,13 +6,13 @@
# Translators:
# PolishAnon <b790979@klzlk.com>, 2012
# Warton <businesshehe@yahoo.com>, 2011-2012
# Smert <Smert@safe-mail.net>, 2013
# Smert i2p <Smert@safe-mail.net>, 2013
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2013-11-19 23:52+0000\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/I2P/language/pl/)\n"
"MIME-Version: 1.0\n"
@ -21,245 +21,385 @@ msgstr ""
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 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"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Konsola Routera"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Konsola Routera"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Konfiguracja"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Pomoc"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Książka adresowa"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "nazwa lub cel"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Cel localny"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr ""
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "nazwa lub cel"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr ""
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr ""
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Cel localny"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr ""
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr ""
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr ""
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr ""
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr ""
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr ""
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr ""
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr ""
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Autoryzacja Outproxy"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Autoryzacja Outproxy"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr ""
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr ""
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -267,102 +407,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr ""
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr ""
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:132
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 ""
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Wydaje się to być złym celem:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "i2paddresshelper, pomocnik adresowy i2p, nie może pomóc ci z takim celem!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -370,55 +423,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "By odwiedzić cel w bazie danych twojego hosta, naciśnij <a href=\"{0}\">tutaj</a>. By odwiedzić konfliktujący cel pomocnika adresów, naciśnij <a href=\"{1}\">tutaj</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Cel"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Kontynuuj do {0} bez zapisywania"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "Zapisz {0} do książki adresowej rutera i kontynuuj do eepsite'u"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "Zapisz {0} do głównej książki adresowej i kontynuuj do eepsite'u"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "Zapisz {0} do prywatnej książki adresowej i kontynuuj do eepsite'u"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "HTTP Outproxy"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr "Kliknij na poniższy link by poszukać pomocnika adresów poprzez użycie \"skaczącego\" serwisu."
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2014-01-22 18:42+0000\n"
"Last-Translator: kgtm <fabio.h.f.antunes@gmail.com>\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/I2P/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -24,245 +24,385 @@ msgstr ""
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "Aviso: Intermediador externo fora da rede I2P não encontrado"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Informação: Novo nome de anfitrião."
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Painel do Roteador"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Painel do Roteador"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Configuração"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Ajuda"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Livro de endereços"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Informação: Novo nome de anfitrião com ajudante para endereço."
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "O proxy HTTP não está alcançável"
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr "A ligação de ajudante para endereço que seguiste é para um novo nome de anfitrião que não está no seu livro de endereços."
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr "Está fora do ar, há congestionamento de dados, ou teu roteador não está bem integrado com os participantes."
msgid "You may save this host name to your local address book."
msgstr "Podeis salvar esse nome de anfitrião para seu livro local de endereços."
#: ../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 "Talvez queiras {0}tentar novamente{1}, o que irá selecionar aleatoriamente um intermediador externo a rede I2P da lista que definiste {2}aqui{3} (Se tens mais de um configurado)."
"If you save it to your address book, you will not see this message again."
msgstr "Se o salvares em teu livro de endereços, não verás esta mensagem novamente."
#: ../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 "Se continuas a ter problemas, podeis modificar tua lista de intermediadores externos a rede I2P {0}aqui{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr "Se não o salvares, o nome do anfitrião será esquecido na próxima inicialização do roteador."
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Não foi possível encontrar o seguinte destinatário:"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Erro: Pedido negado"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Erro: Endereço local"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Seu navegador não suporta iFrames."
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr "Não uses o intermediador (proxy) para acessar o painel controlador do roteador, o autoendereço, ou endereços na rede local."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr "Se não queres visitar esse anfitrião, aperte o botão \"voltar\" de seu navegador."
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Aviso: Site na rede I2P desconhecido"
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Aviso: Site na rede I2P não encontrado no livro de endereços"
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr "O site na rede I2P não foi encontrado no livro de endereços do seu roteador"
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Verifique a ligação ou encontra um endereço na base 32 ou base 64."
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Se tens o endereço na base 64, {0}adiciona-o para teu livro de endereços{1}."
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr "Senão, encontra um endereço na base 32 ou uma ligação de ajudante para endereço, ou um dos serviços buscadores de ligações abaixo."
#: ../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 "Estar a ver esta página frequentemente? Veja as {0}perguntas frequentes{1} para ajuda em {2}incluindo novos registros{3} em teu livro de endereços."
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr "Aviso: URI inválida"
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "A URI informada é inválida, e provavelmente contém caracteres ilegais."
#: ../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 "Se acessaste uma ligação, verifique o final da URI para quaisquer caracteres que o navegador possa, por engano, ter adicionado."
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Aviso: Destinatário inválido"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "O destinatário, um site na rede I2P, especificado não é valido, ou está inalcançável."
#: ../java/build/Proxy.java:56
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr "Talvez colaste uma cadeia de caracteres na base 64 errada ou a ligação que seguiste não serve."
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "Também existe a possibilidade do anfitrião na rede I2P estar fora do ar."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Talvez queira {0}retentar{1}."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr "Aviso: Pedido negado"
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Tentaste acessar um site ou recurso fora da rede I2P."
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Aviso: nenhum intermediador (proxy) externo a rede I2P configurado"
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Teu pedido de acesso foi para um site fora da rede I2P, mas não há nenhum intermediador (proxy) HTTP externo a rede I2P configurado."
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Por favor, configura um intermediador (proxy) externo a rede I2P no túnel I2P"
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Aviso: Conflito entre ligações de ajudante de endereço"
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr "A ligação de ajudante de endereço que seguiste especifica um destinatário diferente daquele anfitrião que já está no seu banco de dados."
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr "Alguém pode estar a tentar se passar por outro site da rede I2P, ou pessoas deram a dois sites da rede I2P distintos o mesmo nome."
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 "Podeis resolver o conflito decidindo em qual das ligações de ajudante para endereço confias, ou descartando a ligação de ajudante para endereço atual, descartando o nome do anfitrião do seu banco de dados, ou nomeando um deles diferentemente do outro."
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Aviso: Ajudante de endereço ruim"
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr "A palavra ajudante na URL({0}i2paddresshelper={1}) não é traduzível."
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Parece ser dados inúteis, ou um endereço na base 32 escrito incorretamente."
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr "Verifica a URL para tentar consertar a palavra ajudante para ser um nome de anfitrião na base 32 ou base 64 válido."
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Aviso: Pedido negado"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Tentaste acessar um site ou recurso fora da rede I2P."
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Aviso: Site na rede I2P inalcançável."
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Talvez queira {0}retentar{1}."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Não foi possível encontrar o seguinte destinatário:"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Erro: Pedido negado"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Erro: Endereço local"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Seu navegador não suporta iFrames."
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr "Não uses o intermediador (proxy) para acessar o painel controlador do roteador, o autoendereço, ou endereços na rede local."
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Aviso: nenhum intermediador (proxy) externo a rede I2P configurado"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Teu pedido de acesso foi para um site fora da rede I2P, mas não há nenhum intermediador (proxy) HTTP externo a rede I2P configurado."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Por favor, configura um intermediador (proxy) externo a rede I2P no túnel I2P"
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "O site na rede I2P não está alcançável."
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr "O site na rede I2P está fora do ar, há congestionamento de dados, ou teu roteador não está bem integrado com os participantes."
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Aviso: Destinatário inválido"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "O destinatário, um site na rede I2P, especificado não é valido, ou está inalcançável."
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr "Talvez colaste uma cadeia de caracteres na base 64 errada ou a ligação que seguiste não serve."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "Também existe a possibilidade do anfitrião na rede I2P estar fora do ar."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Aviso: Protocolo fora do padrão HTTP"
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "O pedido usa um protocolo ruim."
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 "Talvez queiras {0}tentar novamente{1}, o que irá selecionar aleatoriamente um intermediador externo a rede I2P da lista que definiste {2}aqui{3} (Se tens mais de um configurado)."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr "Se continuas a ter problemas, podeis modificar tua lista de intermediadores externos a rede I2P {0}aqui{1}."
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Aviso: Site na rede I2P desconhecido"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Aviso: Site na rede I2P não encontrado no livro de endereços"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "O site na rede I2P não foi encontrado no livro de endereços do seu roteador"
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Verifique a ligação ou encontra um endereço na base 32 ou base 64."
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Se tens o endereço na base 64, {0}adiciona-o para teu livro de endereços{1}."
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr "Senão, encontra um endereço na base 32 ou uma ligação de ajudante para endereço, ou um dos serviços buscadores de ligações abaixo."
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr "Estar a ver esta página frequentemente? Veja as {0}perguntas frequentes{1} para ajuda em {2}incluindo novos registros{3} em teu livro de endereços."
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Aviso: URI inválida"
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "A URI informada é inválida, e provavelmente contém caracteres ilegais."
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr "Se acessaste uma ligação, verifique o final da URI para quaisquer caracteres que o navegador possa, por engano, ter adicionado."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Aviso: Intermediador externo fora da rede I2P não encontrado"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "O proxy HTTP não está alcançável"
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr "Está fora do ar, há congestionamento de dados, ou teu roteador não está bem integrado com os participantes."
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Autorização do proxy de saída"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Autorização do proxy de saída"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Este intermediador (proxy) está configurado para pedir um nome de usuário e palavra-passe para ser acessado."
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr "Por favor, insira teu nome de usuário e palavra-passe, ou verifique tua {0}configuração do roteador{1} ou {2}configuração do túnel I2P{3}."
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -270,102 +410,15 @@ msgid ""
"tunnel."
msgstr "Para desabilitar a autorização, remova a configuração {0}i2ptunnel.proxy.auth=basic{1}, então pare e reinicie o túnel do proxy HTTP."
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr "Aviso: Site na rede I2P inalcançável."
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "O site na rede I2P não está alcançável."
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr "O site na rede I2P está fora do ar, há congestionamento de dados, ou teu roteador não está bem integrado com os participantes."
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Informação: Novo nome de anfitrião."
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr "Informação: Novo nome de anfitrião com ajudante para endereço."
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr "A ligação de ajudante para endereço que seguiste é para um novo nome de anfitrião que não está no seu livro de endereços."
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr "Podeis salvar esse nome de anfitrião para seu livro local de endereços."
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
msgstr "Se o salvares em teu livro de endereços, não verás esta mensagem novamente."
#: ../java/build/Proxy.java:113
msgid ""
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr "Se não o salvares, o nome do anfitrião será esquecido na próxima inicialização do roteador."
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr "Se não queres visitar esse anfitrião, aperte o botão \"voltar\" de seu navegador."
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr "Aviso: Ajudante de endereço ruim"
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr "A palavra ajudante na URL({0}i2paddresshelper={1}) não é traduzível."
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Parece ser dados inúteis, ou um endereço na base 32 escrito incorretamente."
#: ../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 "Verifica a URL para tentar consertar a palavra ajudante para ser um nome de anfitrião na base 32 ou base 64 válido."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr "Aviso: Protocolo fora do padrão HTTP"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr "O pedido usa um protocolo ruim."
#: ../java/build/Proxy.java:133
#, java-format
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
msgstr "O protocolo HTTP do intermediador I2P dá apoio APENAS para {0}http://{1}."
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr "Outros protocolos como {0}https://{1} ou {0}ftp://{1} não são permitidos."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Este destino parece estar incorreto:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "Auxiliar de endereços não pode ajudar em destinos como este!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -373,55 +426,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "Para visitar o destino da sua base de dados, clique <a href=\"{0}\">aqui</a>. Para visitar o endereço de ajuda do conflito, clique <a href=\"{1}\">aqui</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destino"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Continuar para {0} sem salvar"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "Salvar {0} ao livro de endereços do roteador e continuar no eepsite"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "Salvar {0} ao livro de endereços master e continuar no eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "Salvar {0} no livro de endereços particular e continuar no eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "Proxy de saída HTTP"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr "Clique no link abaixo para procurar um ajudante de endereços usando um serviço \"jump\":"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr "{0} serviço de salto"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:06+0000\n"
"PO-Revision-Date: 2014-01-29 00:46+0000\n"
"Last-Translator: blueboy\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/I2P/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -20,245 +20,385 @@ msgstr ""
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "Aviso: proxy de saída não encontrado"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Informação: novo nome de host"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Painel do roteador"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Painel do roteador I2P"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Configurações"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Ajuda"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Livro de endereços"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Informação: novo nome de host com auxiliar de endereço"
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgid "You may save this host name to your local address book."
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)."
"If you save it to your address book, you will not see this message again."
msgstr ""
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr ""
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Não foi possível encontrar o seguinte destino:"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Erro: Pedido Negado"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Erro: Acesso Local"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "O seu navegador está mal-configurado."
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Aviso: eepsite desconhecido"
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Aviso: eepsite não encontrado no livro de endereços"
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr "O eepsite não foi encontrado no livro de endereços do seu roteador."
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Verifique o linque ou procure por um endereço de Base 32 ou Base 64."
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Se você tem o endereço de Base 64, {0}adicione-o ao seu livro de endereços{1}."
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr "Aviso: pedido de URI inválido"
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "O pedido de URI é inválido e pode conter caractéres ilegítimos."
#: ../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 ""
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Aviso: Destino inválido"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 ""
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "O host I2P pode estar offline também."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Talvez você queira {0}tentar novamente{1}."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr "Aviso: Pedido negado"
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Aviso: Nenhum proxy de saída configurado"
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "O seu pedido foi para um site fora da I2P, mas você não possui nenhum proxy de saída para HTTP configurado"
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Por favor, configurar um proxy de saída no túnel I2P."
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Aviso: Conflito de chave de destino"
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Aviso: Auxiliar de endereço ruim"
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Aviso: Pedido negado"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr ""
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Aviso: eepsite inalcançável"
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Talvez você queira {0}tentar novamente{1}."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Não foi possível encontrar o seguinte destino:"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Erro: Pedido Negado"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Erro: Acesso Local"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "O seu navegador está mal-configurado."
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Aviso: Nenhum proxy de saída configurado"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "O seu pedido foi para um site fora da I2P, mas você não possui nenhum proxy de saída para HTTP configurado"
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Por favor, configurar um proxy de saída no túnel I2P."
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "O eepsite não se encontra alcançável."
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Aviso: Destino inválido"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "O host I2P pode estar offline também."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Aviso: Protocolo não-HTTP"
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "O pedido usa um protocolo inadequado."
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Aviso: eepsite desconhecido"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Aviso: eepsite não encontrado no livro de endereços"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "O eepsite não foi encontrado no livro de endereços do seu roteador."
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Verifique o linque ou procure por um endereço de Base 32 ou Base 64."
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Se você tem o endereço de Base 64, {0}adicione-o ao seu livro de endereços{1}."
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Aviso: pedido de URI inválido"
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "O pedido de URI é inválido e pode conter caractéres ilegítimos."
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr ""
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Aviso: proxy de saída não encontrado"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Autorização do proxy necessária"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "É necessária a autorização do proxy http da I2P"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Este proxy está configurado para pedir um nome de usuário e uma senha para acesso."
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr "Por favor, forneça o seu nome de usuário e senha, ou verifique sua {0}configuração de roteamento{1} ou {2}configuração do túnel I2P{3};"
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -266,102 +406,15 @@ msgid ""
"tunnel."
msgstr ""
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr "Aviso: eepsite inalcançável"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "O eepsite não se encontra alcançável."
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Informação: novo nome de host"
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr "Informação: novo nome de host com auxiliar de endereço"
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr ""
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 ""
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr "Aviso: Auxiliar de endereço ruim"
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr "Aviso: Protocolo não-HTTP"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr "O pedido usa um protocolo inadequado."
#: ../java/build/Proxy.java:133
#, java-format
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
msgstr "O proxy HTTP da I2P suporta {0}http://{1} pedidos APENAS."
#: ../java/build/Proxy.java:134
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr "Outros protocolos, tais como {0}https://{1} e {0}ftp://{1}, não são permitidos."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Parece que este destino é inadequado:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "O auxiliar de endereços da I2P não pode ajudá-lo com um destino como este!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -369,55 +422,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Host"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destino"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" "
"service:"
msgstr ""
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr "{0} saltar serviço"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -2,470 +2,461 @@
# 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:
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-01 20:04+0000\n"
"PO-Revision-Date: 2013-11-12 08:28+0000\n"
"Last-Translator: polearnik <polearnik@mail.ru>\n"
"Language-Team: Romanian (http://www.transifex.com/projects/p/I2P/language/"
"ro/)\n"
"Language: ro\n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Romanian (http://www.transifex.com/projects/p/I2P/language/ro/)\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==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#: ../java/build/Proxy.java:5 ../java/build/Proxy.java:11
msgid "Warning: Outproxy Not Found"
msgstr "Atenție: Outproxy Nu a fost găsit"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Informații: Nume de gazda nou"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Consola router"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "I2P consola router"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Configurație"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Ajutor"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Agendă"
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "HTTP Outproxy nu a fost găsit."
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
"Acesta este deconectat, este congestionarea rețelei, sau router-ul nu este "
"încă bine integrat cu colegii."
#: ../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 ""
"Este posibil să doriți să {0} încercați din nou {1} ca acest lucru se va "
"selecta din nou la întâmplare un outproxy din pool pe care l-ați definit {2} "
"aici {3} (dacă aveți mai mult de unul configurate)."
#: ../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 ""
"Dacă aveți în continuare probleme, este posibil să doriți să editați lista "
"de outproxy {0} aici {1}."
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Nu am putut găsi următoarea destinație:"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Eroare: Cerere interzisa"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Eroare: acces local"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Browser-ul dumneavoastră este configurat incorect."
#: ../java/build/Proxy.java:25
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
"Nu utilizați proxy pentru a accesa consola router, localhost, sau destinații "
"LAN locale."
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Atenție: Eepsite Necunoscut"
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Atenție: Eepsite nu a fost găsit în Agenda"
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr "Eepsite nu a fost gasit in Agenda ruterului."
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Verificați link-ul sau găsiti adresa Base 32 sau adresa 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 "Dacă aveți adresa Base 64, {0} adăugați-l la Agenda dvs. {1}."
#: ../java/build/Proxy.java:36
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link "
"below."
msgstr ""
"În caz contrar, găsiți o bază 32 sau link-ul adress helper, sau folositi "
"link-ul de serviciu-salt de mai jos."
#: ../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 ""
"Vedeti aceasta pagina des? Vezi {0} FAQ {1} pentru ajutor în {2} adăugarea "
"unor abonamente {3} la Agenda dumneavoastră."
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr "Atenție: URI de solicitare incorect"
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "Cererea URI este incorecta, și, probabil, contine caractere ilegale."
#: ../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 ""
"Dacă ați făcut clic pe un link, verificați sfârșitul URI pentru orice "
"caractere, pe care browser-ul a adăugat din greșeală ."
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Atenție: Destinație incorecta"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr ""
"Destinația eepsite specificat nu a fost valabila, sau a fost inaccesibila."
#: ../java/build/Proxy.java:56
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following "
"is bad."
msgstr ""
"Poate că ați inserat șir Base 64 greșit sau link-ul pe care urmează este "
"incorect."
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "I2P gazdă a putea fi, de asemenea, offline."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Este posibil să doriți să {0} {1} încercați din nou."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr "Atenție: Cerere interzisa"
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Ați încercat să vă conectați la un site sau locație non-I2P ."
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Atenție: Outproxy nu este configurată"
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr ""
"Cererea Dvs a fost de un site in afara de I2P, dar nu aveți nici HTTP "
"outproxy configurat."
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Vă rugăm să configurați un outproxy în I2PTunnel."
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
msgid "Warning: Destination Key Conflict"
msgstr "Atenție: Conflictul destinație-cheie"
#: ../java/build/Proxy.java:84
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
"Link-ul addresshelper ați specificat o cheie de destinație diferită de o "
"intrare în baza de date gazdă."
#: ../java/build/Proxy.java:85
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given "
"two eepsites identical names."
msgstr ""
"Cineva ar putea fi încercă să imita un alt eepsite, sau cineva au dat două "
"nume eepsite identice."
#: ../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 ""
"Puteți rezolva conflictul, luând în considerare cheie in care aveți "
"încredere, și aruncând link addresshelper, aruncând intrarea gazda din baza "
"de date gazdă, sau denumirea unului dintre ei diferit."
#: ../java/build/Proxy.java:87
msgid "Proxy Authorization Required"
msgstr "Autentificare proxy necesară"
#: ../java/build/Proxy.java:88
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Autentificare I2P HTTP proxy necesară"
#: ../java/build/Proxy.java:89
msgid "This proxy is configured to require a username and password for access."
msgstr ""
"Acest proxy este configurat pentru a necesita un nume de utilizator și o "
"parolă de acces."
#: ../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 ""
"Va rugam sa introduceti numele de utilizator si parola, sau verifica {0} "
"configurația router {1} sau {2} configurare 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 ""
"Pentru a dezactiva autorizare, stergeti  configurarea {0} i2ptunnel.proxy."
"auth = basic {1}, apoi opriți și reporniți tunelul proxy HTTP."
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr "Atenție: Eepsite indisponibil"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "Eepsite nu a fost accesibil."
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
"Eepsite este deconectat, este congestionarea rețelei, sau router-ul nu este "
"încă bine integrat cu colegii."
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Informații: Nume de gazda nou"
#: ../java/build/Proxy.java:109
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Informații:Nume de gazda nou cu adress helper"
#: ../java/build/Proxy.java:110
#: ../java/build/Proxy.java:12
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr ""
"Link-ul de adress helper pe care a urmat este pentru un nume de gazdă nou, "
"care nu este în agendă."
msgstr "Link-ul de adress helper pe care a urmat este pentru un nume de gazdă nou, care nu este în agendă."
#: ../java/build/Proxy.java:111
#: ../java/build/Proxy.java:13
msgid "You may save this host name to your local address book."
msgstr "Puteți salva acest nume gazdă în agenda dvs. locală."
#: ../java/build/Proxy.java:112
#: ../java/build/Proxy.java:14
msgid ""
"If you save it to your address book, you will not see this message again."
msgstr "Dacă-l salvați în agenda dvs., nu veți mai vedea acest mesaj."
#: ../java/build/Proxy.java:113
#: ../java/build/Proxy.java:15
msgid ""
"If you do not save it, the host name will be forgotten after the next router "
"restart."
msgstr ""
"Dacă nu-l salvați, numele de gazdă va fi uitat după următoarea repornire "
"router."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr "Dacă nu-l salvați, numele de gazdă va fi uitat după următoarea repornire router."
#: ../java/build/Proxy.java:114
#: ../java/build/Proxy.java:16
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr ""
"Dacă nu doriți să vizitați această gazdă, faceți clic pe butonul \"Înapoi\" "
"din browser"
msgstr "Dacă nu doriți să vizitați această gazdă, faceți clic pe butonul \"Înapoi\" din browser"
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Atenție: Conflictul destinație-cheie"
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr "Link-ul addresshelper ați specificat o cheie de destinație diferită de o intrare în baza de date gazdă."
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr "Cineva ar putea fi încercă să imita un alt eepsite, sau cineva au dat două nume eepsite identice."
#: ../java/build/Proxy.java:26
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 "Puteți rezolva conflictul, luând în considerare cheie in care aveți încredere, și aruncând link addresshelper, aruncând intrarea gazda din baza de date gazdă, sau denumirea unului dintre ei diferit."
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Atenție: Adress Helper incorect"
#: ../java/build/Proxy.java:122
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
"Cheia ajutor în URL-ul ({0} i2paddresshelper = {1}) nu este rezolvabila."
msgstr "Cheia ajutor în URL-ul ({0} i2paddresshelper = {1}) nu este rezolvabila."
#: ../java/build/Proxy.java:123
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Se pare a fi date de gunoi, sau de o bază adresa 32 introdusă greșit."
#: ../java/build/Proxy.java:124
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
"Verificați URL-ul dvs. pentru a încercarea și stabilirea cheii de ajutor "
"pentru a fi nume de gazdă Base34 sau cheie Base 64 validă."
msgstr "Verificați URL-ul dvs. pentru a încercarea și stabilirea cheii de ajutor pentru a fi nume de gazdă Base34 sau cheie Base 64 validă."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Atenție: Cerere interzisa"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Ați încercat să vă conectați la un site sau locație non-I2P ."
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Atenție: Eepsite indisponibil"
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Este posibil să doriți să {0} {1} încercați din nou."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Nu am putut găsi următoarea destinație:"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Eroare: Cerere interzisa"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Eroare: acces local"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Browser-ul dumneavoastră este configurat incorect."
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr "Nu utilizați proxy pentru a accesa consola router, localhost, sau destinații LAN locale."
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Atenție: Outproxy nu este configurată"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Cererea Dvs a fost de un site in afara de I2P, dar nu aveți nici HTTP outproxy configurat."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Vă rugăm să configurați un outproxy în I2PTunnel."
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "Eepsite nu a fost accesibil."
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr "Eepsite este deconectat, este congestionarea rețelei, sau router-ul nu este încă bine integrat cu colegii."
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Atenție: Destinație incorecta"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "Destinația eepsite specificat nu a fost valabila, sau a fost inaccesibila."
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr "Poate că ați inserat șir Base 64 greșit sau link-ul pe care urmează este incorect."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "I2P gazdă a putea fi, de asemenea, offline."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Atenție: protocolul Non-HTTP"
#: ../java/build/Proxy.java:132
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "Cererea utilizează un protocol incorect."
#: ../java/build/Proxy.java:133
#, java-format
msgid "The I2P HTTP Proxy supports {0}http://{1} requests ONLY."
msgstr "I2P HTTP Proxy suporta {0} numai cereri http:// {1} ."
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:134
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, java-format
msgid ""
"Other protocols such as {0}https://{1} and {0}ftp://{1} are not allowed."
msgstr ""
"Alte protocoale, cum ar fi {0} https:// {1} și {0} ftp:// {1} nu sunt "
"permise."
"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 "Este posibil să doriți să {0} încercați din nou {1} ca acest lucru se va selecta din nou la întâmplare un outproxy din pool pe care l-ați definit {2} aici {3} (dacă aveți mai mult de unul configurate)."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr "Dacă aveți în continuare probleme, este posibil să doriți să editați lista de outproxy {0} aici {1}."
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Atenție: Eepsite Necunoscut"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Atenție: Eepsite nu a fost găsit în Agenda"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "Eepsite nu a fost gasit in Agenda ruterului."
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Verificați link-ul sau găsiti adresa Base 32 sau adresa Base 64."
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Dacă aveți adresa Base 64, {0} adăugați-l la Agenda dvs. {1}."
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr "În caz contrar, găsiți o bază 32 sau link-ul adress helper, sau folositi link-ul de serviciu-salt de mai jos."
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr "Vedeti aceasta pagina des? Vezi {0} FAQ {1} pentru ajutor în {2} adăugarea unor abonamente {3} la Agenda dumneavoastră."
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Atenție: URI de solicitare incorect"
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "Cererea URI este incorecta, și, probabil, contine caractere ilegale."
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr "Dacă ați făcut clic pe un link, verificați sfârșitul URI pentru orice caractere, pe care browser-ul a adăugat din greșeală ."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Atenție: Outproxy Nu a fost găsit"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "HTTP Outproxy nu a fost găsit."
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr "Acesta este deconectat, este congestionarea rețelei, sau router-ul nu este încă bine integrat cu colegii."
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Autentificare proxy necesară"
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Autentificare I2P HTTP proxy necesară"
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Acest proxy este configurat pentru a necesita un nume de utilizator și o parolă de acces."
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr "Va rugam sa introduceti numele de utilizator si parola, sau verifica {0} configurația router {1} sau {2} configurare I2PTunnel {3}."
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
"tunnel."
msgstr "Pentru a dezactiva autorizare, stergeti  configurarea {0} i2ptunnel.proxy.auth = basic {1}, apoi opriți și reporniți tunelul proxy HTTP."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Aceasta pare a fi o destinație rea:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:571
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "i2paddresshelper nu vă poate ajuta cu o destinație de genul asta!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:638
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, 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 ""
"Pentru a vizita destinație în baza de date gazdă, click <a href="
"\"{0}\">aici</a>.Pentru a vizita destinația addresshelper conflict, click<a "
"href=\"{1}\"> aici</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 "Pentru a vizita destinație în baza de date gazdă, click <a href=\"{0}\">aici</a>.Pentru a vizita destinația addresshelper conflict, click<a href=\"{1}\"> aici</a>"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1042
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Gazdă"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1050
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Destinație"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1056
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Continuați {0} fără salvare"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1061
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "Salvați {0} în agendă router și continuă la eepsite"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1064
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "Salvați {0} în agenda master și continuă la eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1065
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "Salvați {0} în agendă router privata și continuă la eepsite"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1180
msgid "HTTP Outproxy"
msgstr "OutProxy HTTP"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1216
msgid ""
"Click a link below to look for an address helper by using a \"jump\" service:"
msgstr ""
"Faceți clic pe link-ul de mai jos pentru a cauta un adress helper prin "
"utilizarea unui serviciu de \"salt\":"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1224
#, java-format
msgid "{0} jump service"
msgstr " serviciu salt {0}"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -4,20 +4,21 @@
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
# Translators:
# IOException <opexob@yandex.ru>, 2013
# Андрей Лукьяненко <operru32@yandex.ru>, 2013
# Aleksey Orekhov <opexob@yandex.ru>, 2013
# Andrey Lukyanenko <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
# yume, 2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \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"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-11-01 19:59+0000\n"
"Last-Translator: yume\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"
@ -25,245 +26,385 @@ msgstr ""
"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"
msgstr "Предупреждение: Выходной прокси-сервер недоступен"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Информация: Новый доменной адрес"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:93 ../java/build/Proxy.java:104
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:126
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Консоль маршрутизатора I2P"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:105
#: ../java/build/Proxy.java:117 ../java/build/Proxy.java:127
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Консоль маршрутизатора I2P"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:51 ../java/build/Proxy.java:63
#: ../java/build/Proxy.java:71 ../java/build/Proxy.java:80
#: ../java/build/Proxy.java:95 ../java/build/Proxy.java:106
#: ../java/build/Proxy.java:118 ../java/build/Proxy.java:128
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Настройки"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:43
#: ../java/build/Proxy.java:52 ../java/build/Proxy.java:64
#: ../java/build/Proxy.java:72 ../java/build/Proxy.java:81
#: ../java/build/Proxy.java:96 ../java/build/Proxy.java:107
#: ../java/build/Proxy.java:119 ../java/build/Proxy.java:129
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Помощь"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:44
#: ../java/build/Proxy.java:53 ../java/build/Proxy.java:65
#: ../java/build/Proxy.java:73 ../java/build/Proxy.java:82
#: ../java/build/Proxy.java:97 ../java/build/Proxy.java:108
#: ../java/build/Proxy.java:120 ../java/build/Proxy.java:130
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Адресная книга"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Информация: Новый доменной адрес с AddressHelper"
#: ../java/build/Proxy.java:12
msgid "The HTTP Outproxy was not found."
msgstr "HTTP-прокси не поднят"
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr "Ссылка AddressHelper, по которой вы прошли, ведет на домен, не внесенный в адресную книгу."
#: ../java/build/Proxy.java:13
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr "Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими узлами."
msgid "You may save this host name to your local address book."
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} списка, если вы настроили более одного прокси-сервера)."
"If you save it to your address book, you will not see this message again."
msgstr "Если вы сохраните его в вашей адресной книге, вы больше не будете видеть это сообщение."
#: ../java/build/Proxy.java:15
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr "Если проблема продолжит появляться, вы можете изменить список прокси-серверов {0}здесь{1}."
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr "Если вы не сохраните его, он будет «забыт» после перезапуска маршрутизатора."
#: ../java/build/Proxy.java:16 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:59 ../java/build/Proxy.java:102
msgid "Could not find the following destination:"
msgstr "Назначение туннеля"
#: ../java/build/Proxy.java:17
msgid "Error: Request Denied"
msgstr "Ошибка: Отказ в выполнении запроса"
#: ../java/build/Proxy.java:23
msgid "Error: Local Access"
msgstr "Ошибка: Локальный адрес"
#: ../java/build/Proxy.java:24
msgid "Your browser is misconfigured."
msgstr "Ваш браузер не поддерживает iFrames"
#: ../java/build/Proxy.java:25
#: ../java/build/Proxy.java:16
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr "Не используйте прокси-сервер для доступа к консоли маршрутизатора, локальному компьютеру или локальной сети."
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr "Если вы не хотите посещать этот сайт, нажмите кнопку «Назад» в браузере."
#: ../java/build/Proxy.java:26
msgid "Warning: Eepsite Unknown"
msgstr "Предупреждение: Неизвестный сайт I2P"
#: ../java/build/Proxy.java:32
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Предупреждение: Сайт I2P не найден в адресной книге"
#: ../java/build/Proxy.java:33
msgid "The eepsite was not found in your router's addressbook."
msgstr "Сайт I2P не найден в адресной книге вашего маршрутизатора."
#: ../java/build/Proxy.java:34
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Проверьте ссылку или найдите адрес Base32 или Base64."
#: ../java/build/Proxy.java:35
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Если у вас есть адрес Base64, {0}добавьте его в адресную книгу{1}."
#: ../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-службу."
#: ../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} адресной книги."
#: ../java/build/Proxy.java:39 ../java/build/Proxy.java:45
msgid "Warning: Invalid Request URI"
msgstr "Предупреждение: Некорректный URI запроса"
#: ../java/build/Proxy.java:46
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "Некорректный URI запроса. Возможно, он содержит недопустимые символы."
#: ../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 "Если вы прошли по ссылке, проверьте конец URI на наличие символов, ошибочно добавленных браузером."
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:54
msgid "Warning: Invalid Destination"
msgstr "Локальный адрес назначения"
#: ../java/build/Proxy.java:55
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
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 или прошли по нерабочей ссылке."
#: ../java/build/Proxy.java:57
msgid "The I2P host could also be offline."
msgstr "Сайт I2P также может быть отключен."
#: ../java/build/Proxy.java:58 ../java/build/Proxy.java:101
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Вы можете {0}повторить{1} операцию."
#: ../java/build/Proxy.java:60 ../java/build/Proxy.java:66
msgid "Warning: Request Denied"
msgstr "Предупреждение: Отказ в выполнении запроса"
#: ../java/build/Proxy.java:67
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Вы попытались соединиться с сайтом не в сети I2P."
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:74
msgid "Warning: No Outproxy Configured"
msgstr "Предупреждение: Выходной прокси-сервер не настроен"
#: ../java/build/Proxy.java:75
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Вы запросили страницу вне сети I2P, но не имеете настроенного выходного прокси-сервера."
#: ../java/build/Proxy.java:76
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Пожалуйста, настройте выходной прокси-сервер в I2PTunnel."
#: ../java/build/Proxy.java:77 ../java/build/Proxy.java:83
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr "Предупреждение: Конфликт ключа назначения"
#: ../java/build/Proxy.java:84
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr "Ссылка AddressHelper, по которой вы прошли, определяет ключ назначения, отличный от указанного в адресной книге."
#: ../java/build/Proxy.java:85
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr "Кто-то может пытаться выдать себя за другой сайт или разные люди дали двум сайтам одинаковые имена."
#: ../java/build/Proxy.java:86
#: ../java/build/Proxy.java:26
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 "Для разрешения конфликта вы можете определить, какому ключу вы доверяете, и либо отказаться от прохода по ссылке, либо удалить старый ключ, либо присвоить одному из них другое имя."
#: ../java/build/Proxy.java:87
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr "Предупреждение: Некорректный AddressHelper"
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr "Не удается разобрать ключ AddressHelper ({0}i2paddresshelper={1})."
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Возможно, он содержит ненужные данные или опечатку в адресе Base32."
#: ../java/build/Proxy.java:36
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."
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Предупреждение: Отказ в выполнении запроса"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Вы попытались соединиться с сайтом не в сети I2P."
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr "Предупреждение: Сайт I2P недоступен"
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr "eepsite недоступен, так как его LeaseSet не был найден."
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr "eepsite, вероятно, выключен, но также возможна перегрузка сети"
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Вы можете {0}повторить{1} операцию."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Назначение туннеля"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr "Eepsite недоступен, так как использует настройки шифрования, которые не поддерживаются вашей версией I2P или Java."
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr "Не удалось подключиться к следующему адресу:"
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr "Ошибка: Отказ в выполнении запроса"
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr "Ошибка: Локальный адрес"
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr "Ваш браузер не поддерживает iFrames"
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr "Не используйте прокси-сервер для доступа к консоли маршрутизатора, локальному компьютеру или локальной сети."
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Предупреждение: Выходной прокси-сервер не настроен"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Вы запросили страницу вне сети I2P, но не имеете настроенного выходного прокси-сервера."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Пожалуйста, настройте выходной прокси-сервер в I2PTunnel."
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr "Сайт I2P недоступен."
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr "Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими узлами."
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Локальный адрес назначения"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "Указанный адрес недействителен или недоступен."
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr "Возможно, вы вставили неправильную строку Base64 или прошли по нерабочей ссылке."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "Сайт I2P также может быть отключен."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr "Предупреждение: Протокол не HTTP"
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr "Запрос отправлен через неподдерживанмый протокол."
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr "I2P HTTP прокси поддерживает только HTTP и HTTPS запросы."
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr "Другие протоколы, такие как FTP не допустимы."
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr "Предупреждение: внешний прокси недоступен"
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr "Внешний HTTP-прокси недоступен, так как использует настройки шифрования, которые не поддерживаются вашей версией I2P или Java."
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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} списка, если вы настроили более одного прокси-сервера)."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr "Если проблема продолжит появляться, вы можете изменить список прокси-серверов {0}здесь{1}."
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Предупреждение: Неизвестный сайт I2P"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Предупреждение: Сайт I2P не найден в адресной книге"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "Сайт I2P не найден в адресной книге вашего маршрутизатора."
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Проверьте ссылку или найдите адрес Base32 или Base64."
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Если у вас есть адрес Base64, {0}добавьте его в адресную книгу{1}."
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr "В противном случае найдите ссылку Base32 или AddressHelper или используйте Jump-службу."
#: ../java/build/Proxy.java:138
#, 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} адресной книги."
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Предупреждение: Некорректный URI запроса"
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "Некорректный URI запроса. Возможно, он содержит недопустимые символы."
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr "Если вы прошли по ссылке, проверьте конец URI на наличие символов, ошибочно добавленных браузером."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr "Предупреждение: Выходной прокси-сервер недоступен"
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr "Внешний HTTP-прокси недоступен, так как его LeaseSet не был найден."
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr "Внешний прокси, вероятно, выключен, но также возможна перегрузка сети"
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr "HTTP-прокси не поднят"
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr "Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими узлами."
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Авторизация outproxy"
#: ../java/build/Proxy.java:88
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Авторизация outproxy"
#: ../java/build/Proxy.java:89
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Этот прокси-сервер требует имя пользователя и пароль для доступа."
#: ../java/build/Proxy.java:90
#: ../java/build/Proxy.java:176
#, java-format
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}."
#: ../java/build/Proxy.java:91
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
@ -271,99 +412,15 @@ msgid ""
"tunnel."
msgstr "Для отключения авторизации удалите строку {0}i2ptunnel.proxy.auth=basic{1} и перезапустите туннель HTTP Proxy."
#: ../java/build/Proxy.java:92 ../java/build/Proxy.java:98
msgid "Warning: Eepsite Unreachable"
msgstr "Предупреждение: Сайт I2P недоступен"
#: ../java/build/Proxy.java:99
msgid "The eepsite was not reachable."
msgstr "Сайт I2P недоступен."
#: ../java/build/Proxy.java:100
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr "Возможно, он отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими узлами."
#: ../java/build/Proxy.java:103
msgid "Information: New Host Name"
msgstr "Информация: Новый доменной адрес"
#: ../java/build/Proxy.java:109
msgid "Information: New Host Name with Address Helper"
msgstr "Информация: Новый доменной адрес с AddressHelper"
#: ../java/build/Proxy.java:110
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr "Ссылка AddressHelper, по которой вы прошли, ведет на домен, не внесенный в адресную книгу."
#: ../java/build/Proxy.java:111
msgid "You may save this host name to your local address book."
msgstr "Вы можете сохранить этот домен в свою локальную адресную книгу."
#: ../java/build/Proxy.java:112
msgid ""
"If you save it to your address book, you will not see this message again."
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 "Если вы не сохраните его, он будет «забыт» после перезапуска маршрутизатора."
#: ../java/build/Proxy.java:114
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr "Если вы не хотите посещать этот сайт, нажмите кнопку «Назад» в браузере."
#: ../java/build/Proxy.java:115 ../java/build/Proxy.java:121
msgid "Warning: Bad Address Helper"
msgstr "Предупреждение: Некорректный AddressHelper"
#: ../java/build/Proxy.java:122
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr "Не удается разобрать ключ AddressHelper ({0}i2paddresshelper={1})."
#: ../java/build/Proxy.java:123
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr "Возможно, он содержит ненужные данные или опечатку в адресе Base32."
#: ../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 "Проверьте URL и попробуйте исправить ссылку с использованием корректной ссылки Base32 или Base64."
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:131
msgid "Warning: Non-HTTP Protocol"
msgstr "Предупреждение: Протокол не HTTP"
#: ../java/build/Proxy.java:132
msgid "The request uses a bad protocol."
msgstr "Запрос отправлен через неподдерживанмый протокол."
#: ../java/build/Proxy.java:133
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr "I2P HTTP прокси поддерживает только HTTP и HTTPS запросы."
#: ../java/build/Proxy.java:134
msgid "Other protocols such as FTP are not allowed."
msgstr "Другие протоколы, такие как FTP не допустимы."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr "Кажется это плохой адрес назначения:"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:595
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr "С таким адресом назначения i2paddresshelper вам не поможет!"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:662
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, java-format
msgid ""
"To visit the destination in your host database, click <a "
@ -371,55 +428,43 @@ msgid ""
"click <a href=\"{1}\">here</a>."
msgstr "Для перехода по ссылке из локальной адресной книги, нажмите <a href=\"{0}\">здесь</a>. Для перехода по новой addresshelper-ссылке, нажмите <a href=\"{1}\">здесь</a>."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1151
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr "LeaseSet для адреса назначения не найден"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr "Адрес"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1155
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr "Base 32"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1159
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr "Адрес назначения"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1165
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr "Продолжить переход к {0} без сохранения"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr "Сохранить {0} в адресную книгу роутера (router address book) и продолжить переход к eep-сайту"
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1173
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr "Сохранить {0} в основную (master) адресную книгу и продолжить переход к eep-сайту"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1174
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr "Сохранить {0} в приватную адресную книгу и продолжить переход к eep-сайту"
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1290
msgid "HTTP Outproxy"
msgstr "HTTP Outproxy"
#: ../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-ссылку:"
#. Translators: parameter is a host name
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1334
#, java-format
msgid "{0} jump service"
msgstr "{0} jump service"
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"

View File

@ -0,0 +1,499 @@
# I2P
# Copyright (C) 2009 The I2P Project
# This file is distributed under the same license as the i2ptunnel package.
# To contribute translations, see http://www.i2p2.de/newdevelopers
#
# Translators:
# Roman 'Kaktuxista' Benji <romanbeno273@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-30 20:10+0000\n"
"PO-Revision-Date: 2014-10-30 20:11+0000\n"
"Last-Translator: kytv <killyourtv@i2pmail.org>\n"
"Language-Team: Slovak (http://www.transifex.com/projects/p/I2P/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sk\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: ../java/build/Proxy.java:5
msgid "Information: New Host Name"
msgstr "Informácia: Nový názov hostiteľa"
#: ../java/build/Proxy.java:6 ../java/build/Proxy.java:18
#: ../java/build/Proxy.java:28 ../java/build/Proxy.java:38
#: ../java/build/Proxy.java:46 ../java/build/Proxy.java:57
#: ../java/build/Proxy.java:66 ../java/build/Proxy.java:75
#: ../java/build/Proxy.java:84 ../java/build/Proxy.java:95
#: ../java/build/Proxy.java:107 ../java/build/Proxy.java:117
#: ../java/build/Proxy.java:128 ../java/build/Proxy.java:141
#: ../java/build/Proxy.java:150 ../java/build/Proxy.java:162
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:204
msgid "Router Console"
msgstr "Konzola routra"
#: ../java/build/Proxy.java:7 ../java/build/Proxy.java:19
#: ../java/build/Proxy.java:29 ../java/build/Proxy.java:39
#: ../java/build/Proxy.java:47 ../java/build/Proxy.java:58
#: ../java/build/Proxy.java:67 ../java/build/Proxy.java:76
#: ../java/build/Proxy.java:85 ../java/build/Proxy.java:96
#: ../java/build/Proxy.java:108 ../java/build/Proxy.java:118
#: ../java/build/Proxy.java:129 ../java/build/Proxy.java:142
#: ../java/build/Proxy.java:151 ../java/build/Proxy.java:163
msgid "I2P Router Console"
msgstr "Konzola I2P routra"
#: ../java/build/Proxy.java:8 ../java/build/Proxy.java:20
#: ../java/build/Proxy.java:30 ../java/build/Proxy.java:40
#: ../java/build/Proxy.java:48 ../java/build/Proxy.java:59
#: ../java/build/Proxy.java:68 ../java/build/Proxy.java:77
#: ../java/build/Proxy.java:86 ../java/build/Proxy.java:97
#: ../java/build/Proxy.java:109 ../java/build/Proxy.java:119
#: ../java/build/Proxy.java:130 ../java/build/Proxy.java:143
#: ../java/build/Proxy.java:152 ../java/build/Proxy.java:164
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Configuration"
msgstr "Konfigurácia"
#: ../java/build/Proxy.java:9 ../java/build/Proxy.java:21
#: ../java/build/Proxy.java:31 ../java/build/Proxy.java:41
#: ../java/build/Proxy.java:49 ../java/build/Proxy.java:60
#: ../java/build/Proxy.java:69 ../java/build/Proxy.java:78
#: ../java/build/Proxy.java:87 ../java/build/Proxy.java:98
#: ../java/build/Proxy.java:110 ../java/build/Proxy.java:120
#: ../java/build/Proxy.java:131 ../java/build/Proxy.java:144
#: ../java/build/Proxy.java:153 ../java/build/Proxy.java:165
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Help"
msgstr "Pomoc"
#: ../java/build/Proxy.java:10 ../java/build/Proxy.java:22
#: ../java/build/Proxy.java:32 ../java/build/Proxy.java:42
#: ../java/build/Proxy.java:50 ../java/build/Proxy.java:61
#: ../java/build/Proxy.java:70 ../java/build/Proxy.java:79
#: ../java/build/Proxy.java:88 ../java/build/Proxy.java:99
#: ../java/build/Proxy.java:111 ../java/build/Proxy.java:121
#: ../java/build/Proxy.java:132 ../java/build/Proxy.java:145
#: ../java/build/Proxy.java:154 ../java/build/Proxy.java:166
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:205
msgid "Addressbook"
msgstr "Adresár"
#: ../java/build/Proxy.java:11
msgid "Information: New Host Name with Address Helper"
msgstr "Informácia: Nový názov hostiteľa s adresným pomocníkom"
#: ../java/build/Proxy.java:12
msgid ""
"The address helper link you followed is for a new host name that is not in "
"your address book."
msgstr "Odkaz adresného pomocníka, ktorý ste nasledovali, je určený pre nový názov hostiteľa nenachádzajúceho sa vo vašom adresári."
#: ../java/build/Proxy.java:13
msgid "You may save this host name to your local address book."
msgstr "Môžete uložiť tento názov hostiteľa do lokálneho adresára."
#: ../java/build/Proxy.java:14
msgid ""
"If you save it to your address book, you will not see this message again."
msgstr "Ak ho uložíte do svojho adresára, už túto správu znova neuvidíte."
#: ../java/build/Proxy.java:15
msgid ""
"If you do not save it, the host name will be forgotten after the next router"
" restart."
msgstr "Ak ho neuložíte, názov hostiteľa bude po ďalšom reštarte routra zabudnutý."
#: ../java/build/Proxy.java:16
msgid ""
"If you do not wish to visit this host, click the \"back\" button on your "
"browser."
msgstr "Ak si neželáte navštíviť tohto hostiteľa, kliknite na tlačítko \"Späť\" vo vašom prehliadači."
#: ../java/build/Proxy.java:17 ../java/build/Proxy.java:23
msgid "Warning: Destination Key Conflict"
msgstr ""
#: ../java/build/Proxy.java:24
msgid ""
"The addresshelper link you followed specifies a different destination key "
"than a host entry in your host database."
msgstr ""
#: ../java/build/Proxy.java:25
msgid ""
"Someone could be trying to impersonate another eepsite, or people have given"
" two eepsites identical names."
msgstr ""
#: ../java/build/Proxy.java:26
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 ""
#: ../java/build/Proxy.java:27 ../java/build/Proxy.java:33
msgid "Warning: Bad Address Helper"
msgstr ""
#: ../java/build/Proxy.java:34
#, java-format
msgid "The helper key in the URL ({0}i2paddresshelper={1}) is not resolvable."
msgstr ""
#: ../java/build/Proxy.java:35
msgid "It seems to be garbage data, or a mistyped Base 32 address."
msgstr ""
#: ../java/build/Proxy.java:36
msgid ""
"Check your URL to try and fix the helper key to be a valid Base 32 hostname "
"or Base 64 key."
msgstr ""
#: ../java/build/Proxy.java:37 ../java/build/Proxy.java:43
msgid "Warning: Request Denied"
msgstr "Varovanie: Požiadavok bol odmietnutý"
#: ../java/build/Proxy.java:44
msgid "You attempted to connect to a non-I2P website or location."
msgstr "Pokúsili ste sa pripojiť k webovej stránke alebo lokácii mimo I2P."
#: ../java/build/Proxy.java:45 ../java/build/Proxy.java:51
#: ../java/build/Proxy.java:56 ../java/build/Proxy.java:62
#: ../java/build/Proxy.java:83 ../java/build/Proxy.java:89
msgid "Warning: Eepsite Unreachable"
msgstr ""
#: ../java/build/Proxy.java:52
msgid "The eepsite was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:53
msgid ""
"The eepsite is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:54 ../java/build/Proxy.java:92
#: ../java/build/Proxy.java:104
#, java-format
msgid "You may want to {0}retry{1}."
msgstr "Môžete to chcieť {0}skúsiť znova{1}."
#: ../java/build/Proxy.java:55 ../java/build/Proxy.java:93
#: ../java/build/Proxy.java:105 ../java/build/Proxy.java:139
#: ../java/build/Proxy.java:160 ../java/build/Proxy.java:172
msgid "Could not find the following destination:"
msgstr "Nebolo možné nájsť nasledovnú destináciu:"
#: ../java/build/Proxy.java:63
msgid ""
"The eepsite was not reachable, because it uses encryption options that are "
"not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:64 ../java/build/Proxy.java:126
msgid "Could not connect to the following destination:"
msgstr ""
#: ../java/build/Proxy.java:65
msgid "Error: Request Denied"
msgstr ""
#: ../java/build/Proxy.java:71
msgid "Error: Local Access"
msgstr ""
#: ../java/build/Proxy.java:72
msgid "Your browser is misconfigured."
msgstr ""
#: ../java/build/Proxy.java:73
msgid ""
"Do not use the proxy to access the router console, localhost, or local LAN "
"destinations."
msgstr ""
#: ../java/build/Proxy.java:74 ../java/build/Proxy.java:80
msgid "Warning: No Outproxy Configured"
msgstr "Varovanie: Nie je nakonfigurovaný žiadny východzí proxy"
#: ../java/build/Proxy.java:81
msgid ""
"Your request was for a site outside of I2P, but you have no HTTP outproxy "
"configured."
msgstr "Váš požiadavok bol určený pre stránku mimo I2P, avšak nemáte nakonfigurovaný žiadny východzí proxy."
#: ../java/build/Proxy.java:82
msgid "Please configure an outproxy in I2PTunnel."
msgstr "Prosím nakonfigurujte si v I2PTunneli východzí proxy."
#: ../java/build/Proxy.java:90
msgid "The eepsite was not reachable."
msgstr ""
#: ../java/build/Proxy.java:91
msgid ""
"The eepsite is offline, there is network congestion, or your router is not "
"yet well-integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:94 ../java/build/Proxy.java:100
msgid "Warning: Invalid Destination"
msgstr "Varovanie: Neplatná destinácia"
#: ../java/build/Proxy.java:101
msgid ""
"The eepsite destination specified was not valid, or was otherwise "
"unreachable."
msgstr "Zadaná eepsite destinácia nebola platná, alebo sa ju iným spôsobom nepodarilo dosiahnuť."
#: ../java/build/Proxy.java:102
msgid ""
"Perhaps you pasted in the wrong Base 64 string or the link you are following"
" is bad."
msgstr "Možno ste vložili nesprávny Base 64 reťazec, prípadne odkaz, ktorý práve nasledujete, je zlý."
#: ../java/build/Proxy.java:103
msgid "The I2P host could also be offline."
msgstr "Takisto I2P hostiteľ mohol byť offline."
#: ../java/build/Proxy.java:106 ../java/build/Proxy.java:112
msgid "Warning: Non-HTTP Protocol"
msgstr ""
#: ../java/build/Proxy.java:113
msgid "The request uses a bad protocol."
msgstr ""
#: ../java/build/Proxy.java:114
msgid "The I2P HTTP Proxy supports HTTP and HTTPS requests only."
msgstr ""
#: ../java/build/Proxy.java:115
msgid "Other protocols such as FTP are not allowed."
msgstr ""
#: ../java/build/Proxy.java:116 ../java/build/Proxy.java:122
msgid "Warning: Outproxy Unreachable"
msgstr ""
#: ../java/build/Proxy.java:123
msgid ""
"The HTTP outproxy was not reachable, because it uses encryption options that"
" are not supported by your I2P or Java version."
msgstr ""
#: ../java/build/Proxy.java:124 ../java/build/Proxy.java:158
#: ../java/build/Proxy.java:170
#, 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 ""
#: ../java/build/Proxy.java:125 ../java/build/Proxy.java:159
#: ../java/build/Proxy.java:171
#, java-format
msgid ""
"If you continue to have trouble you may want to edit your outproxy list "
"{0}here{1}."
msgstr ""
#: ../java/build/Proxy.java:127
msgid "Warning: Eepsite Unknown"
msgstr "Varovanie: Neznáma eepsite"
#: ../java/build/Proxy.java:133
msgid "Warning: Eepsite Not Found in Addressbook"
msgstr "Varovanie: Eepsite nebola v adresári nájdená"
#: ../java/build/Proxy.java:134
msgid "The eepsite was not found in your router's addressbook."
msgstr "Daná eepsite nebola nájdená v adresári vášho routra."
#: ../java/build/Proxy.java:135
msgid "Check the link or find a Base 32 or Base 64 address."
msgstr "Skontrolujte daný odkaz, prípadne nájdite Base 32 alebo Base 64 adresu."
#: ../java/build/Proxy.java:136
#, java-format
msgid "If you have the Base 64 address, {0}add it to your addressbook{1}."
msgstr "Ak máte Base 64 adresu, {0}pridajte si ju do svojho adresára{1}."
#: ../java/build/Proxy.java:137
msgid ""
"Otherwise, find a Base 32 or address helper link, or use a jump service link"
" below."
msgstr ""
#: ../java/build/Proxy.java:138
#, java-format
msgid ""
"Seeing this page often? See {0}the FAQ{1} for help in {2}adding some "
"subscriptions{3} to your addressbook."
msgstr ""
#: ../java/build/Proxy.java:140 ../java/build/Proxy.java:146
msgid "Warning: Invalid Request URI"
msgstr "Varovanie: Neplatná URI požiadavku"
#: ../java/build/Proxy.java:147
msgid "The request URI is invalid, and probably contains illegal characters."
msgstr "URI požiadavku je neplatná a zrejme obsahuje nepovolené znaky."
#: ../java/build/Proxy.java:148
msgid ""
"If you clicked a link, check the end of the URI for any characters the "
"browser has mistakenly added on."
msgstr "Ak ste klikli na odkaz, skontrolujte koniec URI, či sa v ňom nenachádzajú nejaké znaky omylom pridané prehliadačom."
#: ../java/build/Proxy.java:149 ../java/build/Proxy.java:155
#: ../java/build/Proxy.java:161 ../java/build/Proxy.java:167
msgid "Warning: Outproxy Not Found"
msgstr ""
#: ../java/build/Proxy.java:156
msgid ""
"The HTTP outproxy was not reachable, because its lease set was not found."
msgstr ""
#: ../java/build/Proxy.java:157
msgid ""
"The outproxy is probably down, but there could also be network congestion."
msgstr ""
#: ../java/build/Proxy.java:168
msgid "The HTTP Outproxy was not found."
msgstr ""
#: ../java/build/Proxy.java:169
msgid ""
"It is offline, there is network congestion, or your router is not yet well-"
"integrated with peers."
msgstr ""
#: ../java/build/Proxy.java:173
msgid "Proxy Authorization Required"
msgstr "Je vyžadovaná autorizácia proxy"
#: ../java/build/Proxy.java:174
msgid "I2P HTTP Proxy Authorization Required"
msgstr "Je vyžadovaná autorizácia I2P HTTP proxy"
#: ../java/build/Proxy.java:175
msgid ""
"This proxy is configured to require a username and password for access."
msgstr "Tento proxy je nakonfigurovaný tak, aby pre prístup vyžadoval uživateľské meno a heslo."
#: ../java/build/Proxy.java:176
#, java-format
msgid ""
"Please enter your username and password, or check your {0}router "
"configuration{1} or {2}I2PTunnel configuration{3}."
msgstr "Prosím zadajte vaše užívateľské meno a heslo, prípadne skontrolujte vašu {0}konfiguráciu routra{1} alebo {2}I2PTunnel konfiguráciu{3}."
#: ../java/build/Proxy.java:177
#, java-format
msgid ""
"To disable authorization, remove the configuration "
"{0}i2ptunnel.proxy.auth=basic{1}, then stop and restart the HTTP Proxy "
"tunnel."
msgstr "Ak chcete zakázať autorizáciu, odstráňte nastavenie {0}i2ptunnel.proxy.auth=basic{1} a následne zastavte a reštartujte HTTP Proxy tunel."
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "This seems to be a bad destination:"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:601
msgid "i2paddresshelper cannot help you with a destination like that!"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:667
#, 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 ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1034
msgid "Destination lease set not found"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1162
msgid "Host"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1166
msgid "Base 32"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1170
msgid "Destination"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1176
#, java-format
msgid "Continue to {0} without saving"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1181
#, java-format
msgid "Save {0} to router address book and continue to eepsite"
msgstr ""
#. only blockfile supports multiple books
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1184
#, java-format
msgid "Save {0} to master address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1185
#, java-format
msgid "Save {0} to private address book and continue to eepsite"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:162
#, java-format
msgid "Added via address helper from {0}"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:164
msgid "Added via address helper"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:187
msgid "router"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:189
msgid "master"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:191
msgid "private"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:198
#, java-format
msgid "Redirecting to {0}"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:210
#, java-format
msgid "Saved {0} to the {1} addressbook, redirecting now."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:211
#, java-format
msgid "Failed to save {0} to the {1} addressbook, redirecting now."
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/localServer/LocalHTTPServer.java:213
msgid "Click here if you are not redirected automatically."
msgstr ""

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