propagate from branch 'i2p.i2p' (head 2ab4ae45aa60b379e85fca378522966c090a1a27)

to branch 'i2p.i2p.zzz.test' (head 220477e37d4df782b9a8bb30d12669d146dc6226)
This commit is contained in:
zzz
2012-10-13 14:23:29 +00:00
21 changed files with 3543 additions and 2879 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P i2psnark\n" "Project-Id-Version: I2P i2psnark\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-09-06 09:09+0000\n" "POT-Creation-Date: 2012-10-12 00:38+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n" "PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n" "Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n" "Language-Team: duck <duck@mail.i2p>\n"
@ -246,7 +246,7 @@ msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:990 #: ../java/src/org/klomp/snark/SnarkManager.java:990
#: ../java/src/org/klomp/snark/SnarkManager.java:1013 #: ../java/src/org/klomp/snark/SnarkManager.java:1013
#: ../java/src/org/klomp/snark/SnarkManager.java:1449 #: ../java/src/org/klomp/snark/SnarkManager.java:1451
#, java-format #, java-format
msgid "Failed to copy torrent file to {0}" msgid "Failed to copy torrent file to {0}"
msgstr "" msgstr ""
@ -312,61 +312,66 @@ msgstr ""
msgid "Adding torrents in {0}" msgid "Adding torrents in {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1394 #: ../java/src/org/klomp/snark/SnarkManager.java:1374
#, java-format
msgid "Up bandwidth limit is {0} KBps"
msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1396
#, java-format #, java-format
msgid "Download finished: {0}" msgid "Download finished: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1445 #: ../java/src/org/klomp/snark/SnarkManager.java:1447
#, java-format #, java-format
msgid "Metainfo received for {0}" msgid "Metainfo received for {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1446 #: ../java/src/org/klomp/snark/SnarkManager.java:1448
#: ../java/src/org/klomp/snark/SnarkManager.java:1669 #: ../java/src/org/klomp/snark/SnarkManager.java:1671
#, java-format #, java-format
msgid "Starting up torrent {0}" msgid "Starting up torrent {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1461 #: ../java/src/org/klomp/snark/SnarkManager.java:1463
#, java-format #, java-format
msgid "Error on torrent {0}" msgid "Error on torrent {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1487 #: ../java/src/org/klomp/snark/SnarkManager.java:1489
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1792 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1805
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1802 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1815
msgid "Magnet" msgid "Magnet"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1518 #: ../java/src/org/klomp/snark/SnarkManager.java:1520
msgid "Unable to connect to I2P!" msgid "Unable to connect to I2P!"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1524 #: ../java/src/org/klomp/snark/SnarkManager.java:1526
#, java-format #, java-format
msgid "Unable to add {0}" msgid "Unable to add {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1668 #: ../java/src/org/klomp/snark/SnarkManager.java:1670
#: ../java/src/org/klomp/snark/web/FetchAndAdd.java:124 #: ../java/src/org/klomp/snark/web/FetchAndAdd.java:124
msgid "Opening the I2P tunnel" msgid "Opening the I2P tunnel"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1692 #: ../java/src/org/klomp/snark/SnarkManager.java:1694
msgid "Opening the I2P tunnel and starting all torrents." msgid "Opening the I2P tunnel and starting all torrents."
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1747 #: ../java/src/org/klomp/snark/SnarkManager.java:1749
msgid "Stopping all torrents and closing the I2P tunnel." msgid "Stopping all torrents and closing the I2P tunnel."
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1766 #: ../java/src/org/klomp/snark/SnarkManager.java:1768
msgid "Closing I2P tunnel after notifying trackers." msgid "Closing I2P tunnel after notifying trackers."
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/SnarkManager.java:1773 #: ../java/src/org/klomp/snark/SnarkManager.java:1775
#: ../java/src/org/klomp/snark/SnarkManager.java:1784 #: ../java/src/org/klomp/snark/SnarkManager.java:1786
msgid "I2P tunnel closed." msgid "I2P tunnel closed."
msgstr "" msgstr ""
@ -419,7 +424,7 @@ msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:261 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:261
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1254 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1267
msgid "I2PSnark" msgid "I2PSnark"
msgstr "" msgstr ""
@ -442,8 +447,8 @@ msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:338 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:338
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:340 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:340
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2248 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2261
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2250 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2263
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -459,8 +464,8 @@ msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:363 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:363
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:365 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:365
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2103 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2116
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2118 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2131
msgid "Torrent" msgid "Torrent"
msgstr "" msgstr ""
@ -559,570 +564,585 @@ msgstr[1] ""
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\"" msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:613 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:614
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:640 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:644
#, java-format #, java-format
msgid "Magnet deleted: {0}" msgid "Magnet deleted: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:621 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:622
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:646 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:650
#, java-format #, java-format
msgid "Torrent file deleted: {0}" msgid "Torrent file deleted: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:652 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:642
#, java-format
msgid "Download deleted: {0}"
msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:656
#, java-format #, java-format
msgid "Data file deleted: {0}" msgid "Data file deleted: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:654 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:658
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:665 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:669
#, java-format #, java-format
msgid "Data file could not be deleted: {0}" msgid "Data file could not be deleted: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:684
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:689 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693
#, java-format #, java-format
msgid "Directory could not be deleted: {0}" msgid "Directory could not be deleted: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:687 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:691
#, java-format #, java-format
msgid "Directory deleted: {0}" msgid "Directory deleted: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:734 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:738
msgid "Error creating torrent - you must select a tracker" msgid "Error creating torrent - you must select a tracker"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:750 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:755
#, java-format #, java-format
msgid "Torrent created for \"{0}\"" msgid "Torrent created for \"{0}\""
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:752 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:757
#, java-format #, java-format
msgid "" msgid ""
"Many I2P trackers require you to register new torrents before seeding - " "Many I2P trackers require you to register new torrents before seeding - "
"please do so before starting \"{0}\"" "please do so before starting \"{0}\""
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:754 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:759
#, java-format #, java-format
msgid "Error creating a torrent for \"{0}\"" msgid "Error creating a torrent for \"{0}\""
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:757 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:762
#, java-format #, java-format
msgid "Cannot create a torrent for the nonexistent data: {0}" msgid "Cannot create a torrent for the nonexistent data: {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:760 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:765
msgid "Error creating torrent - you must enter a file or directory" msgid "Error creating torrent - you must enter a file or directory"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:775 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:780
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1758 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1771
msgid "Delete selected" msgid "Delete selected"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:775 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:780
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1759 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1772
msgid "Save tracker configuration" msgid "Save tracker configuration"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:792 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:797
msgid "Removed" msgid "Removed"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:821 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1757 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1770
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1762 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1775
msgid "Add tracker" msgid "Add tracker"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:844 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:849
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:847 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852
msgid "Enter valid tracker name and URLs" msgid "Enter valid tracker name and URLs"
msgstr "" msgstr ""
#. "<input type=\"reset\" class=\"cancel\" value=\"").append(_("Cancel")).append("\">\n" + #. "<input type=\"reset\" class=\"cancel\" value=\"").append(_("Cancel")).append("\">\n" +
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:849 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:854
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1761 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1774
msgid "Restore defaults" msgid "Restore defaults"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:857
msgid "Restored default trackers" msgid "Restored default trackers"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:994 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:997
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:998
msgid "Checking"
msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1000 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1000
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1007 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001
msgid "Allocating"
msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1005
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1011
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1018
msgid "Tracker Error" msgid "Tracker Error"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:997 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1008
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1002 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1013
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1030 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1041
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1035
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1046 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1046
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1051
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1057 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1057
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1068
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1073
#, java-format #, java-format
msgid "1 peer" msgid "1 peer"
msgid_plural "{0} peers" msgid_plural "{0} peers"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1010 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1021
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1011 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1022
msgid "Starting" msgid "Starting"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1019 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1030
msgid "Seeding" msgid "Seeding"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1023 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1034
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1037
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1038
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2190
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2305
msgid "Complete"
msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1042
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1043
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1048 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1048
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1049 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1049
msgid "OK" #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2203
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2318
msgid "Complete"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1053 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1053
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1054 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1054
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1059 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1059
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1060 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1060
msgid "Stalled" msgid "OK"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1064 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1064
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1065 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1065
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1068 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1070
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1069 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1071
msgid "Stalled"
msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1075
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1076
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1079
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1080
msgid "No Peers" msgid "No Peers"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1071 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1082
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1072 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1083
msgid "Stopped" msgid "Stopped"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1105 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1116
msgid "Torrent details" msgid "Torrent details"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1134 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1145
msgid "View files" msgid "View files"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1136 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1147
msgid "Open file" msgid "Open file"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1179 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1192
msgid "Stop the torrent" msgid "Stop the torrent"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1181 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1194
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1193 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1206
msgid "Start the torrent" msgid "Start the torrent"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1195 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1208
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1207 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1220
msgid "Remove the torrent from the active list, deleting the .torrent file" msgid "Remove the torrent from the active list, deleting the .torrent file"
msgstr "" msgstr ""
#. Can't figure out how to escape double quotes inside the onclick string. #. Can't figure out how to escape double quotes inside the onclick string.
#. Single quotes in translate strings with parameters must be doubled. #. Single quotes in translate strings with parameters must be doubled.
#. Then the remaining single quote must be escaped #. Then the remaining single quote must be escaped
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1212 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1225
#, java-format #, java-format
msgid "" msgid ""
"Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded " "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded "
"data will not be deleted) ?" "data will not be deleted) ?"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1215 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1228
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1227 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1240
msgid "Delete the .torrent file and the associated data file(s)" msgid "Delete the .torrent file and the associated data file(s)"
msgstr "" msgstr ""
#. Can't figure out how to escape double quotes inside the onclick string. #. Can't figure out how to escape double quotes inside the onclick string.
#. Single quotes in translate strings with parameters must be doubled. #. Single quotes in translate strings with parameters must be doubled.
#. Then the remaining single quote must be escaped #. Then the remaining single quote must be escaped
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1232 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1245
#, java-format #, java-format
msgid "" msgid ""
"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded " "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded "
"data?" "data?"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1235 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1248
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1725 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1738
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1270 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283
msgid "Unknown" msgid "Unknown"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1282 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295
msgid "Seed" msgid "Seed"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1305 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1318
msgid "Uninteresting (The peer has no pieces we need)" msgid "Uninteresting (The peer has no pieces we need)"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1307 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1320
msgid "Choked (The peer is not allowing us to request pieces)" msgid "Choked (The peer is not allowing us to request pieces)"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1327 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1340
msgid "Uninterested (We have no pieces the peer needs)" msgid "Uninterested (We have no pieces the peer needs)"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1329 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1342
msgid "Choking (We are not allowing the peer to request pieces)" msgid "Choking (We are not allowing the peer to request pieces)"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1383 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1396
#, java-format #, java-format
msgid "Details at {0} tracker" msgid "Details at {0} tracker"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1399 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1412
msgid "Info" msgid "Info"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1427 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1440
msgid "Add Torrent" msgid "Add Torrent"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1429 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1442
msgid "From URL" msgid "From URL"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1432 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1445
msgid "" msgid ""
"Enter the torrent file download URL (I2P only), magnet link, maggot link, or " "Enter the torrent file download URL (I2P only), magnet link, maggot link, or "
"info hash" "info hash"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1437 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1450
msgid "Add torrent" msgid "Add torrent"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1440 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1453
#, java-format #, java-format
msgid "You can also copy .torrent files to: {0}." msgid "You can also copy .torrent files to: {0}."
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1442 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1455
msgid "Removing a .torrent will cause it to stop." msgid "Removing a .torrent will cause it to stop."
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1465 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478
msgid "Create Torrent" msgid "Create Torrent"
msgstr "" msgstr ""
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n"); #. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1468 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1481
msgid "Data to seed" msgid "Data to seed"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1472 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1485
msgid "File or directory to seed (must be within the specified path)" msgid "File or directory to seed (must be within the specified path)"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1474 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1487
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2140 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2153
msgid "Tracker" msgid "Tracker"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1476 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1489
msgid "Select a tracker" msgid "Select a tracker"
msgstr "" msgstr ""
#. out.write(_("Open trackers and DHT only")); #. out.write(_("Open trackers and DHT only"));
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1481 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1494
msgid "Open trackers only" msgid "Open trackers only"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1498 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1511
msgid "Create torrent" msgid "Create torrent"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1522 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1535
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1771 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1784
msgid "Configuration" msgid "Configuration"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1526 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1539
msgid "Data directory" msgid "Data directory"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1528 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1541
msgid "Edit i2psnark.config and restart to change" msgid "Edit i2psnark.config and restart to change"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1532 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1545
msgid "Files readable by all" msgid "Files readable by all"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1536 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1549
msgid "If checked, other users may access the downloaded files" msgid "If checked, other users may access the downloaded files"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1540 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1553
msgid "Auto start" msgid "Auto start"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1544 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1557
msgid "If checked, automatically start torrents that are added" msgid "If checked, automatically start torrents that are added"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1548 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1561
msgid "Theme" msgid "Theme"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1561 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1574
msgid "Refresh time" msgid "Refresh time"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1574 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1587
msgid "Never" msgid "Never"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1580 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1593
msgid "Startup delay" msgid "Startup delay"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1582 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1595
msgid "minutes" msgid "minutes"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1606 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1619
msgid "Total uploader limit" msgid "Total uploader limit"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1609 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1622
msgid "peers" msgid "peers"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1613 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1626
msgid "Up bandwidth limit" msgid "Up bandwidth limit"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1616 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1629
msgid "Half available bandwidth recommended." msgid "Half available bandwidth recommended."
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1618 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1631
msgid "View or change router bandwidth" msgid "View or change router bandwidth"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1622 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1635
msgid "Use open trackers also" msgid "Use open trackers also"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1626 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1639
msgid "" msgid ""
"If checked, announce torrents to open trackers as well as the tracker listed " "If checked, announce torrents to open trackers as well as the tracker listed "
"in the torrent file" "in the torrent file"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1630 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1643
msgid "Enable DHT" msgid "Enable DHT"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1634 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1647
msgid "If checked, use DHT" msgid "If checked, use DHT"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1650 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
msgid "Inbound Settings" msgid "Inbound Settings"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1656 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1669
msgid "Outbound Settings" msgid "Outbound Settings"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1664 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1677
msgid "I2CP host" msgid "I2CP host"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1669 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1682
msgid "I2CP port" msgid "I2CP port"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1684 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1697
msgid "I2CP options" msgid "I2CP options"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1689 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1702
msgid "Save configuration" msgid "Save configuration"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1703 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1716
msgid "Trackers" msgid "Trackers"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1708 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1721
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1710 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1723
msgid "Website URL" msgid "Website URL"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1712 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1725
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2343 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2356
msgid "Open" msgid "Open"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1727
msgid "Private" msgid "Private"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1716 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1729
msgid "Announce URL" msgid "Announce URL"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1750 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1763
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1787 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1800
#, java-format #, java-format
msgid "Invalid magnet URL {0}" msgid "Invalid magnet URL {0}"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1821 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1834
#, java-format #, java-format
msgid "Invalid info hash in magnet URL {0}" msgid "Invalid info hash in magnet URL {0}"
msgstr "" msgstr ""
#. * dummies for translation #. * dummies for translation
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1945 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1958
#, java-format #, java-format
msgid "1 hop" msgid "1 hop"
msgid_plural "{0} hops" msgid_plural "{0} hops"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1946 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1959
#, java-format #, java-format
msgid "1 tunnel" msgid "1 tunnel"
msgid_plural "{0} tunnels" msgid_plural "{0} tunnels"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2127 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2140
msgid "Torrent file" msgid "Torrent file"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2162 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2175
msgid "Magnet link" msgid "Magnet link"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2169 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2182
msgid "Private torrent" msgid "Private torrent"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2178 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2191
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2242 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2255
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2244 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2257
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2185 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2198
msgid "Completion" msgid "Completion"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2195 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2208
msgid "Remaining" msgid "Remaining"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2202 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2215
msgid "Files" msgid "Files"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2207 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2220
msgid "Pieces" msgid "Pieces"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2211 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2224
msgid "Piece size" msgid "Piece size"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2234 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2247
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2238 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2251
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2288 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2301
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2255 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2268
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2257 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2270
msgid "Priority" msgid "Priority"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2263 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2276
msgid "Up to higher level directory" msgid "Up to higher level directory"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2293 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2306
msgid "Torrent not found?" msgid "Torrent not found?"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2302 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2315
msgid "File not found in torrent?" msgid "File not found in torrent?"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2315 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2328
msgid "complete" msgid "complete"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2316 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2329
msgid "remaining" msgid "remaining"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2370 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2383
msgid "High" msgid "High"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2375 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2388
msgid "Normal" msgid "Normal"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2380 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2393
msgid "Skip" msgid "Skip"
msgstr "" msgstr ""
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2389 #: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2402
msgid "Save priorities" msgid "Save priorities"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P i2ptunnel\n" "Project-Id-Version: I2P i2ptunnel\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-16 23:58+0000\n" "POT-Creation-Date: 2012-10-12 00:38+0000\n"
"PO-Revision-Date: 2010-06-15 14:09+0100\n" "PO-Revision-Date: 2010-06-15 14:09+0100\n"
"Last-Translator: duck <duck@mail.i2p>\n" "Last-Translator: duck <duck@mail.i2p>\n"
"Language-Team: duck <duck@mail.i2p>\n" "Language-Team: duck <duck@mail.i2p>\n"
@ -47,7 +47,7 @@ msgid "Base 32"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1031 #: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1031
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:380 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:374
msgid "Destination" msgid "Destination"
msgstr "" msgstr ""
@ -131,94 +131,108 @@ msgstr ""
msgid "internal" msgid "internal"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:174 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:175
msgid "" msgid ""
"Invalid form submission, probably because you used the 'back' or 'reload' " "Invalid form submission, probably because you used the 'back' or 'reload' "
"button on your browser. Please resubmit." "button on your browser. Please resubmit."
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:221 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:222
msgid "Configuration reloaded for all tunnels" msgid "Configuration reloaded for all tunnels"
msgstr "" msgstr ""
#. and give them something to look at in any case #. and give them something to look at in any case
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:233 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:234
msgid "Starting tunnel" msgid "Starting tunnel"
msgstr "" msgstr ""
#. and give them something to look at in any case #. and give them something to look at in any case
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:246 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:247
msgid "Stopping tunnel" msgid "Stopping tunnel"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:315
msgid "Configuration changes saved" msgid "Configuration changes saved"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:317 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:318
msgid "Failed to save configuration" msgid "Failed to save configuration"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:436 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:437
msgid "New Tunnel" msgid "New Tunnel"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:456
msgid "Standard client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:457
msgid "HTTP client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:458
msgid "IRC client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:459
msgid "Standard server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:460 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:460
msgid "HTTP server" #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:470
msgstr "" #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:587
msgid "Port not set"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:461
msgid "SOCKS 4/4a/5 proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:462
msgid "SOCKS IRC proxy"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:463 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:463
msgid "CONNECT/SSL/HTTPS proxy" #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:589
msgstr "" msgid "Invalid port"
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:464
msgid "IRC server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:465
msgid "Streamr client"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:466 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:466
msgid "Warning - ports less than 1024 are not recommended"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:482
msgid "Standard client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:483
msgid "HTTP client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:484
msgid "IRC client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:485
msgid "Standard server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:486
msgid "HTTP server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:487
msgid "SOCKS 4/4a/5 proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:488
msgid "SOCKS IRC proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:489
msgid "CONNECT/SSL/HTTPS proxy"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:490
msgid "IRC server"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:491
msgid "Streamr client"
msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:492
msgid "Streamr server" msgid "Streamr server"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:467 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:493
msgid "HTTP bidir" msgid "HTTP bidir"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:555 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:581
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:305 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:299
msgid "Host not set" msgid "Host not set"
msgstr "" msgstr ""
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:559 #: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:583
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:287 msgid "Invalid address"
msgid "Port not set"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:82 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:82
@ -246,14 +260,14 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:127 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:127
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:127 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:127
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:261 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:261
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:294 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:288
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:131 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:131
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:131 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:131
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:241 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:241
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:399 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:393
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:330
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -798,7 +812,7 @@ msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:129 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:129
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:192 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:192
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:265 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:312 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:306
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -811,30 +825,30 @@ msgid "No Preview"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:199 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:199
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:319 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:313
msgid "Starting..." msgid "Starting..."
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:206 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:206
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:220 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:220
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:326 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:320
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:340 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:334
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:354 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:348
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:213 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:213
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:347 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:341
msgid "Running" msgid "Running"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:227 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:227
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:361 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:355
msgid "Stopped" msgid "Stopped"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:368 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:362
msgid "Start" msgid "Start"
msgstr "" msgstr ""
@ -843,7 +857,7 @@ msgid "New server tunnel"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:409 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:403
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:223
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:265
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/wizard_jsp.java:295
@ -853,7 +867,7 @@ msgid "Standard"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:411 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:405
msgid "Create" msgid "Create"
msgstr "" msgstr ""
@ -862,23 +876,23 @@ msgid "I2P Client Tunnels"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:263 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:263
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:298 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:292
msgid "Interface" msgid "Interface"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:333 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:327
msgid "Standby" msgid "Standby"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:377 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:371
msgid "Outproxy" msgid "Outproxy"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:394 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:388
msgid "none" msgid "none"
msgstr "" msgstr ""
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:407 #: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:401
msgid "New client tunnel" msgid "New client tunnel"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -37,7 +37,7 @@ public class HomeHelper extends HelperBase {
static final String DEFAULT_FAVORITES = static final String DEFAULT_FAVORITES =
_x("Bug Reports") + S + _x("Bug tracker") + S + "http://trac.i2p2.i2p/report/1" + S + I + "bug.png" + S + _x("Bug Reports") + S + _x("Bug tracker") + S + "http://trac.i2p2.i2p/report/1" + S + I + "bug.png" + S +
"colombo-bt.i2p" + S + _x("The Italian Bittorrent Resource") + S + "http://colombo-bt.i2p/" + S + I + "colomboicon.png" + S + //"colombo-bt.i2p" + S + _x("The Italian Bittorrent Resource") + S + "http://colombo-bt.i2p/" + S + I + "colomboicon.png" + S +
_x("Dev Forum") + S + _x("Development forum") + S + "http://zzz.i2p/" + S + I + "eepsite.png" + S + _x("Dev Forum") + S + _x("Development forum") + S + "http://zzz.i2p/" + S + I + "eepsite.png" + S +
_x("diftracker") + S + _x("Bittorrent tracker") + S + "http://diftracker.i2p/" + S + I + "eepsite.png" + S + _x("diftracker") + S + _x("Bittorrent tracker") + S + "http://diftracker.i2p/" + S + I + "eepsite.png" + S +
"echelon.i2p" + S + _x("I2P Applications") + S + "http://echelon.i2p/" + S + I + "eepsite.png" + S + "echelon.i2p" + S + _x("I2P Applications") + S + "http://echelon.i2p/" + S + I + "eepsite.png" + S +

View File

@ -3,10 +3,14 @@ package net.i2p.router.web;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.Collator;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.SortedSet;
import java.util.TreeMap;
import net.i2p.data.DataHelper; import net.i2p.data.DataHelper;
import net.i2p.router.RouterContext; import net.i2p.router.RouterContext;
@ -14,18 +18,15 @@ import net.i2p.stat.Frequency;
import net.i2p.stat.FrequencyStat; import net.i2p.stat.FrequencyStat;
import net.i2p.stat.Rate; import net.i2p.stat.Rate;
import net.i2p.stat.RateStat; import net.i2p.stat.RateStat;
import net.i2p.util.Log;
/** /**
* Dump the stats to the web admin interface * Dump the stats to the web admin interface
*/ */
public class StatsGenerator { public class StatsGenerator {
private Log _log;
private RouterContext _context; private RouterContext _context;
public StatsGenerator(RouterContext context) { public StatsGenerator(RouterContext context) {
_context = context; _context = context;
_log = context.logManager().getLog(StatsGenerator.class);
} }
public void generateStatsPage(Writer out, boolean showAll) throws IOException { public void generateStatsPage(Writer out, boolean showAll) throws IOException {
@ -35,10 +36,10 @@ public class StatsGenerator {
out.write(buf.toString()); out.write(buf.toString());
buf.setLength(0); buf.setLength(0);
Map groups = _context.statManager().getStatsByGroup(); Map<String, SortedSet<String>> unsorted = _context.statManager().getStatsByGroup();
for (Iterator iter = groups.entrySet().iterator(); iter.hasNext(); ) { Map<String, Set<String>> groups = new TreeMap(new AlphaComparator());
Map.Entry entry = (Map.Entry)iter.next(); groups.putAll(unsorted);
String group = (String)entry.getKey(); for (String group : groups.keySet()) {
buf.append("<option value=\"#").append(group).append("\">"); buf.append("<option value=\"#").append(group).append("\">");
buf.append(_(group)).append("</option>\n"); buf.append(_(group)).append("</option>\n");
// let's just do the groups // let's just do the groups
@ -66,9 +67,9 @@ public class StatsGenerator {
out.write(buf.toString()); out.write(buf.toString());
buf.setLength(0); buf.setLength(0);
for (Iterator iter = groups.keySet().iterator(); iter.hasNext(); ) { for (Map.Entry<String, Set<String>> entry : groups.entrySet()) {
String group = (String)iter.next(); String group = entry.getKey();
Set stats = (Set)groups.get(group); Set<String> stats = entry.getValue();
buf.append("<h3><a name=\""); buf.append("<h3><a name=\"");
buf.append(group); buf.append(group);
buf.append("\">"); buf.append("\">");
@ -77,8 +78,7 @@ public class StatsGenerator {
buf.append("<ul>"); buf.append("<ul>");
out.write(buf.toString()); out.write(buf.toString());
buf.setLength(0); buf.setLength(0);
for (Iterator statIter = stats.iterator(); statIter.hasNext(); ) { for (String stat : stats) {
String stat = (String)statIter.next();
buf.append("<li><b><a name=\""); buf.append("<li><b><a name=\"");
buf.append(stat); buf.append(stat);
buf.append("\">"); buf.append("\">");
@ -250,6 +250,18 @@ public class StatsGenerator {
private final static DecimalFormat _pct = new DecimalFormat("#0.00%"); private final static DecimalFormat _pct = new DecimalFormat("#0.00%");
private final static String pct(double num) { synchronized (_pct) { return _pct.format(num); } } private final static String pct(double num) { synchronized (_pct) { return _pct.format(num); } }
/**
* Translated sort
* @since 0.9.3
*/
private class AlphaComparator implements Comparator<String> {
public int compare(String lhs, String rhs) {
String lname = _(lhs);
String rname = _(rhs);
return Collator.getInstance().compare(lname, rname);
}
}
/** translate a string */ /** translate a string */
private String _(String s) { private String _(String s) {
return Messages.getString(s, _context); return Messages.getString(s, _context);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6,20 +6,21 @@
# Translators: # Translators:
# <colomboi2p@ymail.com>, 2012. # <colomboi2p@ymail.com>, 2012.
# <jokjok@hotmail.it>, 2011. # <jokjok@hotmail.it>, 2011.
# Tony Goodyear <fswitch20@hotmail.com>, 2012.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P\n" "Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-25 11:01+0000\n" "POT-Creation-Date: 2012-10-12 00:46+0000\n"
"PO-Revision-Date: 2012-05-22 00:15+0000\n" "PO-Revision-Date: 2012-10-11 19:37+0000\n"
"Last-Translator: ColomboI2P <colomboi2p@ymail.com>\n" "Last-Translator: Tony Goodyear <fswitch20@hotmail.com>\n"
"Language-Team: Italian (http://www.transifex.net/projects/p/I2P/language/" "Language-Team: Italian (http://www.transifex.com/projects/p/I2P/language/"
"it/)\n" "it/)\n"
"Language: it\n" "Language: it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130 #: ../src/java/src/i2p/susi/dns/AddressBean.java:130
#, java-format #, java-format
@ -74,60 +75,60 @@ msgstr "Firmato"
msgid "Type {0}" msgid "Type {0}"
msgstr "Tipo {0}" msgstr "Tipo {0}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:202
#, java-format #, java-format
msgid "One result for search within filtered list." msgid "One result for search within filtered list."
msgid_plural "{0} results for search within filtered list." msgid_plural "{0} results for search within filtered list."
msgstr[0] "Un risultato per la ricerca all'interno della lista filtrata." msgstr[0] "Un risultato per la ricerca all'interno della lista filtrata."
msgstr[1] "{0} risultati per la ricerca all'interno della lista filtrata." msgstr[1] "{0} risultati per la ricerca all'interno della lista filtrata."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
#, java-format #, java-format
msgid "Filtered list contains 1 entry." msgid "Filtered list contains 1 entry."
msgid_plural "Fltered list contains {0} entries." msgid_plural "Fltered list contains {0} entries."
msgstr[0] "La lista filtrata contiene 1 voce." msgstr[0] "La lista filtrata contiene 1 voce."
msgstr[1] "La lista filtrata contiene {0} voci." msgstr[1] "La lista filtrata contiene {0} voci."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:211
#, java-format #, java-format
msgid "One result for search." msgid "One result for search."
msgid_plural "{0} results for search." msgid_plural "{0} results for search."
msgstr[0] "Un risultato per la ricerca." msgstr[0] "Un risultato per la ricerca."
msgstr[1] "{0} risultati per la ricerca." msgstr[1] "{0} risultati per la ricerca."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:220
#, java-format #, java-format
msgid "Address book contains 1 entry." msgid "Address book contains 1 entry."
msgid_plural "Address book contains {0} entries." msgid_plural "Address book contains {0} entries."
msgstr[0] "La rubrica contiene 1 voce." msgstr[0] "La rubrica contiene 1 voce."
msgstr[1] "La rubrica contiene {0} voci." msgstr[1] "La rubrica contiene {0} voci."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
#, java-format #, java-format
msgid "Showing {0} of {1}" msgid "Showing {0} of {1}"
msgstr "Mostrati {0} su {1}" msgstr "Mostrati {0} su {1}"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:412
msgid "Add" msgid "Add"
msgstr "Aggiungi" msgstr "Aggiungi"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:257
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:268
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:227
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:239
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:406 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:410
msgid "Replace" msgid "Replace"
msgstr "Sostituisci" msgstr "Sostituisci"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:267
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:238
#, java-format #, java-format
msgid "Host name {0} is already in address book, unchanged." msgid "Host name {0} is already in address book, unchanged."
msgstr "L''host name {0} è già nella rubrica, nessuna modifica." msgstr "L''host name {0} è già nella rubrica, nessuna modifica."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:269
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:240
#, java-format #, java-format
msgid "" msgid ""
@ -137,63 +138,63 @@ msgstr ""
"L''host name {0} è già nella rubrica con una destinazione diversa. Fare " "L''host name {0} è già nella rubrica con una destinazione diversa. Fare "
"click su \"Sostituisci\" per sovrascrivere." "click su \"Sostituisci\" per sovrascrivere."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:312 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:282
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:253
#, java-format #, java-format
msgid "Destination added for {0}." msgid "Destination added for {0}."
msgstr "Destinazione aggiunta per {0}." msgstr "Destinazione aggiunta per {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:284
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:255
#, java-format #, java-format
msgid "Destination changed for {0}." msgid "Destination changed for {0}."
msgstr "Destinazione modificata per {0}." msgstr "Destinazione modificata per {0}."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:316 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:286
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
msgid "Warning - host name does not end with \".i2p\"" msgid "Warning - host name does not end with \".i2p\""
msgstr "Warning - l'host name non finisce con \".i2p\"" msgstr "Warning - l'host name non finisce con \".i2p\""
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:291
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:265
msgid "Invalid Base 64 destination." msgid "Invalid Base 64 destination."
msgstr "Destinazione in Base 64 non valida." msgstr "Destinazione in Base 64 non valida."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:327 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:271
#, java-format #, java-format
msgid "Invalid host name \"{0}\"." msgid "Invalid host name \"{0}\"."
msgstr "Host name \"{0}\" non valido." msgstr "Host name \"{0}\" non valido."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:330 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:300
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:274
msgid "Please enter a host name and destination" msgid "Please enter a host name and destination"
msgstr "Inserire un nome per l'host e una destinazione" msgstr "Inserire un nome per l'host e una destinazione"
#. clear search when deleting #. clear search when deleting
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:355 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:325
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:303
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:270 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:274
msgid "Delete Entry" msgid "Delete Entry"
msgstr "Elimina voce" msgstr "Elimina voce"
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:304
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:347 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:351
msgid "Delete Selected" msgid "Delete Selected"
msgstr "Elimina Selezione" msgstr "Elimina Selezione"
#. parameter is a host name #. parameter is a host name
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:348 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:318
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:295
#, java-format #, java-format
msgid "Destination {0} deleted." msgid "Destination {0} deleted."
msgstr "Destinazione {0} eliminata." msgstr "Destinazione {0} eliminata."
#. parameter will always be >= 2 #. parameter will always be >= 2
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:351 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:321
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:298
#, java-format #, java-format
msgid "1 destination deleted." msgid "1 destination deleted."
@ -201,24 +202,24 @@ msgid_plural "{0} destinations deleted."
msgstr[0] "1 destinazione eliminata." msgstr[0] "1 destinazione eliminata."
msgstr[1] "{0} destinazioni eliminate." msgstr[1] "{0} destinazioni eliminate."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:353 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:323
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:300
msgid "No entries selected to delete." msgid "No entries selected to delete."
msgstr "Non è stata selezionata nessuna voce per l'eliminazione." msgstr "Non è stata selezionata nessuna voce per l'eliminazione."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:361 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:331
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
msgid "Address book saved." msgid "Address book saved."
msgstr "Rubrica salvata." msgstr "Rubrica salvata."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:364 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:334
msgid "ERROR: Could not write addressbook file." msgid "ERROR: Could not write addressbook file."
msgstr "ERRORE: impossibile scrivere sul file della rubrica." msgstr "ERRORE: impossibile scrivere sul file della rubrica."
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:369 #: ../src/java/src/i2p/susi/dns/AddressbookBean.java:339
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311 #: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:128
msgid "" msgid ""
"Invalid form submission, probably because you used the \"back\" or \"reload" "Invalid form submission, probably because you used the \"back\" or \"reload"
"\" button on your browser. Please resubmit." "\" button on your browser. Please resubmit."
@ -227,9 +228,9 @@ msgstr ""
"\" o \"aggiorna\" del tuo browser. Per favore inviarlo nuovamente." "\" o \"aggiorna\" del tuo browser. Per favore inviarlo nuovamente."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:103
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:141 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:141 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145
msgid "Save" msgid "Save"
msgstr "Salva" msgstr "Salva"
@ -238,9 +239,9 @@ msgid "Configuration saved."
msgstr "Configurazione salvata." msgstr "Configurazione salvata."
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142 #: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:122
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:139 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:139 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143
msgid "Reload" msgid "Reload"
msgstr "Ricarica" msgstr "Ricarica"
@ -271,18 +272,18 @@ msgstr ""
"Operazione di eliminazione della Destinazione per {0} dal servizio di naming " "Operazione di eliminazione della Destinazione per {0} dal servizio di naming "
"{1} fallita" "{1} fallita"
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:115
msgid "" msgid ""
"Subscriptions saved, updating addressbook from subscription sources now." "Subscriptions saved, updating addressbook from subscription sources now."
msgstr "" msgstr ""
"Sottoscrizioni salvate, è in corso l'aggiornamento della rubrica a partire " "Sottoscrizioni salvate, è in corso l'aggiornamento della rubrica a partire "
"dalle fonti di sottoscrizione." "dalle fonti di sottoscrizione."
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:120
msgid "Subscriptions saved." msgid "Subscriptions saved."
msgstr "Sottoscrizioni salvate." msgstr "Sottoscrizioni salvate."
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152 #: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:124
msgid "Subscriptions reloaded." msgid "Subscriptions reloaded."
msgstr "Sottoscrizioni ricaricate." msgstr "Sottoscrizioni ricaricate."
@ -290,166 +291,166 @@ msgstr "Sottoscrizioni ricaricate."
msgid "address book" msgid "address book"
msgstr "rubrica" msgstr "rubrica"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:147
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:113 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:125
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:129 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:141
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:132
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:118 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:113 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:129 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:133
msgid "Overview" msgid "Overview"
msgstr "Panoramica" msgstr "Panoramica"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:115 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:104 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:115 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:119
msgid "Address books" msgid "Address books"
msgstr "Rubriche" msgstr "Rubriche"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:117 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:129
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:106 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:118
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:117 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:121
msgid "private" msgid "private"
msgstr "privato" msgstr "privato"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:131
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:108 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:120
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:119 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123
msgid "master" msgid "master"
msgstr "master" msgstr "master"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:121 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:133
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:122
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:121 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125
msgid "router" msgid "router"
msgstr "router" msgstr "router"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:123 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:135
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:112 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:124
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:123 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127
msgid "published" msgid "published"
msgstr "pubblicato" msgstr "pubblicato"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:125 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:137
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:128
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:114 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:125 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:129
msgid "Subscriptions" msgid "Subscriptions"
msgstr "Sottoscrizioni" msgstr "Sottoscrizioni"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:127 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:139
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:130
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:116 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:127 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:131
msgid "Configuration" msgid "Configuration"
msgstr "Configurazione" msgstr "Configurazione"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:149
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:130 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:134
msgid "Address book" msgid "Address book"
msgstr "Rubrica" msgstr "Rubrica"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:154
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:135 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:139
msgid "Storage" msgid "Storage"
msgstr "Deposito" msgstr "Deposito"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:168 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
msgid "Filter" msgid "Filter"
msgstr "Filtro" msgstr "Filtro"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:171 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:175
msgid "other" msgid "other"
msgstr "altro" msgstr "altro"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:173 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
msgid "all" msgid "all"
msgstr "tutto" msgstr "tutto"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:187 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:191
msgid "Current filter" msgid "Current filter"
msgstr "Filtro corrente" msgstr "Filtro corrente"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:192 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:196
msgid "clear filter" msgid "clear filter"
msgstr "cancella il filtro" msgstr "cancella il filtro"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:205
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:209 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:209
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:213
msgid "Search" msgid "Search"
msgstr "Ricerca" msgstr "Ricerca"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246
msgid "Name" msgid "Name"
msgstr "Nome" msgstr "Nome"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:244 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:248
msgid "Links" msgid "Links"
msgstr "Collegamenti" msgstr "Collegamenti"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:246 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:250
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:404
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:262 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:266
msgid "Destination" msgid "Destination"
msgstr "Destinazione" msgstr "Destinazione"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:282 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:286
msgid "Mark for deletion" msgid "Mark for deletion"
msgstr "Marca per la rimozione" msgstr "Marca per la rimozione"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:303 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307
msgid "Base 32 address" msgid "Base 32 address"
msgstr "indirizzo in Base 32" msgstr "indirizzo in Base 32"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:307 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:311
msgid "More information on this entry" msgid "More information on this entry"
msgstr "Più informazioni su questa voce" msgstr "Più informazioni su questa voce"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:310 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
msgid "details" msgid "details"
msgstr "dettagli" msgstr "dettagli"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:349
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:404 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:408
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:379 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:383
msgid "This address book is empty." msgid "This address book is empty."
msgstr "Questa rubrica è vuota." msgstr "Questa rubrica è vuota."
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:394 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:398
msgid "Add new destination" msgid "Add new destination"
msgstr "Aggiungi una nuova destinazione" msgstr "Aggiungi una nuova destinazione"
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:396 #: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:400
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:161 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:165
msgid "Host Name" msgid "Host Name"
msgstr "Host Name" msgstr "Host Name"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:111 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:119
msgid "configuration" msgid "configuration"
msgstr "configurazione" msgstr "configurazione"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:143 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155
msgid "Hints" msgid "Hints"
msgstr "Suggerimenti" msgstr "Suggerimenti"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:145 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:157
msgid "" msgid ""
"File and directory paths here are relative to the addressbook's working " "File and directory paths here are relative to the addressbook's working "
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P" "directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
@ -459,7 +460,7 @@ msgstr ""
"uso, che normalmente è ~/.i2p/addressbook/ (Linux) o %APPDATA%\\I2P" "uso, che normalmente è ~/.i2p/addressbook/ (Linux) o %APPDATA%\\I2P"
"\\addressbook\\ (Windows)." "\\addressbook\\ (Windows)."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:147 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159
msgid "" msgid ""
"If you want to manually add lines to an addressbook, add them to the private " "If you want to manually add lines to an addressbook, add them to the private "
"or master addressbooks." "or master addressbooks."
@ -467,7 +468,7 @@ msgstr ""
"Se vuoi aggiungere linee a una rubrica manualmente, aggiungile alla rubrica " "Se vuoi aggiungere linee a una rubrica manualmente, aggiungile alla rubrica "
"master o a quella privata." "master o a quella privata."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
msgid "" msgid ""
"The router addressbook and the published addressbook are updated by the " "The router addressbook and the published addressbook are updated by the "
"addressbook application." "addressbook application."
@ -475,7 +476,7 @@ msgstr ""
"La rubrica del router e la rubrica pubblicata sono aggiornate " "La rubrica del router e la rubrica pubblicata sono aggiornate "
"dall'applicazione rubrica stessa." "dall'applicazione rubrica stessa."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
msgid "" msgid ""
"When you publish your addressbook, ALL destinations from the master and " "When you publish your addressbook, ALL destinations from the master and "
"router addressbooks appear there." "router addressbooks appear there."
@ -483,7 +484,7 @@ msgstr ""
"Quando pubblichi la tua rubrica, vi appaiono TUTTE le destinazioni sia della " "Quando pubblichi la tua rubrica, vi appaiono TUTTE le destinazioni sia della "
"rubrica master che di quella privata." "rubrica master che di quella privata."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:151 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163
msgid "" msgid ""
"Use the private addressbook for private destinations, these are not " "Use the private addressbook for private destinations, these are not "
"published." "published."
@ -491,21 +492,21 @@ msgstr ""
"Usa la rubrica privata per le destinazioni private, in questo modo queste " "Usa la rubrica privata per le destinazioni private, in questo modo queste "
"non vengono pubblicate." "non vengono pubblicate."
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:153 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165
msgid "Options" msgid "Options"
msgstr "Opzioni" msgstr "Opzioni"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:155 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167
msgid "File containing the list of subscriptions URLs (no need to change)" msgid "File containing the list of subscriptions URLs (no need to change)"
msgstr "" msgstr ""
"File contenente la lista degli indirizzi URL di sottoscrizione (non " "File contenente la lista degli indirizzi URL di sottoscrizione (non "
"necessita modifiche)" "necessita modifiche)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:157 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169
msgid "Update interval in hours" msgid "Update interval in hours"
msgstr "Imposta l'intervallo in ore" msgstr "Imposta l'intervallo in ore"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:159 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171
msgid "" msgid ""
"Your public hosts.txt file (choose a path within your webserver document " "Your public hosts.txt file (choose a path within your webserver document "
"root)" "root)"
@ -513,31 +514,31 @@ msgstr ""
"Il tuo file hosts.txt pubblico (scegli un percorso all'interno della root " "Il tuo file hosts.txt pubblico (scegli un percorso all'interno della root "
"dei documenti del tuo webserver)" "dei documenti del tuo webserver)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:161 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173
msgid "Your hosts.txt (don't change)" msgid "Your hosts.txt (don't change)"
msgstr "Il tuo hosts.txt (non modificare)" msgstr "Il tuo hosts.txt (non modificare)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:163 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175
msgid "Your personal addressbook, these hosts will be published" msgid "Your personal addressbook, these hosts will be published"
msgstr "La tua rubrica personale, questi host verranno pubblicati" msgstr "La tua rubrica personale, questi host verranno pubblicati"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:165 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177
msgid "Your private addressbook, it is never published" msgid "Your private addressbook, it is never published"
msgstr "La tua rubrica privata, non viene mai pubblicata" msgstr "La tua rubrica privata, non viene mai pubblicata"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:167 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:179
msgid "Port for your eepProxy (no need to change)" msgid "Port for your eepProxy (no need to change)"
msgstr "La porta per il tuo eepProxy (non necessita modifiche)" msgstr "La porta per il tuo eepProxy (non necessita modifiche)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:169 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:181
msgid "Hostname for your eepProxy (no need to change)" msgid "Hostname for your eepProxy (no need to change)"
msgstr "L'hostname per il tuo eepProxy (non necessita modifiche)" msgstr "L'hostname per il tuo eepProxy (non necessita modifiche)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:171 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:183
msgid "Whether to update the published addressbook" msgid "Whether to update the published addressbook"
msgstr "Se aggiornare o meno la rubrica pubblicata" msgstr "Se aggiornare o meno la rubrica pubblicata"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:173 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:185
msgid "" msgid ""
"File containing the etags header from the fetched subscription URLs (no need " "File containing the etags header from the fetched subscription URLs (no need "
"to change)" "to change)"
@ -545,7 +546,7 @@ msgstr ""
"File contenente gli header degli etags recuperati dagli URL delle " "File contenente gli header degli etags recuperati dagli URL delle "
"sottoscrizioni (non necessita modifiche)" "sottoscrizioni (non necessita modifiche)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:175 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:187
msgid "" msgid ""
"File containing the modification timestamp for each fetched subscription URL " "File containing the modification timestamp for each fetched subscription URL "
"(no need to change)" "(no need to change)"
@ -553,83 +554,87 @@ msgstr ""
"File contenente il timestamp delle modifiche per ogni URL di sottoscrizione " "File contenente il timestamp delle modifiche per ogni URL di sottoscrizione "
"recuperato (non necessita modifiche)" "recuperato (non necessita modifiche)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:177 #: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:189
msgid "File to log activity to (change to /dev/null if you like)" msgid "File to log activity to (change to /dev/null if you like)"
msgstr "File di log dell'attività (puoi cambiare in /dev/null se preferisci)" msgstr "File di log dell'attività (puoi cambiare in /dev/null se preferisci)"
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:191
msgid "Name of the theme to use (defaults to 'light')"
msgstr "Nome del tema in uso ( predefinto \"chiaro\")"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
msgid "addressbook" msgid "addressbook"
msgstr "rubrica" msgstr "rubrica"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:177 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:181
msgid "Encoded Name" msgid "Encoded Name"
msgstr "Nome cifrato" msgstr "Nome cifrato"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:193 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:197
msgid "Base 32 Address" msgid "Base 32 Address"
msgstr "Indirizzo in Base 32" msgstr "Indirizzo in Base 32"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:203 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
msgid "Base 64 Hash" msgid "Base 64 Hash"
msgstr "Base 64 Hash" msgstr "Base 64 Hash"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:209 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
msgid "Address Helper" msgid "Address Helper"
msgstr "Assistente Indirizzo" msgstr "Assistente Indirizzo"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:216 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220
msgid "link" msgid "link"
msgstr "collegamento" msgstr "collegamento"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:220 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:224
msgid "Public Key" msgid "Public Key"
msgstr "Chiave Pubblica" msgstr "Chiave Pubblica"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:222 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226
msgid "ElGamal 2048 bit" msgid "ElGamal 2048 bit"
msgstr "ElGamal 2048 bit" msgstr "ElGamal 2048 bit"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:226 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:230
msgid "Signing Key" msgid "Signing Key"
msgstr "Chiave per la Firma" msgstr "Chiave per la Firma"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:228 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232
msgid "DSA 1024 bit" msgid "DSA 1024 bit"
msgstr "DSA 1024 bit" msgstr "DSA 1024 bit"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:232 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:236
msgid "Certificate" msgid "Certificate"
msgstr "Certificato" msgstr "Certificato"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:238 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:242
msgid "Added Date" msgid "Added Date"
msgstr "Data aggiunta" msgstr "Data aggiunta"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:244 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:248
msgid "Source" msgid "Source"
msgstr "Sorgente" msgstr "Sorgente"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:250 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:254
msgid "Last Modified" msgid "Last Modified"
msgstr "Ultima Modifica" msgstr "Ultima Modifica"
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:256 #: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:260
msgid "Notes" msgid "Notes"
msgstr "Note" msgstr "Note"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:102 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:110
msgid "Introduction" msgid "Introduction"
msgstr "Introduzione" msgstr "Introduzione"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:120 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132
msgid "What is the addressbook?" msgid "What is the addressbook?"
msgstr "Cos'è la rubrica?" msgstr "Cos'è la rubrica?"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:122 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134
msgid "The addressbook application is part of your I2P installation." msgid "The addressbook application is part of your I2P installation."
msgstr "L'applicazione rubrica è parte della tua installazione I2P." msgstr "L'applicazione rubrica è parte della tua installazione I2P."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:135
msgid "" msgid ""
"It regularly updates your hosts.txt file from distributed sources or " "It regularly updates your hosts.txt file from distributed sources or "
"\"subscriptions\"." "\"subscriptions\"."
@ -637,7 +642,7 @@ msgstr ""
"Aggiorna regolarmente il tuo file hosts.txt da fonti distribuite o " "Aggiorna regolarmente il tuo file hosts.txt da fonti distribuite o "
"\"sottoscrizioni\"." "\"sottoscrizioni\"."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:137
msgid "" msgid ""
"In the default configuration, the address book is only subscribed to www." "In the default configuration, the address book is only subscribed to www."
"i2p2.i2p." "i2p2.i2p."
@ -645,7 +650,7 @@ msgstr ""
"Nella configurazione di default, la rubrica è sottoscritta solamente a www." "Nella configurazione di default, la rubrica è sottoscritta solamente a www."
"i2p2.i2p." "i2p2.i2p."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:126 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:138
msgid "" msgid ""
"Subscribing to additional sites is easy, just add them to your <a href=" "Subscribing to additional sites is easy, just add them to your <a href="
"\"subscriptions\">subscriptions</a> file." "\"subscriptions\">subscriptions</a> file."
@ -653,7 +658,7 @@ msgstr ""
"Sottoscriversi a siti addizionali è semplice, basta aggiungerli al vostro " "Sottoscriversi a siti addizionali è semplice, basta aggiungerli al vostro "
"file delle <a href=\"subscriptions\">sottoscrizioni</a>" "file delle <a href=\"subscriptions\">sottoscrizioni</a>"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:128 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:140
msgid "" msgid ""
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/" "For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
"naming.html\">the overview on www.i2p2.i2p</a>." "naming.html\">the overview on www.i2p2.i2p</a>."
@ -661,11 +666,11 @@ msgstr ""
"Per più informazioni sul naming in I2P, vedere la <a href=\"http://www.i2p2." "Per più informazioni sul naming in I2P, vedere la <a href=\"http://www.i2p2."
"i2p/naming.html\">panoramica su www.i2p2.i2p</a>." "i2p/naming.html\">panoramica su www.i2p2.i2p</a>."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:130 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:142
msgid "How does the addressbook application work?" msgid "How does the addressbook application work?"
msgstr "Come funziona l'applicazione rubrica?" msgstr "Come funziona l'applicazione rubrica?"
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:132 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:144
msgid "" msgid ""
"The addressbook application regularly polls your subscriptions and merges " "The addressbook application regularly polls your subscriptions and merges "
"their content into your \"router\" address book." "their content into your \"router\" address book."
@ -673,13 +678,13 @@ msgstr ""
"L'applicazione rubrica sonda regolarmente le tue sottoscrizioni e fonde il " "L'applicazione rubrica sonda regolarmente le tue sottoscrizioni e fonde il "
"loro contenuto nella rubrica \"router\"." "loro contenuto nella rubrica \"router\"."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:145
msgid "" msgid ""
"Then it merges your \"master\" address book into the router address book as " "Then it merges your \"master\" address book into the router address book as "
"well." "well."
msgstr "A questo punto fonde la tua rubrica \"master\" nella rubrica router." msgstr "A questo punto fonde la tua rubrica \"master\" nella rubrica router."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:134 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:146
msgid "" msgid ""
"If configured, the router address book is now written to the \"published\" " "If configured, the router address book is now written to the \"published\" "
"address book, which will be publicly available if you are running an eepsite." "address book, which will be publicly available if you are running an eepsite."
@ -688,7 +693,7 @@ msgstr ""
"\"pubblicato\", che sarà disponibile pubblicamente se hai in esecuzione un " "\"pubblicato\", che sarà disponibile pubblicamente se hai in esecuzione un "
"eepsite." "eepsite."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:136 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:148
msgid "" msgid ""
"The router also uses a private address book (not shown in the picture), " "The router also uses a private address book (not shown in the picture), "
"which is not merged or published." "which is not merged or published."
@ -696,7 +701,7 @@ msgstr ""
"Il router utilizza inoltre una rubrica privata (non mostrata nell'immagine) " "Il router utilizza inoltre una rubrica privata (non mostrata nell'immagine) "
"che non viene fusa con niente nè pubblicata." "che non viene fusa con niente nè pubblicata."
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:137 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:149
msgid "" msgid ""
"Hosts in the private address book can be accessed by you but their addresses " "Hosts in the private address book can be accessed by you but their addresses "
"are never distributed to others." "are never distributed to others."
@ -704,7 +709,7 @@ msgstr ""
"Puoi accedere agli host nella rubrica privata ma i loro indirizzi non " "Puoi accedere agli host nella rubrica privata ma i loro indirizzi non "
"vengono mai distribuiti ad altri. " "vengono mai distribuiti ad altri. "
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:138 #: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:150
msgid "" msgid ""
"The private address book can also be used for aliases of hosts in your other " "The private address book can also be used for aliases of hosts in your other "
"address books." "address books."
@ -716,22 +721,22 @@ msgstr ""
msgid "subscriptions" msgid "subscriptions"
msgstr "sottoscrizioni" msgstr "sottoscrizioni"
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:143 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147
msgid "The subscription file contains a list of i2p URLs." msgid "The subscription file contains a list of i2p URLs."
msgstr "Il file di sottoscrizione contiene una lista di URL i2p." msgstr "Il file di sottoscrizione contiene una lista di URL i2p."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:148
msgid "" msgid ""
"The addressbook application regularly checks this list for new eepsites." "The addressbook application regularly checks this list for new eepsites."
msgstr "" msgstr ""
"L'applicazione rubrica controlla regolarmente questa lista per verificare la " "L'applicazione rubrica controlla regolarmente questa lista per verificare la "
"presenza di nuovi eepsites." "presenza di nuovi eepsites."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:145 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149
msgid "Those URLs refer to published hosts.txt files." msgid "Those URLs refer to published hosts.txt files."
msgstr "Quegli URL si riferiscono ai file hosts.txt pubblicati." msgstr "Quegli URL si riferiscono ai file hosts.txt pubblicati."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:146 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:150
msgid "" msgid ""
"The default subscription is the hosts.txt from www.i2p2.i2p, which is " "The default subscription is the hosts.txt from www.i2p2.i2p, which is "
"updated infrequently." "updated infrequently."
@ -739,7 +744,7 @@ msgstr ""
"La sottoscrizione di default è il file hosts.txt da www.i2p2.i2p, aggiornata " "La sottoscrizione di default è il file hosts.txt da www.i2p2.i2p, aggiornata "
"poco frequentemente." "poco frequentemente."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:147 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:151
msgid "" msgid ""
"So it is a good idea to add additional subscriptions to sites that have the " "So it is a good idea to add additional subscriptions to sites that have the "
"latest addresses." "latest addresses."
@ -747,6 +752,6 @@ msgstr ""
"Quindi è una buona idea aggiungere sottoscrizioni addizionali a siti che " "Quindi è una buona idea aggiungere sottoscrizioni addizionali a siti che "
"hanno gli indirizzi più recenti." "hanno gli indirizzi più recenti."
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:149 #: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:153
msgid "See the FAQ for a list of subscription URLs." msgid "See the FAQ for a list of subscription URLs."
msgstr "Vedi le FAQ per una lista di indirizzi URL di sottoscrizione." msgstr "Vedi le FAQ per una lista di indirizzi URL di sottoscrizione."

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: I2P\n" "Project-Id-Version: I2P\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-25 11:01+0000\n" "POT-Creation-Date: 2012-10-12 00:46+0000\n"
"PO-Revision-Date: 2012-05-21 21:49+0000\n" "PO-Revision-Date: 2012-05-21 21:49+0000\n"
"Last-Translator: ColomboI2P <colomboi2p@ymail.com>\n" "Last-Translator: ColomboI2P <colomboi2p@ymail.com>\n"
"Language-Team: Italian (http://www.transifex.net/projects/p/I2P/language/" "Language-Team: Italian (http://www.transifex.net/projects/p/I2P/language/"
@ -21,430 +21,430 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: src/src/i2p/susi/webmail/WebMail.java:435 #: src/src/i2p/susi/webmail/WebMail.java:445
msgid "unknown" msgid "unknown"
msgstr "sconosciuto" msgstr "sconosciuto"
#: src/src/i2p/susi/webmail/WebMail.java:454 #: src/src/i2p/susi/webmail/WebMail.java:464
msgid "Warning: no transfer encoding found, fallback to 7bit." msgid "Warning: no transfer encoding found, fallback to 7bit."
msgstr "Attenzione: nessuna codifica di trasferimento trovata, ritorno a 7bit." msgstr "Attenzione: nessuna codifica di trasferimento trovata, ritorno a 7bit."
#: src/src/i2p/susi/webmail/WebMail.java:459 #: src/src/i2p/susi/webmail/WebMail.java:469
#, java-format #, java-format
msgid "No encoder found for encoding \\''{0}\\''." msgid "No encoder found for encoding \\''{0}\\''."
msgstr "Nessun codificatore trovato per la codifica \\\"{0}\\\"." msgstr "Nessun codificatore trovato per la codifica \\\"{0}\\\"."
#: src/src/i2p/susi/webmail/WebMail.java:465 #: src/src/i2p/susi/webmail/WebMail.java:475
msgid "Warning: no charset found, fallback to US-ASCII." msgid "Warning: no charset found, fallback to US-ASCII."
msgstr "Attenzione: nessun charset trovato, ritorno a US-ASCII." msgstr "Attenzione: nessun charset trovato, ritorno a US-ASCII."
#: src/src/i2p/susi/webmail/WebMail.java:479 #: src/src/i2p/susi/webmail/WebMail.java:489
#, java-format #, java-format
msgid "Charset \\''{0}\\'' not supported." msgid "Charset \\''{0}\\'' not supported."
msgstr "Charset \\\"{0}\\\" non supportato." msgstr "Charset \\\"{0}\\\" non supportato."
#: src/src/i2p/susi/webmail/WebMail.java:483 #: src/src/i2p/susi/webmail/WebMail.java:493
#, java-format #, java-format
msgid "Part ({0}) not shown, because of {1}" msgid "Part ({0}) not shown, because of {1}"
msgstr "Parte ({0}) non mostrata, a causa di {1}" msgstr "Parte ({0}) non mostrata, a causa di {1}"
#: src/src/i2p/susi/webmail/WebMail.java:506 #: src/src/i2p/susi/webmail/WebMail.java:516
msgid "Download" msgid "Download"
msgstr "Download" msgstr "Download"
#: src/src/i2p/susi/webmail/WebMail.java:506 #: src/src/i2p/susi/webmail/WebMail.java:516
msgid "File is packed into a zipfile for security reasons." msgid "File is packed into a zipfile for security reasons."
msgstr "Il file è compresso in formato zip per ragioni di sicurezza." msgstr "Il file è compresso in formato zip per ragioni di sicurezza."
#: src/src/i2p/susi/webmail/WebMail.java:506 #: src/src/i2p/susi/webmail/WebMail.java:516
#, java-format #, java-format
msgid "attachment ({0})." msgid "attachment ({0})."
msgstr "allegato ({0})." msgstr "allegato ({0})."
#: src/src/i2p/susi/webmail/WebMail.java:510 #: src/src/i2p/susi/webmail/WebMail.java:520
#, java-format #, java-format
msgid "Attachment ({0})." msgid "Attachment ({0})."
msgstr "Allegato ({0})." msgstr "Allegato ({0})."
#: src/src/i2p/susi/webmail/WebMail.java:560 #: src/src/i2p/susi/webmail/WebMail.java:570
msgid "Need username for authentication." msgid "Need username for authentication."
msgstr "Serve l'username per l'autenticazione." msgstr "Serve l'username per l'autenticazione."
#: src/src/i2p/susi/webmail/WebMail.java:564 #: src/src/i2p/susi/webmail/WebMail.java:574
msgid "Need password for authentication." msgid "Need password for authentication."
msgstr "Serve la password per l'autenticazione." msgstr "Serve la password per l'autenticazione."
#: src/src/i2p/susi/webmail/WebMail.java:568 #: src/src/i2p/susi/webmail/WebMail.java:578
msgid "Need hostname for connect." msgid "Need hostname for connect."
msgstr "Serve l'hostname per connettersi" msgstr "Serve l'hostname per connettersi"
#: src/src/i2p/susi/webmail/WebMail.java:573 #: src/src/i2p/susi/webmail/WebMail.java:583
msgid "Need port number for pop3 connect." msgid "Need port number for pop3 connect."
msgstr "Serve il numero di porta per connettersi con pop3." msgstr "Serve il numero di porta per connettersi con pop3."
#: src/src/i2p/susi/webmail/WebMail.java:580 #: src/src/i2p/susi/webmail/WebMail.java:590
msgid "POP3 port number is not in range 0..65535." msgid "POP3 port number is not in range 0..65535."
msgstr "Il numero di porta POP3 non è nell'intervallo 0..65535." msgstr "Il numero di porta POP3 non è nell'intervallo 0..65535."
#: src/src/i2p/susi/webmail/WebMail.java:586 #: src/src/i2p/susi/webmail/WebMail.java:596
msgid "POP3 port number is invalid." msgid "POP3 port number is invalid."
msgstr "Il numero di porta POP3 non è valido." msgstr "Il numero di porta POP3 non è valido."
#: src/src/i2p/susi/webmail/WebMail.java:592 #: src/src/i2p/susi/webmail/WebMail.java:602
msgid "Need port number for smtp connect." msgid "Need port number for smtp connect."
msgstr "Serve il numero di porta per connettersi con smtp." msgstr "Serve il numero di porta per connettersi con smtp."
#: src/src/i2p/susi/webmail/WebMail.java:599 #: src/src/i2p/susi/webmail/WebMail.java:609
msgid "SMTP port number is not in range 0..65535." msgid "SMTP port number is not in range 0..65535."
msgstr "Il numero di porta SMTP non è nell'intervallo 0..65535." msgstr "Il numero di porta SMTP non è nell'intervallo 0..65535."
#: src/src/i2p/susi/webmail/WebMail.java:605 #: src/src/i2p/susi/webmail/WebMail.java:615
msgid "SMTP port number is invalid." msgid "SMTP port number is invalid."
msgstr "Il numero di porta SMTP non è valido." msgstr "Il numero di porta SMTP non è valido."
#: src/src/i2p/susi/webmail/WebMail.java:652 #: src/src/i2p/susi/webmail/WebMail.java:662
msgid "User logged out." msgid "User logged out."
msgstr "Utente disconnesso." msgstr "Utente disconnesso."
#: src/src/i2p/susi/webmail/WebMail.java:656 #: src/src/i2p/susi/webmail/WebMail.java:666
msgid "Internal error, lost connection." msgid "Internal error, lost connection."
msgstr "Errore interno, connessione persa." msgstr "Errore interno, connessione persa."
#: src/src/i2p/susi/webmail/WebMail.java:752 #: src/src/i2p/susi/webmail/WebMail.java:762
#, java-format #, java-format
msgid "On {0} {1} wrote:" msgid "On {0} {1} wrote:"
msgstr "Su {0} {1} scritto:" msgstr "Su {0} {1} scritto:"
#: src/src/i2p/susi/webmail/WebMail.java:799 #: src/src/i2p/susi/webmail/WebMail.java:809
msgid "begin forwarded mail" msgid "begin forwarded mail"
msgstr "inizia mail inoltrata" msgstr "inizia mail inoltrata"
#: src/src/i2p/susi/webmail/WebMail.java:821 #: src/src/i2p/susi/webmail/WebMail.java:831
msgid "end forwarded mail" msgid "end forwarded mail"
msgstr "concludi mail inoltrata" msgstr "concludi mail inoltrata"
#: src/src/i2p/susi/webmail/WebMail.java:828 #: src/src/i2p/susi/webmail/WebMail.java:838
#: src/src/i2p/susi/webmail/WebMail.java:1701 #: src/src/i2p/susi/webmail/WebMail.java:1731
msgid "Could not fetch mail body." msgid "Could not fetch mail body."
msgstr "Non è stato possibile prendere il corpo della mail." msgstr "Non è stato possibile prendere il corpo della mail."
#: src/src/i2p/susi/webmail/WebMail.java:856 #: src/src/i2p/susi/webmail/WebMail.java:866
msgid "Message id not valid." msgid "Message id not valid."
msgstr "L'id del messaggio non è valido." msgstr "L'id del messaggio non è valido."
#: src/src/i2p/susi/webmail/WebMail.java:939 #: src/src/i2p/susi/webmail/WebMail.java:949
#, java-format #, java-format
msgid "No Encoding found for {0}" msgid "No Encoding found for {0}"
msgstr "Nessuna Codifica trovata per {0}" msgstr "Nessuna Codifica trovata per {0}"
#: src/src/i2p/susi/webmail/WebMail.java:943 #: src/src/i2p/susi/webmail/WebMail.java:953
#, java-format #, java-format
msgid "Could not encode data: {0}" msgid "Could not encode data: {0}"
msgstr "Non è stato possibile codificare i dati: {0}" msgstr "Non è stato possibile codificare i dati: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:948 #: src/src/i2p/susi/webmail/WebMail.java:958
#, java-format #, java-format
msgid "Error reading uploaded file: {0}" msgid "Error reading uploaded file: {0}"
msgstr "Errore nella lettura del file inviato: {0}" msgstr "Errore nella lettura del file inviato: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1026 #: src/src/i2p/susi/webmail/WebMail.java:1036
msgid "Error parsing download parameter." msgid "Error parsing download parameter."
msgstr "Errore durante l'analisi del parametro di download." msgstr "Errore durante l'analisi del parametro di download."
#: src/src/i2p/susi/webmail/WebMail.java:1070 #: src/src/i2p/susi/webmail/WebMail.java:1080
msgid "Invalid pagesize number, resetting to default value." msgid "Invalid pagesize number, resetting to default value."
msgstr "" msgstr ""
"Numero di dimensione di pagina invalido, ripristino al valore di default in " "Numero di dimensione di pagina invalido, ripristino al valore di default in "
"corso." "corso."
#: src/src/i2p/susi/webmail/WebMail.java:1094 #: src/src/i2p/susi/webmail/WebMail.java:1104
msgid "No messages marked for deletion." msgid "No messages marked for deletion."
msgstr "Nessun messaggio segnato per l'eliminazione." msgstr "Nessun messaggio segnato per l'eliminazione."
#: src/src/i2p/susi/webmail/WebMail.java:1114 #: src/src/i2p/susi/webmail/WebMail.java:1124
#, java-format #, java-format
msgid "Error deleting message: {0}" msgid "Error deleting message: {0}"
msgstr "Errore durante la rimozione del messaggio: {0}" msgstr "Errore durante la rimozione del messaggio: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1125 #: src/src/i2p/susi/webmail/WebMail.java:1135
#, java-format #, java-format
msgid "1 message deleted." msgid "1 message deleted."
msgid_plural "{0} messages deleted." msgid_plural "{0} messages deleted."
msgstr[0] "1 messaggio eliminato." msgstr[0] "1 messaggio eliminato."
msgstr[1] "{0} messaggi eliminati." msgstr[1] "{0} messaggi eliminati."
#: src/src/i2p/susi/webmail/WebMail.java:1248 #: src/src/i2p/susi/webmail/WebMail.java:1278
#: src/src/i2p/susi/webmail/WebMail.java:1585 #: src/src/i2p/susi/webmail/WebMail.java:1615
msgid "Login" msgid "Login"
msgstr "Login" msgstr "Login"
#: src/src/i2p/susi/webmail/WebMail.java:1250 #: src/src/i2p/susi/webmail/WebMail.java:1280
#, java-format #, java-format
msgid "1 Message" msgid "1 Message"
msgid_plural "{0} Messages" msgid_plural "{0} Messages"
msgstr[0] "1 Messaggio" msgstr[0] "1 Messaggio"
msgstr[1] "{0} Messaggi" msgstr[1] "{0} Messaggi"
#: src/src/i2p/susi/webmail/WebMail.java:1252 #: src/src/i2p/susi/webmail/WebMail.java:1282
msgid "Show Message" msgid "Show Message"
msgstr "Mostra Messaggio" msgstr "Mostra Messaggio"
#: src/src/i2p/susi/webmail/WebMail.java:1314 #: src/src/i2p/susi/webmail/WebMail.java:1344
#, java-format #, java-format
msgid "Error decoding content: {0}" msgid "Error decoding content: {0}"
msgstr "Errore nella decodifica del contenuto: {0}" msgstr "Errore nella decodifica del contenuto: {0}"
#: src/src/i2p/susi/webmail/WebMail.java:1319 #: src/src/i2p/susi/webmail/WebMail.java:1349
msgid "Error decoding content: No encoder found." msgid "Error decoding content: No encoder found."
msgstr "Errore nella decodifica del contenuto: Nessun codificatore trovato" msgstr "Errore nella decodifica del contenuto: Nessun codificatore trovato"
#: src/src/i2p/susi/webmail/WebMail.java:1366 #: src/src/i2p/susi/webmail/WebMail.java:1396
msgid "no subject" msgid "no subject"
msgstr "nessun soggetto" msgstr "nessun soggetto"
#: src/src/i2p/susi/webmail/WebMail.java:1383 #: src/src/i2p/susi/webmail/WebMail.java:1413
msgid "Found no valid sender address." msgid "Found no valid sender address."
msgstr "Non è stato trovato nessun indirizzo mittente valido." msgstr "Non è stato trovato nessun indirizzo mittente valido."
#: src/src/i2p/susi/webmail/WebMail.java:1389 #: src/src/i2p/susi/webmail/WebMail.java:1419
#, java-format #, java-format
msgid "Found no valid address in \\''{0}\\''." msgid "Found no valid address in \\''{0}\\''."
msgstr "Non è stato trovato nessun indirizzo valido in \\\"{0}\\\"." msgstr "Non è stato trovato nessun indirizzo valido in \\\"{0}\\\"."
#: src/src/i2p/susi/webmail/WebMail.java:1408 #: src/src/i2p/susi/webmail/WebMail.java:1438
msgid "No recipients found." msgid "No recipients found."
msgstr "Nessun destinatario trovato." msgstr "Nessun destinatario trovato."
#: src/src/i2p/susi/webmail/WebMail.java:1415 #: src/src/i2p/susi/webmail/WebMail.java:1445
msgid "Quoted printable encoder not available." msgid "Quoted printable encoder not available."
msgstr "Codificatore stampabile citato non disponibile." msgstr "Codificatore stampabile citato non disponibile."
#: src/src/i2p/susi/webmail/WebMail.java:1420 #: src/src/i2p/susi/webmail/WebMail.java:1450
msgid "Header line encoder not available." msgid "Header line encoder not available."
msgstr "Codificatore linea di testata non disponibile." msgstr "Codificatore linea di testata non disponibile."
#: src/src/i2p/susi/webmail/WebMail.java:1471 #: src/src/i2p/susi/webmail/WebMail.java:1501
msgid "Mail sent." msgid "Mail sent."
msgstr "Mail inviata." msgstr "Mail inviata."
#: src/src/i2p/susi/webmail/WebMail.java:1510 #: src/src/i2p/susi/webmail/WebMail.java:1540
msgid "Send" msgid "Send"
msgstr "Invia" msgstr "Invia"
#: src/src/i2p/susi/webmail/WebMail.java:1511 #: src/src/i2p/susi/webmail/WebMail.java:1541
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: src/src/i2p/susi/webmail/WebMail.java:1512 #: src/src/i2p/susi/webmail/WebMail.java:1542
msgid "Delete Attachment" msgid "Delete Attachment"
msgstr "Elimina Allegato" msgstr "Elimina Allegato"
#: src/src/i2p/susi/webmail/WebMail.java:1513 #: src/src/i2p/susi/webmail/WebMail.java:1543
#: src/src/i2p/susi/webmail/WebMail.java:1607 #: src/src/i2p/susi/webmail/WebMail.java:1637
#: src/src/i2p/susi/webmail/WebMail.java:1688 #: src/src/i2p/susi/webmail/WebMail.java:1718
msgid "Reload Config" msgid "Reload Config"
msgstr "Ricarica Configurazione" msgstr "Ricarica Configurazione"
#: src/src/i2p/susi/webmail/WebMail.java:1514 #: src/src/i2p/susi/webmail/WebMail.java:1544
#: src/src/i2p/susi/webmail/WebMail.java:1608 #: src/src/i2p/susi/webmail/WebMail.java:1638
#: src/src/i2p/susi/webmail/WebMail.java:1689 #: src/src/i2p/susi/webmail/WebMail.java:1719
msgid "Logout" msgid "Logout"
msgstr "Disconnettiti" msgstr "Disconnettiti"
#: src/src/i2p/susi/webmail/WebMail.java:1537 #: src/src/i2p/susi/webmail/WebMail.java:1567
#: src/src/i2p/susi/webmail/WebMail.java:1693 #: src/src/i2p/susi/webmail/WebMail.java:1723
msgid "From:" msgid "From:"
msgstr "Da:" msgstr "Da:"
#: src/src/i2p/susi/webmail/WebMail.java:1538 #: src/src/i2p/susi/webmail/WebMail.java:1568
msgid "To:" msgid "To:"
msgstr "A:" msgstr "A:"
#: src/src/i2p/susi/webmail/WebMail.java:1539 #: src/src/i2p/susi/webmail/WebMail.java:1569
msgid "Cc:" msgid "Cc:"
msgstr "Cc:" msgstr "Cc:"
#: src/src/i2p/susi/webmail/WebMail.java:1540 #: src/src/i2p/susi/webmail/WebMail.java:1570
msgid "Bcc:" msgid "Bcc:"
msgstr "Bcc:" msgstr "Bcc:"
#: src/src/i2p/susi/webmail/WebMail.java:1541 #: src/src/i2p/susi/webmail/WebMail.java:1571
#: src/src/i2p/susi/webmail/WebMail.java:1695 #: src/src/i2p/susi/webmail/WebMail.java:1725
msgid "Subject:" msgid "Subject:"
msgstr "Soggetto:" msgstr "Soggetto:"
#: src/src/i2p/susi/webmail/WebMail.java:1542 #: src/src/i2p/susi/webmail/WebMail.java:1572
msgid "Bcc to self" msgid "Bcc to self"
msgstr "Bcc a se stessi" msgstr "Bcc a se stessi"
#: src/src/i2p/susi/webmail/WebMail.java:1545 #: src/src/i2p/susi/webmail/WebMail.java:1575
msgid "New Attachment:" msgid "New Attachment:"
msgstr "Nuovo Allegato" msgstr "Nuovo Allegato"
#: src/src/i2p/susi/webmail/WebMail.java:1545 #: src/src/i2p/susi/webmail/WebMail.java:1575
msgid "Upload File" msgid "Upload File"
msgstr "Invia File" msgstr "Invia File"
#: src/src/i2p/susi/webmail/WebMail.java:1551 #: src/src/i2p/susi/webmail/WebMail.java:1581
msgid "Attachments:" msgid "Attachments:"
msgstr "Allegati:" msgstr "Allegati:"
#. current postman hq length limits 16/12, new postman version 32/32 #. current postman hq length limits 16/12, new postman version 32/32
#: src/src/i2p/susi/webmail/WebMail.java:1574 #: src/src/i2p/susi/webmail/WebMail.java:1604
msgid "User" msgid "User"
msgstr "Utente" msgstr "Utente"
#: src/src/i2p/susi/webmail/WebMail.java:1575 #: src/src/i2p/susi/webmail/WebMail.java:1605
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
#: src/src/i2p/susi/webmail/WebMail.java:1580 #: src/src/i2p/susi/webmail/WebMail.java:1610
msgid "Host" msgid "Host"
msgstr "Host" msgstr "Host"
#: src/src/i2p/susi/webmail/WebMail.java:1581 #: src/src/i2p/susi/webmail/WebMail.java:1611
msgid "POP3-Port" msgid "POP3-Port"
msgstr "Porta POP3" msgstr "Porta POP3"
#: src/src/i2p/susi/webmail/WebMail.java:1582 #: src/src/i2p/susi/webmail/WebMail.java:1612
msgid "SMTP-Port" msgid "SMTP-Port"
msgstr "Porta SMTP" msgstr "Porta SMTP"
#: src/src/i2p/susi/webmail/WebMail.java:1585 #: src/src/i2p/susi/webmail/WebMail.java:1615
msgid "Reset" msgid "Reset"
msgstr "Reset" msgstr "Reset"
#: src/src/i2p/susi/webmail/WebMail.java:1586 #: src/src/i2p/susi/webmail/WebMail.java:1616
msgid "Learn about I2P mail" msgid "Learn about I2P mail"
msgstr "Ulteriori informazioni sulla mail I2P" msgstr "Ulteriori informazioni sulla mail I2P"
#: src/src/i2p/susi/webmail/WebMail.java:1587 #: src/src/i2p/susi/webmail/WebMail.java:1617
msgid "Create Account" msgid "Create Account"
msgstr "Crea Account" msgstr "Crea Account"
#: src/src/i2p/susi/webmail/WebMail.java:1599 #: src/src/i2p/susi/webmail/WebMail.java:1629
msgid "Really delete the marked messages?" msgid "Really delete the marked messages?"
msgstr "Eliminare veramente i messaggi selezionati?" msgstr "Eliminare veramente i messaggi selezionati?"
#: src/src/i2p/susi/webmail/WebMail.java:1599 #: src/src/i2p/susi/webmail/WebMail.java:1629
msgid "Yes, really delete them!" msgid "Yes, really delete them!"
msgstr "Sì,eliminali per davvero!" msgstr "Sì,eliminali per davvero!"
#: src/src/i2p/susi/webmail/WebMail.java:1601 #: src/src/i2p/susi/webmail/WebMail.java:1631
#: src/src/i2p/susi/webmail/WebMail.java:1680 #: src/src/i2p/susi/webmail/WebMail.java:1710
msgid "New" msgid "New"
msgstr "Nuovo" msgstr "Nuovo"
#: src/src/i2p/susi/webmail/WebMail.java:1602 #: src/src/i2p/susi/webmail/WebMail.java:1632
#: src/src/i2p/susi/webmail/WebMail.java:1681 #: src/src/i2p/susi/webmail/WebMail.java:1711
msgid "Reply" msgid "Reply"
msgstr "Rispondi" msgstr "Rispondi"
#: src/src/i2p/susi/webmail/WebMail.java:1603 #: src/src/i2p/susi/webmail/WebMail.java:1633
#: src/src/i2p/susi/webmail/WebMail.java:1682 #: src/src/i2p/susi/webmail/WebMail.java:1712
msgid "Reply All" msgid "Reply All"
msgstr "Rispondi A Tutti" msgstr "Rispondi A Tutti"
#: src/src/i2p/susi/webmail/WebMail.java:1604 #: src/src/i2p/susi/webmail/WebMail.java:1634
#: src/src/i2p/susi/webmail/WebMail.java:1683 #: src/src/i2p/susi/webmail/WebMail.java:1713
msgid "Forward" msgid "Forward"
msgstr "Inoltra" msgstr "Inoltra"
#: src/src/i2p/susi/webmail/WebMail.java:1605 #: src/src/i2p/susi/webmail/WebMail.java:1635
#: src/src/i2p/susi/webmail/WebMail.java:1684 #: src/src/i2p/susi/webmail/WebMail.java:1714
msgid "Delete" msgid "Delete"
msgstr "Elimina" msgstr "Elimina"
#: src/src/i2p/susi/webmail/WebMail.java:1606 #: src/src/i2p/susi/webmail/WebMail.java:1636
msgid "Check Mail" msgid "Check Mail"
msgstr "Controlla Mail" msgstr "Controlla Mail"
#: src/src/i2p/susi/webmail/WebMail.java:1610 #: src/src/i2p/susi/webmail/WebMail.java:1640
msgid "Sender" msgid "Sender"
msgstr "Mittente" msgstr "Mittente"
#: src/src/i2p/susi/webmail/WebMail.java:1611 #: src/src/i2p/susi/webmail/WebMail.java:1641
msgid "Subject" msgid "Subject"
msgstr "Soggetto" msgstr "Soggetto"
#: src/src/i2p/susi/webmail/WebMail.java:1612 #: src/src/i2p/susi/webmail/WebMail.java:1642
msgid "Date" msgid "Date"
msgstr "Data" msgstr "Data"
#: src/src/i2p/susi/webmail/WebMail.java:1613 #: src/src/i2p/susi/webmail/WebMail.java:1643
msgid "Size" msgid "Size"
msgstr "Dimensione" msgstr "Dimensione"
#: src/src/i2p/susi/webmail/WebMail.java:1639 #: src/src/i2p/susi/webmail/WebMail.java:1669
#, java-format #, java-format
msgid "1 Byte" msgid "1 Byte"
msgid_plural "{0} Bytes" msgid_plural "{0} Bytes"
msgstr[0] "1 Byte" msgstr[0] "1 Byte"
msgstr[1] "{0} Bytes" msgstr[1] "{0} Bytes"
#: src/src/i2p/susi/webmail/WebMail.java:1644 #: src/src/i2p/susi/webmail/WebMail.java:1674
msgid "Mark All" msgid "Mark All"
msgstr "Segna Tutti" msgstr "Segna Tutti"
#: src/src/i2p/susi/webmail/WebMail.java:1645 #: src/src/i2p/susi/webmail/WebMail.java:1675
msgid "Invert Selection" msgid "Invert Selection"
msgstr "Inverti Selezione" msgstr "Inverti Selezione"
#: src/src/i2p/susi/webmail/WebMail.java:1646 #: src/src/i2p/susi/webmail/WebMail.java:1676
msgid "Clear" msgid "Clear"
msgstr "Cancella" msgstr "Cancella"
#: src/src/i2p/susi/webmail/WebMail.java:1649 #: src/src/i2p/susi/webmail/WebMail.java:1679
#: src/src/i2p/susi/webmail/WebMail.java:1650 #: src/src/i2p/susi/webmail/WebMail.java:1680
msgid "First" msgid "First"
msgstr "Primo" msgstr "Primo"
#: src/src/i2p/susi/webmail/WebMail.java:1649 #: src/src/i2p/susi/webmail/WebMail.java:1679
#: src/src/i2p/susi/webmail/WebMail.java:1650 #: src/src/i2p/susi/webmail/WebMail.java:1680
#: src/src/i2p/susi/webmail/WebMail.java:1685 #: src/src/i2p/susi/webmail/WebMail.java:1715
msgid "Previous" msgid "Previous"
msgstr "Precedente" msgstr "Precedente"
#: src/src/i2p/susi/webmail/WebMail.java:1651 #: src/src/i2p/susi/webmail/WebMail.java:1681
#, java-format #, java-format
msgid "Page {0} of {1}" msgid "Page {0} of {1}"
msgstr "Pagina {0} di {1}" msgstr "Pagina {0} di {1}"
#: src/src/i2p/susi/webmail/WebMail.java:1653 #: src/src/i2p/susi/webmail/WebMail.java:1683
#: src/src/i2p/susi/webmail/WebMail.java:1654 #: src/src/i2p/susi/webmail/WebMail.java:1684
msgid "Last" msgid "Last"
msgstr "Ultimo" msgstr "Ultimo"
#: src/src/i2p/susi/webmail/WebMail.java:1653 #: src/src/i2p/susi/webmail/WebMail.java:1683
#: src/src/i2p/susi/webmail/WebMail.java:1654 #: src/src/i2p/susi/webmail/WebMail.java:1684
#: src/src/i2p/susi/webmail/WebMail.java:1686 #: src/src/i2p/susi/webmail/WebMail.java:1716
msgid "Next" msgid "Next"
msgstr "Successivo" msgstr "Successivo"
#: src/src/i2p/susi/webmail/WebMail.java:1657 #: src/src/i2p/susi/webmail/WebMail.java:1687
msgid "Pagesize:" msgid "Pagesize:"
msgstr "Dimensione di Pagina:" msgstr "Dimensione di Pagina:"
#: src/src/i2p/susi/webmail/WebMail.java:1658 #: src/src/i2p/susi/webmail/WebMail.java:1688
msgid "Set" msgid "Set"
msgstr "Imposta" msgstr "Imposta"
#: src/src/i2p/susi/webmail/WebMail.java:1668 #: src/src/i2p/susi/webmail/WebMail.java:1698
msgid "Really delete this message?" msgid "Really delete this message?"
msgstr "Eliminare per davvero questo messaggio?" msgstr "Eliminare per davvero questo messaggio?"
#: src/src/i2p/susi/webmail/WebMail.java:1668 #: src/src/i2p/susi/webmail/WebMail.java:1698
msgid "Yes, really delete it!" msgid "Yes, really delete it!"
msgstr "Sì, eliminalo per davvero!" msgstr "Sì, eliminalo per davvero!"
#: src/src/i2p/susi/webmail/WebMail.java:1687 #: src/src/i2p/susi/webmail/WebMail.java:1717
msgid "Back to Folder" msgid "Back to Folder"
msgstr "Torna alla Cartella" msgstr "Torna alla Cartella"
#: src/src/i2p/susi/webmail/WebMail.java:1694 #: src/src/i2p/susi/webmail/WebMail.java:1724
msgid "Date:" msgid "Date:"
msgstr "Data:" msgstr "Data:"
#: src/src/i2p/susi/webmail/WebMail.java:1705 #: src/src/i2p/susi/webmail/WebMail.java:1735
msgid "Could not fetch mail." msgid "Could not fetch mail."
msgstr "Non è stato possibile recuperare la mail" msgstr "Non è stato possibile recuperare la mail"

View File

@ -1,12 +1,11 @@
package net.i2p.stat; package net.i2p.stat;
import java.text.Collator; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.SortedSet; import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@ -212,19 +211,28 @@ public class StatManager {
return _frequencyStats.containsKey(statName); return _frequencyStats.containsKey(statName);
} }
/** Group name (String) to a Set of stat names, ordered alphabetically */ /**
* Group name (untranslated String) to a SortedSet of untranslated stat names.
* Map is unsorted.
*/
public Map<String, SortedSet<String>> getStatsByGroup() { public Map<String, SortedSet<String>> getStatsByGroup() {
Map<String, SortedSet<String>> groups = new TreeMap(Collator.getInstance()); Map<String, SortedSet<String>> groups = new HashMap(32);
for (Iterator<FrequencyStat> iter = _frequencyStats.values().iterator(); iter.hasNext();) { for (FrequencyStat stat : _frequencyStats.values()) {
FrequencyStat stat = iter.next(); String gname = stat.getGroupName();
if (!groups.containsKey(stat.getGroupName())) groups.put(stat.getGroupName(), new TreeSet()); SortedSet<String> names = groups.get(gname);
Set<String> names = groups.get(stat.getGroupName()); if (names == null) {
names = new TreeSet();
groups.put(gname, names);
}
names.add(stat.getName()); names.add(stat.getName());
} }
for (Iterator<RateStat> iter = _rateStats.values().iterator(); iter.hasNext();) { for (RateStat stat : _rateStats.values()) {
RateStat stat = iter.next(); String gname = stat.getGroupName();
if (!groups.containsKey(stat.getGroupName())) groups.put(stat.getGroupName(), new TreeSet()); SortedSet<String> names = groups.get(gname);
Set<String> names = groups.get(stat.getGroupName()); if (names == null) {
names = new TreeSet();
groups.put(gname, names);
}
names.add(stat.getName()); names.add(stat.getName());
} }
return groups; return groups;

View File

@ -16,6 +16,7 @@ import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.util.Arrays;
/** /**
* Passes a command to the OS shell for execution and manages the input and * Passes a command to the OS shell for execution and manages the input and
@ -27,55 +28,49 @@ import java.io.OutputStreamWriter;
*/ */
public class ShellCommand { public class ShellCommand {
private static final boolean DEBUG = false;
private static final boolean CONSUME_OUTPUT = true; private static final boolean CONSUME_OUTPUT = true;
private static final boolean NO_CONSUME_OUTPUT = false; private static final boolean NO_CONSUME_OUTPUT = false;
private static final boolean WAIT_FOR_EXIT_STATUS = true; private static final boolean WAIT_FOR_EXIT_STATUS = true;
private static final boolean NO_WAIT_FOR_EXIT_STATUS = false; private static final boolean NO_WAIT_FOR_EXIT_STATUS = false;
private boolean _commandSuccessful; // Following are unused, only for NO_CONSUME_OUTPUT;
private boolean _commandCompleted; // need synchronization or volatile or something if we start using it.
private CommandThread _commandThread;
private InputStream _errorStream; private InputStream _errorStream;
private InputStream _inputStream; private InputStream _inputStream;
private boolean _isTimerRunning;
private OutputStream _outputStream; private OutputStream _outputStream;
private Process _process;
/** @since 0.9.3 */
private static class Result {
public volatile boolean commandSuccessful;
}
/** /**
* Executes a shell command in its own thread. * Executes a shell command in its own thread.
* Use caution when repeatedly calling execute methods with the same object
* as there are some globals here...
* *
* @author hypercubus * @author hypercubus
*/ */
private class CommandThread extends Thread { private class CommandThread extends Thread {
private final Object caller;
private final boolean consumeOutput; private final boolean consumeOutput;
private final Object shellCommand; private final Object shellCommand;
private final Result result;
/** /**
* @param shellCommand either a String or a String[] (since 0.8.3) * @param shellCommand either a String or a String[] (since 0.8.3)
* @param consumeOutput always true, false is unused, possibly untested
* @param result out parameter
*/ */
CommandThread(Object caller, Object shellCommand, boolean consumeOutput) { CommandThread(Object shellCommand, boolean consumeOutput, Result result) {
super("CommandThread"); super("ShellCommand Executor");
this.caller = caller;
this.shellCommand = shellCommand; this.shellCommand = shellCommand;
this.consumeOutput = consumeOutput; this.consumeOutput = consumeOutput;
this.result = result;
} }
@Override @Override
public void run() { public void run() {
// FIXME these will corrupt the globals if the command times out and the caller result.commandSuccessful = execute(shellCommand, consumeOutput, WAIT_FOR_EXIT_STATUS);
// makes another request with the same object.
_commandSuccessful = execute(shellCommand, consumeOutput, WAIT_FOR_EXIT_STATUS);
_commandCompleted = true;
if (_isTimerRunning) {
synchronized(caller) {
caller.notifyAll(); // In case the caller is still in the wait() state.
}
}
} }
} }
@ -90,19 +85,16 @@ public class ShellCommand {
* @author hypercubus * @author hypercubus
*/ */
private static class StreamConsumer extends Thread { private static class StreamConsumer extends Thread {
private final BufferedReader bufferedReader;
private BufferedReader bufferedReader;
private InputStreamReader inputStreamReader;
public StreamConsumer(InputStream inputStream) { public StreamConsumer(InputStream inputStream) {
super("StreamConsumer"); super("ShellCommand Consumer");
this.inputStreamReader = new InputStreamReader(inputStream); InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
this.bufferedReader = new BufferedReader(inputStreamReader); this.bufferedReader = new BufferedReader(inputStreamReader);
} }
@Override @Override
public void run() { public void run() {
try { try {
while ((bufferedReader.readLine()) != null) { while ((bufferedReader.readLine()) != null) {
// Just like a Hoover. // Just like a Hoover.
@ -119,27 +111,25 @@ public class ShellCommand {
* Reads data from a <code>java.io.InputStream</code> and writes it to * Reads data from a <code>java.io.InputStream</code> and writes it to
* <code>STDOUT</code>. * <code>STDOUT</code>.
* *
* UNUSED, only for NO_CONSUME_OUTPUT
*
* @author hypercubus * @author hypercubus
*/ */
private static class StreamReader extends Thread { private static class StreamReader extends Thread {
private final BufferedReader bufferedReader;
private BufferedReader bufferedReader;
private InputStreamReader inputStreamReader;
public StreamReader(InputStream inputStream) { public StreamReader(InputStream inputStream) {
super("StreamReader"); super("ShellCommand Reader");
this.inputStreamReader = new InputStreamReader(inputStream); InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
this.bufferedReader = new BufferedReader(inputStreamReader); this.bufferedReader = new BufferedReader(inputStreamReader);
} }
@Override @Override
public void run() { public void run() {
char[] buffer = new char[BUFFER_SIZE]; char[] buffer = new char[BUFFER_SIZE];
int bytesRead; int bytesRead;
try { try {
while (true) while (true)
while ((bytesRead = bufferedReader.read(buffer, 0, BUFFER_SIZE)) != -1) while ((bytesRead = bufferedReader.read(buffer, 0, BUFFER_SIZE)) != -1)
for (int i = 0; i < bytesRead; i++) for (int i = 0; i < bytesRead; i++)
@ -155,30 +145,26 @@ public class ShellCommand {
* Reads data from <code>STDIN</code> and writes it to a * Reads data from <code>STDIN</code> and writes it to a
* <code>java.io.OutputStream</code>. * <code>java.io.OutputStream</code>.
* *
* UNUSED, only for NO_CONSUME_OUTPUT
*
* @author hypercubus * @author hypercubus
*/ */
private static class StreamWriter extends Thread { private static class StreamWriter extends Thread {
private final BufferedWriter bufferedWriter;
private BufferedWriter bufferedWriter;
private BufferedReader in;
private OutputStreamWriter outputStreamWriter;
public StreamWriter(OutputStream outputStream) { public StreamWriter(OutputStream outputStream) {
super("StreamWriter"); super("ShellCommand Writer");
this.outputStreamWriter = new OutputStreamWriter(outputStream); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
this.bufferedWriter = new BufferedWriter(outputStreamWriter); this.bufferedWriter = new BufferedWriter(outputStreamWriter);
} }
@Override @Override
public void run() { public void run() {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String input;
in = new BufferedReader(new InputStreamReader(System.in));
try { try {
while (true) { while (true) {
input = in.readLine() + "\r\n"; bufferedWriter.write(in.readLine());
bufferedWriter.write(input, 0, input.length()); bufferedWriter.write("\r\n");
bufferedWriter.flush(); bufferedWriter.flush();
} }
} catch (IOException e) { } catch (IOException e) {
@ -226,11 +212,7 @@ public class ShellCommand {
* else <code>false</code>. * else <code>false</code>.
*/ */
public boolean executeAndWait(String shellCommand) { public boolean executeAndWait(String shellCommand) {
return execute(shellCommand, NO_CONSUME_OUTPUT, WAIT_FOR_EXIT_STATUS);
if (execute(shellCommand, NO_CONSUME_OUTPUT, WAIT_FOR_EXIT_STATUS))
return true;
return false;
} }
/** /**
@ -254,29 +236,20 @@ public class ShellCommand {
* returns an exit status of 0 (indicating success), * returns an exit status of 0 (indicating success),
* else <code>false</code>. * else <code>false</code>.
*/ */
public synchronized boolean executeAndWaitTimed(String shellCommand, int seconds) { public boolean executeAndWaitTimed(String shellCommand, int seconds) {
Result result = new Result();
_commandThread = new CommandThread(this, shellCommand, NO_CONSUME_OUTPUT); Thread commandThread = new CommandThread(shellCommand, NO_CONSUME_OUTPUT, result);
_commandThread.start(); commandThread.start();
try { try {
if (seconds > 0) { if (seconds > 0) {
_isTimerRunning = true; commandThread.join(seconds * 1000);
wait(seconds * 1000); if (commandThread.isAlive())
_isTimerRunning = false;
if (!_commandCompleted)
return true; return true;
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
// Wake up, time to die. // Wake up, time to die.
} }
_isTimerRunning = false; return result.commandSuccessful;
if (_commandSuccessful)
return true;
return false;
} }
/** /**
@ -307,11 +280,7 @@ public class ShellCommand {
* else <code>false</code>. * else <code>false</code>.
*/ */
public boolean executeSilentAndWait(String shellCommand) { public boolean executeSilentAndWait(String shellCommand) {
return execute(shellCommand, CONSUME_OUTPUT, WAIT_FOR_EXIT_STATUS);
if (execute(shellCommand, CONSUME_OUTPUT, WAIT_FOR_EXIT_STATUS))
return true;
return false;
} }
/** /**
@ -332,9 +301,10 @@ public class ShellCommand {
* here disables waiting. * here disables waiting.
* @return <code>true</code> if the spawned shell process * @return <code>true</code> if the spawned shell process
* returns an exit status of 0 (indicating success), * returns an exit status of 0 (indicating success),
* OR if the time expires,
* else <code>false</code>. * else <code>false</code>.
*/ */
public synchronized boolean executeSilentAndWaitTimed(String shellCommand, int seconds) { public boolean executeSilentAndWaitTimed(String shellCommand, int seconds) {
return executeSAWT(shellCommand, seconds); return executeSAWT(shellCommand, seconds);
} }
@ -353,50 +323,65 @@ public class ShellCommand {
* here disables waiting. * here disables waiting.
* @return <code>true</code> if the spawned shell process * @return <code>true</code> if the spawned shell process
* returns an exit status of 0 (indicating success), * returns an exit status of 0 (indicating success),
* OR if the time expires,
* else <code>false</code>. * else <code>false</code>.
* @since 0.8.3 * @since 0.8.3
*/ */
public synchronized boolean executeSilentAndWaitTimed(String[] commandArray, int seconds) { public boolean executeSilentAndWaitTimed(String[] commandArray, int seconds) {
return executeSAWT(commandArray, seconds); return executeSAWT(commandArray, seconds);
} }
/** @since 0.8.3 */ /** @since 0.8.3 */
private boolean executeSAWT(Object shellCommand, int seconds) { private boolean executeSAWT(Object shellCommand, int seconds) {
_commandThread = new CommandThread(this, shellCommand, CONSUME_OUTPUT); String name = null;
_commandThread.start(); long begin = 0;
if (DEBUG) {
if (shellCommand instanceof String) {
name = (String) shellCommand;
} else if (shellCommand instanceof String[]) {
String[] arr = (String[]) shellCommand;
name = Arrays.toString(arr);
}
begin = System.currentTimeMillis();
}
Result result = new Result();
Thread commandThread = new CommandThread(shellCommand, CONSUME_OUTPUT, result);
commandThread.start();
try { try {
if (seconds > 0) { if (seconds > 0) {
_isTimerRunning = true; commandThread.join(seconds * 1000);
wait(seconds * 1000); if (commandThread.isAlive()) {
_isTimerRunning = false; if (DEBUG)
if (!_commandCompleted) System.out.println("ShellCommand gave up waiting for \"" + name + "\" after " + seconds + " seconds");
return true; return true;
} }
}
} catch (InterruptedException e) { } catch (InterruptedException e) {
// Wake up, time to die. // Wake up, time to die.
} }
_isTimerRunning = false; if (DEBUG)
System.out.println("ShellCommand returning " + result.commandSuccessful + " for \"" + name + "\" after " + (System.currentTimeMillis() - begin) + " ms");
if (_commandSuccessful) return result.commandSuccessful;
return true;
return false;
} }
/** @deprecated unused */
public InputStream getErrorStream() { public InputStream getErrorStream() {
return _errorStream; return _errorStream;
} }
/** @deprecated unused */
public InputStream getInputStream() { public InputStream getInputStream() {
return _inputStream; return _inputStream;
} }
/** @deprecated unused */
public OutputStream getOutputStream() { public OutputStream getOutputStream() {
return _outputStream; return _outputStream;
} }
/**
* Just does exec, this is NOT a test of ShellCommand.
*/
public static void main(String args[]) { public static void main(String args[]) {
if (args.length <= 0) { if (args.length <= 0) {
System.err.println("Usage: ShellCommand commandline"); System.err.println("Usage: ShellCommand commandline");
@ -410,63 +395,80 @@ public class ShellCommand {
/** /**
* @param shellCommand either a String or a String[] (since 0.8.3) - quick hack * @param shellCommand either a String or a String[] (since 0.8.3) - quick hack
* @param consumeOutput always true, false is unused, possibly untested
*/ */
private boolean execute(Object shellCommand, boolean consumeOutput, boolean waitForExitStatus) { private boolean execute(Object shellCommand, boolean consumeOutput, boolean waitForExitStatus) {
Process process;
StreamConsumer processStderrConsumer; String name = null; // for debugging only
StreamConsumer processStdoutConsumer;
StreamReader processStderrReader;
StreamWriter processStdinWriter;
StreamReader processStdoutReader;
try { try {
// easy way so we don't have to copy this whole method // easy way so we don't have to copy this whole method
if (shellCommand instanceof String) if (shellCommand instanceof String) {
_process = Runtime.getRuntime().exec((String)shellCommand); name = (String) shellCommand;
else if (shellCommand instanceof String[]) if (DEBUG)
_process = Runtime.getRuntime().exec((String[])shellCommand); System.out.println("ShellCommand exec \"" + name + "\" consume? " + consumeOutput + " wait? " + waitForExitStatus);
else process = Runtime.getRuntime().exec(name);
} else if (shellCommand instanceof String[]) {
String[] arr = (String[]) shellCommand;
if (DEBUG) {
name = Arrays.toString(arr);
System.out.println("ShellCommand exec \"" + name + "\" consume? " + consumeOutput + " wait? " + waitForExitStatus);
}
process = Runtime.getRuntime().exec(arr);
} else {
throw new ClassCastException("shell command must be a String or a String[]"); throw new ClassCastException("shell command must be a String or a String[]");
}
if (consumeOutput) { if (consumeOutput) {
processStderrConsumer = new StreamConsumer(_process.getErrorStream()); Thread processStderrConsumer = new StreamConsumer(process.getErrorStream());
processStderrConsumer.start(); processStderrConsumer.start();
processStdoutConsumer = new StreamConsumer(_process.getInputStream()); Thread processStdoutConsumer = new StreamConsumer(process.getInputStream());
processStdoutConsumer.start(); processStdoutConsumer.start();
} else { } else {
_errorStream = _process.getErrorStream(); // unused, consumeOutput always true
_inputStream = _process.getInputStream(); _errorStream = process.getErrorStream();
_outputStream = _process.getOutputStream(); _inputStream = process.getInputStream();
processStderrReader = new StreamReader(_errorStream); _outputStream = process.getOutputStream();
Thread processStderrReader = new StreamReader(_errorStream);
processStderrReader.start(); processStderrReader.start();
processStdinWriter = new StreamWriter(_outputStream); Thread processStdinWriter = new StreamWriter(_outputStream);
processStdinWriter.start(); processStdinWriter.start();
processStdoutReader = new StreamReader(_inputStream); Thread processStdoutReader = new StreamReader(_inputStream);
processStdoutReader.start(); processStdoutReader.start();
} }
if (waitForExitStatus) { if (waitForExitStatus) {
if (DEBUG)
System.out.println("ShellCommand waiting for \"" + name + '\"');
try { try {
_process.waitFor(); process.waitFor();
} catch (Exception e) { } catch (Exception e) {
if (DEBUG) {
System.out.println("ShellCommand exception waiting for \"" + name + '\"');
e.printStackTrace();
}
if (!consumeOutput) if (!consumeOutput)
killStreams(); killStreams();
return false; return false;
} }
if (!consumeOutput) if (!consumeOutput)
killStreams(); killStreams();
if (_process.exitValue() > 0) if (DEBUG)
System.out.println("ShellCommand exit value is " + process.exitValue() + " for \"" + name + '\"');
if (process.exitValue() > 0)
return false; return false;
} }
} catch (Exception e) { } catch (Exception e) {
// probably IOException, file not found from exec()
if (DEBUG) {
System.out.println("ShellCommand execute exception for \"" + name + '\"');
e.printStackTrace();
}
return false; return false;
} }
return true; return true;
} }
/** unused, only for NO_CONSUME_OUTPUT */
private void killStreams() { private void killStreams() {
try { try {
_errorStream.close(); _errorStream.close();

View File

@ -47,7 +47,7 @@ Debian wrapper.config to try to prevent confusion.
# Application # Application
APP_NAME="i2p" APP_NAME="i2p"
@@ -55,8 +48,8 @@ @@ -61,8 +54,8 @@
#RUN_AS_USER= #RUN_AS_USER=
# Wrapper # Wrapper
@ -58,7 +58,7 @@ Debian wrapper.config to try to prevent confusion.
# Priority at which to run the wrapper. See "man nice" for valid priorities. # Priority at which to run the wrapper. See "man nice" for valid priorities.
# nice is only used if a priority is specified. # nice is only used if a priority is specified.
@@ -167,48 +160,6 @@ @@ -173,48 +166,6 @@
# Workaround for Gentoo # Workaround for Gentoo
JAVABINARY=$(awk -F'=' '/^ *wrapper\.java\.command/{print $2}' "$WRAPPER_CONF") JAVABINARY=$(awk -F'=' '/^ *wrapper\.java\.command/{print $2}' "$WRAPPER_CONF")
@ -107,7 +107,7 @@ Debian wrapper.config to try to prevent confusion.
if [ -n "$FIXED_COMMAND" ] if [ -n "$FIXED_COMMAND" ]
then then
COMMAND="$FIXED_COMMAND" COMMAND="$FIXED_COMMAND"
@@ -899,9 +850,6 @@ @@ -905,9 +856,6 @@
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP $ADDITIONAL_PARA"
eval $COMMAND_LINE eval $COMMAND_LINE
@ -117,7 +117,7 @@ Debian wrapper.config to try to prevent confusion.
else else
eval echo `gettext '$APP_LONG_NAME is already running.'` eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1 exit 1
@@ -1025,9 +973,6 @@ @@ -1031,9 +979,6 @@
# The string passed to eval must handles spaces in paths correctly. # The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP $ADDITIONAL_PARA" COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.java.command=\"$JAVABINARY\" wrapper.pidfile=\"$PIDFILE\" wrapper.name=\"$APP_NAME\" wrapper.displayname=\"$APP_LONG_NAME\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP $LOGPROP $ADDITIONAL_PARA"
eval $COMMAND_LINE eval $COMMAND_LINE
@ -127,7 +127,7 @@ Debian wrapper.config to try to prevent confusion.
else else
eval echo `gettext '$APP_LONG_NAME is already running.'` eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1 exit 1
@@ -1798,16 +1743,8 @@ @@ -1871,18 +1816,9 @@
status status
;; ;;
@ -136,13 +136,16 @@ Debian wrapper.config to try to prevent confusion.
- if [ ! `grep ^RUN_AS_USER $0` ]; then - if [ ! `grep ^RUN_AS_USER $0` ]; then
- showsetusermesg - showsetusermesg
- fi - fi
- - echo
- echo "You may want to disable the browser from launching at startup at"
- echo "http://127.0.0.1:7657/configclients"
- ;; - ;;
- -
- 'remove' | 'uninstall') - 'remove' | 'uninstall')
- removedaemon - removedaemon
+ 'install' | 'remove' | 'uninstall') + 'install' | 'remove' | 'uninstall')
+ echo "Use \"dpkg-reconfigure i2p\" to configure the initscript." + echo "Use \"dpkg-reconfigure i2p\" to configure the initscript."
+ exit 1
;; ;;
'dump') 'dump')
@ -186,7 +189,7 @@ Debian wrapper.config to try to prevent confusion.
# #
#******************************************************************** #********************************************************************
# Java Application # Java Application
@@ -53,13 +44,14 @@ @@ -60,13 +51,14 @@
# classes, or all the classes of i2p.jar, are in a different directory). # classes, or all the classes of i2p.jar, are in a different directory).
# Be sure there are no other duplicate classes. # Be sure there are no other duplicate classes.
# #
@ -206,7 +209,7 @@ Debian wrapper.config to try to prevent confusion.
# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode. # Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode.
wrapper.java.additional.auto_bits=TRUE wrapper.java.additional.auto_bits=TRUE
@@ -69,7 +61,7 @@ @@ -76,7 +68,7 @@
wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt
wrapper.java.additional.2=-Dorg.mortbay.http.Version.paranoid=true wrapper.java.additional.2=-Dorg.mortbay.http.Version.paranoid=true
wrapper.java.additional.3=-Dorg.mortbay.xml.XmlParser.NotValidating=true wrapper.java.additional.3=-Dorg.mortbay.xml.XmlParser.NotValidating=true
@ -215,7 +218,7 @@ Debian wrapper.config to try to prevent confusion.
wrapper.java.additional.4.stripquotes=TRUE wrapper.java.additional.4.stripquotes=TRUE
# On some IPv6 enabled systems, I2P and other network-enabled java applications # On some IPv6 enabled systems, I2P and other network-enabled java applications
@@ -137,11 +129,7 @@ @@ -144,11 +136,7 @@
# NOTE: On Linux/Mac this is overridden in the i2prouter script; changes here will have no effect. # NOTE: On Linux/Mac this is overridden in the i2prouter script; changes here will have no effect.
# Windows users may wish to change this to %APPDATA%\I2P\wrapper.log # Windows users may wish to change this to %APPDATA%\I2P\wrapper.log
# System temp directory: # System temp directory:
@ -228,7 +231,7 @@ Debian wrapper.config to try to prevent confusion.
# Format of output for the log file. # Format of output for the log file.
# The format consists of the tokens 'L' for log level, 'P' for prefix, 'D' for thread, # The format consists of the tokens 'L' for log level, 'P' for prefix, 'D' for thread,
@@ -211,11 +199,7 @@ @@ -218,11 +206,7 @@
# Linux/Mac users, do not set here, see settings in the i2prouter script. # Linux/Mac users, do not set here, see settings in the i2prouter script.
# Directory must exist or the wrapper will fail to start. # Directory must exist or the wrapper will fail to start.
# System temp directory: # System temp directory:
@ -241,7 +244,7 @@ Debian wrapper.config to try to prevent confusion.
# #
# From i2prouter: # From i2prouter:
# #
@@ -229,10 +213,7 @@ @@ -236,10 +220,7 @@
# Linux/Mac users, do not set here, see settings in the i2prouter script. # Linux/Mac users, do not set here, see settings in the i2prouter script.
# Directory must exist or the wrapper will fail to start. # Directory must exist or the wrapper will fail to start.
# System temp directory: # System temp directory:
@ -253,7 +256,7 @@ Debian wrapper.config to try to prevent confusion.
#******************************************************************** #********************************************************************
# Wrapper General Properties # Wrapper General Properties
@@ -249,30 +230,3 @@ @@ -256,30 +237,3 @@
wrapper.umask=0022 wrapper.umask=0022
wrapper.java.umask=0022 wrapper.java.umask=0022
wrapper.logfile.umask=077 wrapper.logfile.umask=077

View File

@ -1,6 +1,6 @@
--- a/router/java/src/net/i2p/router/tasks/OOMListener.java --- a/router/java/src/net/i2p/router/tasks/OOMListener.java
+++ b/router/java/src/net/i2p/router/tasks/OOMListener.java +++ b/router/java/src/net/i2p/router/tasks/OOMListener.java
@@ -46,7 +46,7 @@ @@ -48,7 +48,7 @@
log.log(Log.CRIT, "free mem: " + Runtime.getRuntime().freeMemory() + log.log(Log.CRIT, "free mem: " + Runtime.getRuntime().freeMemory() +
" total mem: " + Runtime.getRuntime().totalMemory()); " total mem: " + Runtime.getRuntime().totalMemory());
if (_context.hasWrapper()) if (_context.hasWrapper())

View File

@ -1,5 +1,16 @@
2012-10-11 kytv
* Italian translation updates from Transifex
* i2prouter:
- Support for installing as a daemon with systemd on Arch Linux and Suse
- Support installing as a daemon on Slackware
2012-10-10 zzz
* ShellCommand: Fix launching all browsers at startup (ticket #453)
* stats.jsp: Sort groups by translated name
2012-10-09 zzz 2012-10-09 zzz
* Console, i2ptunnel: Warn on low ports * Console, i2ptunnel: Warn on low ports
* EventLog: Add more events
* NetDB: Increase floodfills again * NetDB: Increase floodfills again
* RouterInfo: Exit 1 on error in main() * RouterInfo: Exit 1 on error in main()
* SSU: * SSU:

View File

@ -30,6 +30,9 @@ findstr /V /R "^wrapper.logfile=" wrapper.config > wrapper.tmp1
findstr /V /R "^wrapper.java.pidfile=" wrapper.tmp1 > wrapper.tmp2 findstr /V /R "^wrapper.java.pidfile=" wrapper.tmp1 > wrapper.tmp2
findstr /V /R "^wrapper.pidfile=" wrapper.tmp2 > wrapper.new findstr /V /R "^wrapper.pidfile=" wrapper.tmp2 > wrapper.new
del /F /Q wrapper.tmp* del /F /Q wrapper.tmp*
echo #PORTABLE installation: >> wrapper.new
echo # The remaining lines should be commented out (or removed) >> wrapper.new
echo # for PORTABLE I2P installations: >> wrapper.new
echo wrapper.logfile=%%temp%%\wrapper.log >> wrapper.new echo wrapper.logfile=%%temp%%\wrapper.log >> wrapper.new
echo wrapper.java.pidfile=%%temp%%\routerjvm.pid >> wrapper.new echo wrapper.java.pidfile=%%temp%%\routerjvm.pid >> wrapper.new
echo wrapper.pidfile=%%temp%%\i2p.pid >> wrapper.new echo wrapper.pidfile=%%temp%%\i2p.pid >> wrapper.new

0
installer/resources/fixperms.bat Executable file → Normal file
View File

View File

@ -43,6 +43,12 @@ APP_LONG_NAME="I2P Service"
# fallback to echo is below, we can't set it to echo here. # fallback to echo is below, we can't set it to echo here.
GETTEXT=$(which gettext > /dev/null 2>&1) GETTEXT=$(which gettext > /dev/null 2>&1)
# Where to install the systemd service
SYSTEMD_SERVICE="/etc/systemd/system/${APP_NAME}.service"
if grep -q systemd /proc/cmdline; then
USE_SYSTEMD=1
fi
# If specified, the Wrapper will be run as the specified user. # If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write # IMPORTANT - Make sure that the user has the required privileges to write
# the PID file and wrapper.log files and that the directories exist. # the PID file and wrapper.log files and that the directories exist.
@ -1185,6 +1191,27 @@ installUpstart() {
fi fi
} }
installsystemd() {
if [ -d "/etc/systemd/system/" ]; then
cat << EOF >> "$SYSTEMD_SERVICE"
[Unit]
Description=$APP_LONG_NAME
After= local-fs.target network.target
[Service]
Type=forking
ExecStart=$I2P/i2prouter start
ExecReload=$I2P/i2prouter restart
ExecStop=$I2P/i2prouter stop
PIDFile=$I2P_CONFIG_DIR/i2p.pid
[Install]
WantedBy=multi-user.target
EOF
systemctl --system daemon-reload > /dev/null 2>&1
fi
}
installdaemon() { installdaemon() {
if [ `id | sed 's/^uid=//;s/(.*$//'` != "0" ] ; then if [ `id | sed 's/^uid=//;s/(.*$//'` != "0" ] ; then
eval echo `gettext 'Must be root to perform this action.'` eval echo `gettext 'Must be root to perform this action.'`
@ -1218,16 +1245,36 @@ installdaemon() {
/sbin/chkconfig "$APP_NAME" on /sbin/chkconfig "$APP_NAME" on
fi fi
fi fi
elif [ -f /etc/arch-release ]; then elif [ -f /etc/slackware-version ]; then
eval echo `gettext 'Detected Arch Linux:'` eval echo `gettext 'Detected Slackware Linux:'`
if [ -f /etc/rc.d/i2prouter ]; then if [ -e "/etc/rc.d/rc.i2p" -o -f "/etc/rc.d/rc.i2p.new" ]; then
eval echo `gettext 'Initscript from AUR package found. Refusing to continue.'` echo "Found initscript from I2P Slackpkg. Aborting." >&2
exit 1 exit 1
elif [ -f /etc/rc.d/i2p ]; then else
if grep -q ${APP_NAME}router /etc/rc.d/rc.local > /dev/null 2>&1; then
eval echo `gettext ' The $APP_LONG_NAME daemon is already installed.'` eval echo `gettext ' The $APP_LONG_NAME daemon is already installed.'`
exit 1 exit 1
else else
echo "#!/bin/bash" >> /etc/rc.d/${APP_NAME} echo "${REALDIR}/${APP_NAME}router start" >> /etc/rc.d/rc.local
if [ ! -e /etc/rc.d/rc.local_shutdown ]; then
echo "#!/bin/sh" >> /etc/rc.d/rc.local_shutdown
fi
echo "${REALDIR}/${APP_NAME}router stop" >> /etc/rc.d/rc.local_shutdown
chmod 755 /etc/rc.d/rc.local_shutdown
fi
fi
elif [ -f /etc/arch-release ]; then
eval echo `gettext 'Detected Arch Linux:'`
if [ -f "/etc/rc.d/i2prouter" -o -f "/usr/lib/systemd/system/i2prouter.service" ]; then
eval echo `gettext 'AUR package found. Refusing to continue.'`
exit 1
elif [ -f /etc/rc.d/i2p -a ! "$USE_SYSTEMD" = "1" ] || [ -f "$SYSTEMD_SERVICE" -a "$USE_SYSTEMD" = "1" ]; then
eval echo `gettext ' The $APP_LONG_NAME daemon is already installed.'`
exit 1
else
if [ ! -f "/etc/init.d/i2p" ]; then
if [ "$USE_SYSTEMD" != "1" ]; then
echo "#!/bin/bash" > /etc/rc.d/${APP_NAME}
echo >> /etc/rc.d/${APP_NAME} echo >> /etc/rc.d/${APP_NAME}
echo ". /etc/rc.conf" >> /etc/rc.d/${APP_NAME} echo ". /etc/rc.conf" >> /etc/rc.d/${APP_NAME}
echo ". /etc/rc.d/functions" >> /etc/rc.d/${APP_NAME} echo ". /etc/rc.d/functions" >> /etc/rc.d/${APP_NAME}
@ -1274,20 +1321,39 @@ installdaemon() {
echo "esac" >> /etc/rc.d/${APP_NAME} echo "esac" >> /etc/rc.d/${APP_NAME}
chmod 755 /etc/rc.d/${APP_NAME} chmod 755 /etc/rc.d/${APP_NAME}
chown root:root /etc/rc.d/${APP_NAME} chown root:root /etc/rc.d/${APP_NAME}
else
# We'll end up here if systemd is enabled.
# If systemd is enabled we don't need the initscript
rm -f /etc/rc.d/${APP_NAME}
fi
fi
if [ ! -f "${SYSTEMD_SERVICE}" ]; then
installsystemd
fi
if ! grep -q systemd /proc/cmdline; then
eval echo `gettext ' The $APP_LONG_NAME daemon has been installed.'` eval echo `gettext ' The $APP_LONG_NAME daemon has been installed.'`
eval echo `gettext ' Add \"i2p\" to the DAEMONS variable in /etc/rc.conf to enable.'` eval echo `gettext ' Add \"i2p\" to the DAEMONS variable in /etc/rc.conf to enable.'`
fi
fi fi
elif [ -f /etc/SuSE-release ] ; then elif [ -f /etc/SuSE-release ] ; then
eval echo `gettext 'Detected SuSE or SLES:'` eval echo `gettext 'Detected SuSE or SLES:'`
if [ -f "/etc/init.d/$APP_NAME" ] ; then if [ -f /etc/rc.d/${APP_NAME} -a ! "$USE_SYSTEMD" = "1" ] || [ -f "$SYSTEMD_SERVICE" -a "$USE_SYSTEMD" = "1" ]; then
eval echo `gettext ' The $APP_LONG_NAME daemon is already installed.'` eval echo `gettext ' The $APP_LONG_NAME daemon is already installed.'`
exit 1 exit 1
else else
if [ ! -f "/etc/init.d/$APP_NAME" ]; then
if [ "$USE_SYSTEMD" != "1" ]; then
eval echo `gettext ' Installing the $APP_LONG_NAME daemon..'` eval echo `gettext ' Installing the $APP_LONG_NAME daemon..'`
ln -s "$REALPATH" "/etc/init.d/$APP_NAME" ln -s "$REALPATH" "/etc/init.d/$APP_NAME"
sed -i "s/Default-Start: 2 3 4 5/Default-Start: 5/" $0 sed -i "s/Default-Start: 2 3 4 5/Default-Start: 5/" $0
insserv "/etc/init.d/$APP_NAME" insserv "/etc/init.d/$APP_NAME"
else
rm -f "/etc/init.d/$APP_NAME"
fi
fi
if [ ! -f "${SYSTEMD_SERVICE}" ]; then
installsystemd
fi
fi fi
elif [ -f /etc/lsb-release -o -f /etc/debian_version ] ; then elif [ -f /etc/lsb-release -o -f /etc/debian_version ] ; then
eval echo `gettext 'Detected Debian-based distribution:'` eval echo `gettext 'Detected Debian-based distribution:'`
@ -1471,21 +1537,32 @@ removedaemon() {
eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'` eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'`
exit 1 exit 1
fi fi
elif [ -f /etc/slackware-version ] ; then
eval echo `gettext 'Detected Slackware Linux:'`
if grep -q ${APP_NAME}router /etc/rc.d/rc.local > /dev/null 2>&1 ; then
eval echo `gettext ' Removing $APP_LONG_NAME daemon...'`
sed -i "/i2prouter/d" /etc/rc.d/rc.local /etc/rc.d/rc.local_shutdown
else
eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'`
exit 1
fi
elif [ -f /etc/arch-release ] ; then elif [ -f /etc/arch-release ] ; then
eval echo `gettext 'Detected Arch Linux:'` eval echo `gettext 'Detected Arch Linux:'`
if [ -f "/etc/rc.d/$APP_NAME" ] ; then if [ -f "/etc/rc.d/$APP_NAME" -o -f "$SYSTEMD_SERVICE" ] ; then
eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` eval echo `gettext ' Removing $APP_LONG_NAME daemon...'`
rm -f "/etc/rc.d/$APP_NAME" rm -f "/etc/rc.d/$APP_NAME"
rm -f "$SYSTEMD_SERVICE"
else else
eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'` eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'`
exit 1 exit 1
fi fi
elif [ -f /etc/SuSE-release ] ; then elif [ -f /etc/SuSE-release ] ; then
eval echo `gettext 'Detected SuSE or SLES:'` eval echo `gettext 'Detected SuSE or SLES:'`
if [ -f "/etc/init.d/$APP_NAME" ] ; then if [ -f "/etc/init.d/$APP_NAME" -o ${SYSTEMD_SERVICE} ] ; then
eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` eval echo `gettext ' Removing $APP_LONG_NAME daemon...'`
insserv -r "/etc/init.d/$APP_NAME" insserv -r "/etc/init.d/$APP_NAME"
rm -f "/etc/init.d/$APP_NAME" rm -f "/etc/init.d/$APP_NAME"
rm -f "$SYSTEMD_SERVICE"
else else
eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'` eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'`
exit 1 exit 1
@ -1720,6 +1797,7 @@ checkifstartingasroot() {
exit 1 exit 1
fi fi
} }
docommand() { docommand() {
case "$COMMAND" in case "$COMMAND" in
'console') 'console')
@ -1803,7 +1881,9 @@ docommand() {
if [ ! `grep ^RUN_AS_USER $0` ]; then if [ ! `grep ^RUN_AS_USER $0` ]; then
showsetusermesg showsetusermesg
fi fi
echo
echo "You may want to disable the browser from launching at startup at"
echo "http://127.0.0.1:7657/configclients"
;; ;;
'remove' | 'uninstall') 'remove' | 'uninstall')

View File

@ -52,8 +52,7 @@
<li class="tidylist"><b>Invisible Internet Project (I2P) Official Website</b><br><a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a> and <li class="tidylist"><b>Invisible Internet Project (I2P) Official Website</b><br><a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a> and
its mirror <a href="http://i2p-projekt.i2p/" target="_blank">i2p-projekt.i2p</a>: Secure and its mirror <a href="http://i2p-projekt.i2p/" target="_blank">i2p-projekt.i2p</a>: Secure and
anonymous connections to <a href="http://www.i2p2.de/" target="_blank">www.i2p2.de</a>. There's also an official mirror running on <a href="http://geti2p.net/" target="_blank">geti2p.net</a>. If you want to know more about how I2P works or how you can participate, this is your first port of call!</li> anonymous connections to <a href="http://www.i2p2.de/" target="_blank">www.i2p2.de</a>. There's also an official mirror running on <a href="http://geti2p.net/" target="_blank">geti2p.net</a>. If you want to know more about how I2P works or how you can participate, this is your first port of call!</li>
<li class="tidylist"><b>I2P Community Forums</b><br><a href="http://forum.i2p/" target="_blank">forum.i2p</a>: A secure <li class="tidylist"><b>I2P Community Forums</b><br><a href="http://forum.i2p/" target="_blank">forum.i2p</a>: A secure and anonymous connection to an online forum community where problems and ideas relating to I2P and associated topics are discussed. There is also <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> for development related discussions.</li>
and anonymous connection to <a href="http://forum.i2p2.de/" target="_blank">forum.i2p2.de</a>, an online forum community where developers and users alike discuss problems and ideas relating to I2P and associated topics, and <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> for both end users and developers.</li>
<li class="tidylist"><b>I2P Anonymous Pastebin</b><br><a href="http://pastethis.i2p/" target="_blank">pastethis.i2p</a>: Secure and <li class="tidylist"><b>I2P Anonymous Pastebin</b><br><a href="http://pastethis.i2p/" target="_blank">pastethis.i2p</a>: Secure and
anonymous paste service allowing anonymous text and text-based code sharing over I2P.</li> anonymous paste service allowing anonymous text and text-based code sharing over I2P.</li>
<li class="tidylist"><b>Echelon's I2P Resources</b><br><a href="http://echelon.i2p/" target="_blank">echelon.i2p</a>: I2P software <li class="tidylist"><b>Echelon's I2P Resources</b><br><a href="http://echelon.i2p/" target="_blank">echelon.i2p</a>: I2P software
@ -84,7 +83,7 @@
<li class="tidylist"><b>Check Your Proxy Setttings</b><br>If <li class="tidylist"><b>Check Your Proxy Setttings</b><br>If
you cannot see any eepsites at all (not even <a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a>), you cannot see any eepsites at all (not even <a href="http://www.i2p2.i2p/" target="_blank">www.i2p2.i2p</a>),
make sure your browser's proxy is set to access http traffic (<i>not</i> https, <i>not</i> socks) via <code>127.0.0.1 port 4444</code>. If you need some help, there's <a href="http://www.i2p2.i2p/htproxyports.html" target="_blank">a guide</a> to configuring your browser for I2P use, also <a href="http://www.i2p2.de/htproxyports.html" target="_blank">available</a> on the normal web. make sure your browser's proxy is set to access http traffic (<i>not</i> https, <i>not</i> socks) via <code>127.0.0.1 port 4444</code>. If you need some help, there's <a href="http://www.i2p2.de/htproxyports" target="_blank">a guide</a> to configuring your browser for I2P use.
</li> </li>
<li class="tidylist"><b>Check Your Logs</b><br><a href="/logs">Logs</a> may help resolve a problem. You may wish to paste excerpts in a <a href="http://forum.i2p/viewforum.php?f=10" target="_blank">forum</a> for help, or perhaps <a href="http://pastethis.i2p/" target="_blank">paste</a> it instead and reference the link on IRC for help. <li class="tidylist"><b>Check Your Logs</b><br><a href="/logs">Logs</a> may help resolve a problem. You may wish to paste excerpts in a <a href="http://forum.i2p/viewforum.php?f=10" target="_blank">forum</a> for help, or perhaps <a href="http://pastethis.i2p/" target="_blank">paste</a> it instead and reference the link on IRC for help.
@ -106,8 +105,7 @@
<li class="tidylist"><b>Getting Support Online</b><br>You may also want <li class="tidylist"><b>Getting Support Online</b><br>You may also want
to review the information on the <a href="http://www.i2p2.i2p/" target="_blank">I2P website</a>, to review the information on the <a href="http://www.i2p2.i2p/" target="_blank">I2P website</a>,
post messages to the <a href="http://forum.i2p/" target="_blank">I2P discussion forum</a> (also reachable <a href="http://forum.i2p2.de/" target="_blank">on the internet</a>), post messages to the <a href="http://forum.i2p/" target="_blank">I2P discussion forum</a> or swing by
or swing by
<a href="irc://127.0.0.1:6668/i2p-help">#i2p-help</a>, <a href="irc://127.0.0.1:6668/i2p">#i2p</a> or <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> on I2P's internal IRC network (<code>irc.postman.i2p</code> or <code>irc.freshcoffee.i2p</code>). These channels are also available outside of I2P's encrypted, anonymous network via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>. <a href="irc://127.0.0.1:6668/i2p-help">#i2p-help</a>, <a href="irc://127.0.0.1:6668/i2p">#i2p</a> or <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> on I2P's internal IRC network (<code>irc.postman.i2p</code> or <code>irc.freshcoffee.i2p</code>). These channels are also available outside of I2P's encrypted, anonymous network via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.
</li> </li>

View File

@ -33,8 +33,15 @@ wrapper.java.command=java
#wrapper.java.command=%JAVA_HOME%/bin/java #wrapper.java.command=%JAVA_HOME%/bin/java
# Gentoo uses the following: # Gentoo uses the following:
#wrapper.java.command=/etc/java-config-2/current-system-vm/bin/java #wrapper.java.command=/etc/java-config-2/current-system-vm/bin/java
#
# Tell the Wrapper to log the full generated Java command line. # Tell the Wrapper to log the full generated Java command line.
#wrapper.java.command.loglevel=INFO #wrapper.java.command.loglevel=INFO
##
## PORTABLE installation:
# A portable Java installation can be configured thusly:
#set.JAVA_HOME=C:\path\to\your\portable\java\installation
#wrapper.java.command=%JAVA_HOME\bin\java.exe
##
# Java Main class. This class must implement the WrapperListener interface # Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper # or guarantee that the WrapperManager class is initialized. Helper

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Monotone"; public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION; public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 13; public final static long BUILD = 14;
/** for example "-test" */ /** for example "-test" */
public final static String EXTRA = ""; public final static String EXTRA = "";