Compare commits
15 Commits
i2pbote-0.
...
v0.4.1
Author | SHA1 | Date | |
---|---|---|---|
d3cb0ab3f6 | |||
e5fa4706db | |||
ecdd2ee426 | |||
784a716f0a | |||
afdde691b4 | |||
65d9439e03 | |||
8d19c4c78a | |||
8731a72887 | |||
9e1b42134c | |||
17b4d035eb | |||
d967d50c51 | |||
42770cf01b | |||
c910e17f6c | |||
d408242173 | |||
c52429f393 |
@ -53,6 +53,9 @@ subethasmtp-3.1.7.jar
|
||||
# Downloaded JUnit libraries
|
||||
junit-4.8.1.jar
|
||||
|
||||
# Downloaded Mockito libraries
|
||||
mockito-core-2.0.31-beta.jar
|
||||
|
||||
# Downloaded jMock libraries
|
||||
cglib-nodep-2.2.3.jar
|
||||
hamcrest-core-1.3.jar
|
||||
|
19
build.xml
19
build.xml
@ -12,6 +12,8 @@
|
||||
|
||||
<property name="junit.filename" value="junit-4.8.1.jar"/>
|
||||
<property name="junit.url" value="http://sourceforge.net/projects/junit/files/junit/4.8.1/junit-4.8.1.jar/download"/>
|
||||
<property name="mockito.filename" value="mockito-core-2.0.31-beta.jar"/>
|
||||
<property name="mockito.url" value="https://bintray.com/artifact/download/szczepiq/maven/org/mockito/mockito-core/2.0.31-beta/mockito-core-2.0.31-beta.jar"/>
|
||||
<!-- Just the main jMock .jar, the .zip contains this and dependencies -->
|
||||
<property name="jmock.filename" value="jmock-2.6.0.jar"/>
|
||||
<property name="jmock.archive" value="jmock-2.6.0-jars.zip"/>
|
||||
@ -350,7 +352,7 @@
|
||||
<!-- make the update xpi2p -->
|
||||
<copy file="plugin/plugin.config" todir="plugin/plugin.tmp" overwrite="true" />
|
||||
<exec executable="echo" osfamily="unix" failonerror="true" output="plugin/plugin.tmp/plugin.config" append="true">
|
||||
<arg value="version=${version}-b${build.number}" />
|
||||
<arg value="version=${version}" />
|
||||
</exec>
|
||||
<exec executable="echo" osfamily="unix" failonerror="true" output="plugin/plugin.tmp/plugin.config" append="true">
|
||||
<arg value="update-only=true" />
|
||||
@ -383,7 +385,7 @@
|
||||
<!-- make the install xpi2p -->
|
||||
<copy file="plugin/plugin.config" todir="plugin/plugin.tmp" overwrite="true" />
|
||||
<exec executable="echo" osfamily="unix" failonerror="true" output="plugin/plugin.tmp/plugin.config" append="true">
|
||||
<arg value="version=${version}-b${build.number}" />
|
||||
<arg value="version=${version}" />
|
||||
</exec>
|
||||
<exec executable="${makeplugin}" inputstring="${release.password.su3}" failonerror="true" >
|
||||
<arg value="plugin/plugin.tmp" />
|
||||
@ -650,11 +652,14 @@
|
||||
<target name="junit" depends="compile">
|
||||
<available property="junitexists" file="${lib}/${junit.filename}" type="file"/>
|
||||
<ant target="downloadjunit"/>
|
||||
<available property="mockitoexists" file="${lib}/${mockito.filename}" type="file"/>
|
||||
<ant target="downloadmockito"/>
|
||||
<available property="jmockexists" file="${lib}/${jmock.filename}" type="file"/>
|
||||
<ant target="downloadjmock"/>
|
||||
|
||||
<path id="junitcp">
|
||||
<pathelement location="${lib}/${junit.filename}"/>
|
||||
<pathelement location="${lib}/${mockito.filename}"/>
|
||||
<pathelement path="${jmockcp}"/>
|
||||
<pathelement location="./ant_build/classes"/>
|
||||
<path refid="cp"/>
|
||||
@ -702,6 +707,16 @@
|
||||
<get src="${junit.url}" verbose="true" dest="${lib}/${junit.filename}"/>
|
||||
</target>
|
||||
|
||||
<target name="downloadmockito" unless="mockitoexists">
|
||||
<input message="Mockito not found, download now?" validargs="y,n" addproperty="userinput.mockito"/>
|
||||
<fail message="OK, aborting build." >
|
||||
<condition>
|
||||
<equals arg1="${userinput.mockito}" arg2="n"/>
|
||||
</condition>
|
||||
</fail>
|
||||
<get src="${mockito.url}" verbose="true" dest="${lib}/${mockito.filename}"/>
|
||||
</target>
|
||||
|
||||
<target name="downloadjmock" unless="jmockexists">
|
||||
<input message="jMock not found, download now?" validargs="y,n" addproperty="userinput.jmock"/>
|
||||
<fail message="OK, aborting build." >
|
||||
|
14
history.txt
14
history.txt
@ -1,6 +1,20 @@
|
||||
I2P-Bote Version History
|
||||
------------------------
|
||||
|
||||
0.4.1 (Released on Sep 12, 2015)
|
||||
* Fixed bugs:
|
||||
o ConcurrentModificationException errors in logs
|
||||
o User guide and FAQ not loading translations
|
||||
|
||||
0.4 (Released on Aug 21, 2015)
|
||||
* Fixed bugs:
|
||||
o Email checking would get stuck if no new mail was found
|
||||
o "Last checked" time was inconsistent for manual checks
|
||||
o Anonymous emails would never send
|
||||
* Removed build number from version
|
||||
* Skipped 0.3.* series
|
||||
o 0.3.1 is less than 0.3-b195; would need to go to 0.3.196
|
||||
|
||||
0.3 (Released on Aug 15, 2015)
|
||||
* New default theme based on Material design
|
||||
* New features:
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Arabic (http://www.transifex.com/otf/I2P/language/ar/)\n"
|
||||
@ -18,47 +18,47 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "لا توجد هوية متوافقة مع المرسل:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "كلمة المرور القديمة غير صحيحة."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "كلمة المرور الجديدة والتأكيد غير صالحة."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/otf/I2P/language/cs/)\n"
|
||||
@ -16,47 +16,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Žádná identita neodpovídá poli odesílatel/od:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Staré heslo je špatně zadané."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Nové heslo a jeho potvrzení se neshodují."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -16,9 +16,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-21 21:11+0000\n"
|
||||
"Last-Translator: Lars Schimmer <echelon@i2pmail.org>\n"
|
||||
"Language-Team: German (http://www.transifex.com/otf/I2P/language/de/)\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -26,47 +26,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "hellblau"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vanille"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Keine Mailidentität stimmt mit diesem Absenderfeld (\"Von\") überein:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Prüfe Passwort"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Das alte Kennwort ist leider nicht korrekt."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Das neue Kennwort und die Kennwortbestätigung stimmen nicht überein."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Verschlüssele Identitäten"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Verschlüssele Adressbuch"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Verschlüssele Verzeichnis"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Aktualisiere Passwortdatei"
|
||||
|
||||
@ -463,19 +463,19 @@ msgstr "Antwort an:"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Remove this recipient"
|
||||
msgstr ""
|
||||
msgstr "Diesen Empfänger entfernen"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add this recipient to the address book"
|
||||
msgstr ""
|
||||
msgstr "Diesen Empfänger zum Adressbuch hinzfügen"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Select recipients from address book"
|
||||
msgstr ""
|
||||
msgstr "Empfänger aus Adressbuch auswählen"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add another recipient field"
|
||||
msgstr ""
|
||||
msgstr "Einen weiteren Empfänger hinzufügen"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Subject:"
|
||||
@ -1121,11 +1121,11 @@ msgstr "I2P-Bote, Version {0}"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "To submit bug reports or feature requests:"
|
||||
msgstr ""
|
||||
msgstr "Um Fehler oder Wünsche zu äussern:"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "click here"
|
||||
msgstr ""
|
||||
msgstr "Hier klicken"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Developers:"
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-02-14 22:33+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: English (http://www.transifex.com/projects/p/I2P/language/"
|
||||
@ -17,47 +17,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Light Blue"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vanilla"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "No identity matches the sender/from field: "
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Checking password"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "The old password is not correct."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "The new password and the confirmation password do not match."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Re-encrypting identities"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Re-encrypting addressbook"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Re-encrypting folder"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Updating password file"
|
||||
|
||||
|
@ -22,7 +22,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-09 07:14+0000\n"
|
||||
"Last-Translator: blabla <blabla@trash-mail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/otf/I2P/language/es/)\n"
|
||||
@ -32,47 +32,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Celeste"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vainilla"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "No existe ninguna identidad que concuerde con el campo remitente:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Comprobando contraseña"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "La contraseña antigua no es correcta."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "La nueva contraseña y la confirmación de ésta no coinciden."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Volviendo a cifrar identidades"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Volviendo a cifrar libreta de direcciones"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Volviendo a cifrar carpeta"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Actualizando fichero de contraseña"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Finnish (http://www.transifex.com/otf/I2P/language/fi/)\n"
|
||||
@ -15,47 +15,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Materiaali"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Vaaleansininen"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Tarkistetaan salasana"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Vanha salasana ei ole oikea."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Uusi salasana ja vahvistussalasana eivät täsmää."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Päivitetään salasanatiedosto"
|
||||
|
||||
|
@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-06 12:54+0000\n"
|
||||
"Last-Translator: Towinet\n"
|
||||
"Language-Team: French (http://www.transifex.com/otf/I2P/language/fr/)\n"
|
||||
@ -20,49 +20,49 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Matériau"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Bleu clair"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vanille"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Aucune identité ne correspond au champ \"Expéditeur/De\":"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Vérification de mot de passe"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "L'ancien mot de passe est incorrect."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr ""
|
||||
"Le nouveau mot de passe et le mot de passe de confirmation ne correspondent "
|
||||
"pas."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Re-chiffrement d'identités"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Re-chiffrement de carnet d'adresses"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Re-chiffrement de dossier"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Mise à jour du fichier de mot de passe"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/otf/I2P/language/hu/)\n"
|
||||
@ -15,47 +15,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Világoskék"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Nincsenek azonossági egyezések a feladó/-tól mezőben:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "A régi jelszó nem megfelelő."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Az új jelszó és a megerősítő jelszó nem egyezik."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Indonesian (http://www.transifex.com/otf/I2P/language/id/)\n"
|
||||
@ -15,47 +15,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Tidak ada identitas yang cocok dengan field pengirim/dari:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Kata sandi lama tidak benar."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Kata sandi baru dan konfirmasi kata sandi tidak cocok."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -16,7 +16,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/otf/I2P/language/it/)\n"
|
||||
@ -26,47 +26,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Materiale"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Azzurro"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vanilla"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Nessuna identità fa match con il campo mittente/da:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Controllo della password"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "La vecchia password non è corretta."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "La nuova password e quella di conferma non sono uguali."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Re-criptando le identità"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Re-criptando la rubrica"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Re-criptando la cartella"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Aggiornamento del file della password"
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Japanese (http://www.transifex.com/otf/I2P/language/ja/)\n"
|
||||
@ -16,47 +16,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "素材"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "ライトブルー"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "バニラ"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "送信者/差出人欄と一致するIDが見つかりませんでした:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "パスワードを確認しています"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "古いパスワードが間違っています。"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "新しいパスワードと確認用のパスワードが一致しません。"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "IDを再暗号化しています"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "アドレス帳を再暗号化しています"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "フォルダを再暗号化しています"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "パスワードファイルを更新しています"
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Norwegian Bokmål (http://www.transifex.com/otf/I2P/language/"
|
||||
@ -18,47 +18,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Ingen identitet matcher med sender/fra område"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Det gamle passordet er ikke korrekt."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Det nye passordet og bekreftelsespassordet matcher ikke."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/otf/I2P/language/nl/)\n"
|
||||
@ -22,47 +22,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Materiaal"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Lichtblauw"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vanille"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Geen identiteit komt overeen met het afzender/van veld: "
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Bezig met controleren van wachtwoord"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Het oude wachtwoord is onjuist."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Het nieuwe wachtwoord en de bevestiging komen niet overeen."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Bezig met opnieuw versleutelen van identiteiten"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Bezig met opnieuw versleutelen van adresboek"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Bezig met opnieuw versleutelen van map"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Bezig met bijwerken van wachtwoordbestand"
|
||||
|
||||
|
@ -6,14 +6,15 @@
|
||||
# polacco <polacco@i2pmail.org>, 2012,2014
|
||||
# seb, 2014
|
||||
# seb, 2014
|
||||
# Taporpo Ne <taporpone@gmail.com>, 2015
|
||||
# Warton <businesshehe@yahoo.com>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-30 22:13+0000\n"
|
||||
"Last-Translator: Taporpo Ne <taporpone@gmail.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/otf/I2P/language/pl/)\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -22,49 +23,49 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
msgid "Material"
|
||||
msgstr "Materiał"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
msgid "Light Blue"
|
||||
msgstr "Jasnoniebieski"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Wanilia"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Żadna tożsamość nie zgadza się z wysyłającym/z pola Od:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
msgstr "Sprawdzanie hasła"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Stare hasło jest nieprawodłowe."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Nowe hasło i potwierdzenie hasła nie zgadza się."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
msgstr "Ponowne szyfrowanie tożsamości"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
msgstr "Ponowne szyfrowanie książki adresowej"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
msgstr "Ponowne szyfrowanie folderu"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
msgstr "Aktualizacja pliku hasła"
|
||||
|
||||
#: src/main/java/i2p/bote/crypto/ECDH256_ECDSA256.java:45
|
||||
msgid "256-bit Elliptic Curve Encryption"
|
||||
@ -182,7 +183,7 @@ msgstr "Brama wyłączona"
|
||||
#: src/main/java/i2p/bote/web/JSPHelper.java:247
|
||||
#, java-format
|
||||
msgid "No identity matches the sender/from field: {0}"
|
||||
msgstr ""
|
||||
msgstr "Żadna tożsamość nie zgadza się z wysyłającym/z pola: {0}"
|
||||
|
||||
#: src/main/java/i2p/bote/web/JSPHelper.java:250
|
||||
#, java-format
|
||||
@ -222,7 +223,7 @@ msgstr "Osiągalność %"
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:225
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:230
|
||||
msgid "Untested"
|
||||
msgstr ""
|
||||
msgstr "Nietestowane"
|
||||
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:138
|
||||
msgid "Banned Peers:"
|
||||
@ -239,22 +240,22 @@ msgstr "Powód bana"
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:182
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:187
|
||||
msgid "Reachable"
|
||||
msgstr ""
|
||||
msgstr "Osiągalny"
|
||||
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:184
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:188
|
||||
msgid "Unreachable"
|
||||
msgstr ""
|
||||
msgstr "Nie osiągalny"
|
||||
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:221
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:228
|
||||
msgid "Good"
|
||||
msgstr ""
|
||||
msgstr "Dobre"
|
||||
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:223
|
||||
#: src/main/java/i2p/bote/web/PeerInfoTag.java:229
|
||||
msgid "Unreliable"
|
||||
msgstr ""
|
||||
msgstr "Niepewne"
|
||||
|
||||
#: src/main/java/i2p/bote/web/SendEmailTag.java:73
|
||||
msgid "Error: Please add at least one recipient."
|
||||
@ -455,19 +456,19 @@ msgstr "Odpowiedz do:"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Remove this recipient"
|
||||
msgstr ""
|
||||
msgstr "Usuń tego odbiorce"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add this recipient to the address book"
|
||||
msgstr ""
|
||||
msgstr "Dodaj tego odbiorcę do książki adresowej"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Select recipients from address book"
|
||||
msgstr ""
|
||||
msgstr "Wybierz odbiorców z książki adresowej"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add another recipient field"
|
||||
msgstr ""
|
||||
msgstr "Dodaj kolejnego odbiorcę"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Subject:"
|
||||
@ -510,10 +511,12 @@ msgid ""
|
||||
"The email could not be found in this folder. It was probably moved to the "
|
||||
"Sent folder."
|
||||
msgstr ""
|
||||
"Ten email nie posiada prawidłowego podpisu. Najprawdopodobniej został "
|
||||
"przeniesiony do Wysłane"
|
||||
|
||||
#: src/main/webapp/showEmail.jsp
|
||||
msgid "The email could not be found in this folder."
|
||||
msgstr ""
|
||||
msgstr "Email nie został odnaleziony w tym folderze"
|
||||
|
||||
#: src/main/webapp/showEmail.jsp
|
||||
msgid "Signature:"
|
||||
@ -553,19 +556,19 @@ msgstr "Re:"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Import Identities"
|
||||
msgstr ""
|
||||
msgstr "Import tożsamości"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Please select an identities file and try again."
|
||||
msgstr ""
|
||||
msgstr "Proszę wybierz tożsamość po czym spróbuj ponownie"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "The identities have been imported."
|
||||
msgstr ""
|
||||
msgstr "Tożsamości zostały zimportowane"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Identities file:"
|
||||
msgstr ""
|
||||
msgstr "Pliki tożsamości:"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Password:"
|
||||
@ -573,15 +576,15 @@ msgstr "Hasło:"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "(leave blank if identities not encrypted)"
|
||||
msgstr ""
|
||||
msgstr "(pozostaw puste jeśli tożsamości nie są szyfrowane)"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Overwrite all existing identities:"
|
||||
msgstr ""
|
||||
msgstr "Nadpisz wszystkie istniejące tożsamości"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Duplicates: replace existing identity:"
|
||||
msgstr ""
|
||||
msgstr "Duplikat: zastąp istniejącą tożsamość:"
|
||||
|
||||
#: src/main/webapp/importIdentities.jsp
|
||||
msgid "Import"
|
||||
@ -627,11 +630,11 @@ msgstr "Cel:"
|
||||
|
||||
#: src/main/webapp/exportIdentities.jsp
|
||||
msgid "Export Identities"
|
||||
msgstr ""
|
||||
msgstr "Eksportuj tożsamości"
|
||||
|
||||
#: src/main/webapp/exportIdentities.jsp
|
||||
msgid "(leave blank to not encrypt identities)"
|
||||
msgstr ""
|
||||
msgstr "(pozostaw puste by nie szyfrować tożsamości)"
|
||||
|
||||
#: src/main/webapp/exportIdentities.jsp
|
||||
msgid "Confirm:"
|
||||
@ -639,7 +642,7 @@ msgstr "Potwierdź:"
|
||||
|
||||
#: src/main/webapp/exportIdentities.jsp
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
msgstr "Eksport"
|
||||
|
||||
#: src/main/webapp/publishDestination.jsp
|
||||
msgid "Add Email Destination to Directory"
|
||||
@ -885,7 +888,7 @@ msgstr ""
|
||||
|
||||
#: src/main/webapp/noIdentities.jsp
|
||||
msgid "No Identity"
|
||||
msgstr ""
|
||||
msgstr "Brak tożsamości"
|
||||
|
||||
#: src/main/webapp/noIdentities.jsp
|
||||
msgid "No Email Identity Defined"
|
||||
@ -945,7 +948,7 @@ msgstr "Opis"
|
||||
|
||||
#: src/main/webapp/identities.jsp
|
||||
msgid "Check mail for this identity"
|
||||
msgstr ""
|
||||
msgstr "Sprawdź pocztę dla tej tożsamości"
|
||||
|
||||
#: src/main/webapp/identities.jsp
|
||||
msgid "New Identity"
|
||||
@ -1023,7 +1026,7 @@ msgstr ""
|
||||
|
||||
#: src/main/webapp/editIdentity.jsp
|
||||
msgid "(2 chars takes seconds, 3 takes minutes, etc.)"
|
||||
msgstr ""
|
||||
msgstr "(2 znaki zajmują sekundy, 3 zajmują minuty itd.)"
|
||||
|
||||
#: src/main/webapp/editIdentity.jsp
|
||||
msgid "Email Destination:"
|
||||
@ -1035,7 +1038,7 @@ msgstr "Domyślna Tożsamość:"
|
||||
|
||||
#: src/main/webapp/editIdentity.jsp
|
||||
msgid "Include in global check:"
|
||||
msgstr ""
|
||||
msgstr "Zawrzyj w sprawdzeniu globalnym"
|
||||
|
||||
#: src/main/webapp/editIdentity.jsp
|
||||
msgid "Private keys:"
|
||||
@ -1071,7 +1074,7 @@ msgstr "Proszę czekać..."
|
||||
|
||||
#: src/main/webapp/submitIdentity.jsp
|
||||
msgid "The Email Identity is being generated. This may take a while."
|
||||
msgstr ""
|
||||
msgstr "Tożsamość jest generowana. Może to potrwać kilka minut."
|
||||
|
||||
#: src/main/webapp/submitIdentity.jsp
|
||||
msgid "The email identity has been saved."
|
||||
@ -1111,15 +1114,15 @@ msgstr "I2P-Bote Wersja {0}"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "To submit bug reports or feature requests:"
|
||||
msgstr ""
|
||||
msgstr "Aby zgłosić buga lub poprosić o nową funkcje:"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "click here"
|
||||
msgstr ""
|
||||
msgstr "Kliknij tu"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Developers:"
|
||||
msgstr ""
|
||||
msgstr "Deweloperzy"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Click to send an email"
|
||||
@ -1131,11 +1134,11 @@ msgstr "Opinia na temat I2P-Bote"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Technical concept, implementation, user interface"
|
||||
msgstr ""
|
||||
msgstr "Koncept techniczny, implementacja, interfejs użytkownika"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "User experience, extended features, Android app"
|
||||
msgstr ""
|
||||
msgstr "Wrażenia użytkowników, rozszerzone funkcje, aplikacja Android"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Contributors:"
|
||||
@ -1143,7 +1146,7 @@ msgstr "Współtwórcy:"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Technical concept, translation, QA, usability, technical feedback"
|
||||
msgstr ""
|
||||
msgstr "Koncept techniczny, tłumaczenie, QA, użyteczność, opinie techniczne"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Pluginization, technical feedback"
|
||||
@ -1151,7 +1154,7 @@ msgstr "Wtyczki, opinie techniczne"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Seedless integration"
|
||||
msgstr ""
|
||||
msgstr "Integracja z Seedless"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Russian translation"
|
||||
@ -1207,7 +1210,7 @@ msgstr "Węgierskie tłumaczenie"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Alpha testing"
|
||||
msgstr ""
|
||||
msgstr "Testy alfa"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Code fixes, translation updates from tx"
|
||||
@ -1260,7 +1263,7 @@ msgstr "Ustawienia zapisane."
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
msgstr "Ogólne"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Check for mail every {0} minutes"
|
||||
@ -1276,7 +1279,7 @@ msgstr "Włącz IMAP na porcie {0}"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Enable SMTP on port {0}"
|
||||
msgstr ""
|
||||
msgstr "Włącz SMTP na porcie {0}"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Theme:"
|
||||
@ -1284,7 +1287,7 @@ msgstr "Motyw:"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
msgstr "Prywatność"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Use English for text added to outgoing email ('Re:', 'wrote:', etc.)"
|
||||
@ -1298,7 +1301,7 @@ msgstr "Dołącz czas wysłania w listach wychodzących"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Routing"
|
||||
msgstr ""
|
||||
msgstr "Routing"
|
||||
|
||||
#: src/main/webapp/settings.jsp
|
||||
msgid "Use relays when sending mail:"
|
||||
@ -1334,7 +1337,7 @@ msgstr "Zmień hasło"
|
||||
|
||||
#: src/main/webapp/faq.jsp
|
||||
msgid "Frequently Asked Questions"
|
||||
msgstr ""
|
||||
msgstr "Najczęściej Zadawane Pytania"
|
||||
|
||||
#: src/main/webapp/WEB-INF/tags/folderLink.tag
|
||||
msgid "{0} emails total"
|
||||
@ -1346,7 +1349,7 @@ msgstr "{0} wszystkich listów, {1} nowych"
|
||||
|
||||
#: src/main/webapp/WEB-INF/tags/folderLink.tag
|
||||
msgid "{0} incomplete"
|
||||
msgstr ""
|
||||
msgstr "{0} niepełnych"
|
||||
|
||||
#: src/main/webapp/WEB-INF/tags/address.tag
|
||||
msgid "Add to Address Book"
|
||||
|
@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:00+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Portuguese (http://www.transifex.com/otf/I2P/language/pt/)\n"
|
||||
@ -24,47 +24,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Azul claro"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Normal"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Nenhuma identidade coincide com o campo do remetente 'De':"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "A verificar a senha..."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "A antiga senha não está correta."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "A nova senha e a sua confirmação não coincidem."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "A re-cifrar as identidades"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "A re-cifrar o livro de endereços"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "A re-cifrar a pasta"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "A atualizar o ficheiro de senhas"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:28+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/otf/I2P/"
|
||||
@ -16,47 +16,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Azul claro"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Baunilha"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Nenhuma identidade confere com o campo remetente/de:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Verificando senha"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "A senha antiga não está correta."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "A nova senha e a senha de confirmação não conferem."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Recriptografando as identidades"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Recriptografando o livro de endereços"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Recriptografando a pasta"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Atualizando arquivo de senha"
|
||||
|
||||
|
@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Romanian (http://www.transifex.com/otf/I2P/language/ro/)\n"
|
||||
@ -15,47 +15,47 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
|
||||
"2:1));\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Nici o identitate nu se potrivește cu expeditorul / din câmp:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Parola veche nu este corectă."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Parolă noua și parola de confirmare nu coincid."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Russian (Russia) (http://www.transifex.com/otf/I2P/language/"
|
||||
@ -27,47 +27,47 @@ msgstr ""
|
||||
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
|
||||
"%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Материальный"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Голубой"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Ванильный"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Нет соответствующего набора ключей для такого отправителя: "
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Проверка пароля"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Старый пароль неверен."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Новый пароль и пароль для подтверждения не совпадают."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Перешифрование идентификатора"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Перешифрование адресной книги"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Перешифрование папки"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Обновляется файл с паролями"
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Slovak (http://www.transifex.com/otf/I2P/language/sk/)\n"
|
||||
@ -16,47 +16,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Odosielateľovi nezodpovedá žiadna identita/z poľa:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Staré heslo nie je správne."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Nové heslo a potvrdzovacie heslo sa nezhodujú."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -10,9 +10,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-26 18:03+0000\n"
|
||||
"Last-Translator: cacapo <handelsehorisont@gmail.com>\n"
|
||||
"Language-Team: Swedish (Sweden) (http://www.transifex.com/otf/I2P/language/"
|
||||
"sv_SE/)\n"
|
||||
"Language: sv_SE\n"
|
||||
@ -21,47 +21,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "Ljusblå"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "Vanilj"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Ingen identitet överensstämmer med avsändare/från fältet:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "Kontrollerar lösenord"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Det gamla lösenordet är inte rätt."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Det nya lösenordet och bekräftelselösenordet matchar inte."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "Återkrypterar identiteter"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "Återkrypterar adressbok"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "Återkrypterar katalog"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "Uppdaterar lösenordsfil"
|
||||
|
||||
@ -455,19 +455,19 @@ msgstr "Svara till:"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Remove this recipient"
|
||||
msgstr ""
|
||||
msgstr "Tag bort mottagare"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add this recipient to the address book"
|
||||
msgstr ""
|
||||
msgstr "Lägg till mottagare till adressbok"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Select recipients from address book"
|
||||
msgstr ""
|
||||
msgstr "Välj mottagare från adressbok"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add another recipient field"
|
||||
msgstr ""
|
||||
msgstr "Lägg till ett annat mottagarfält"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Subject:"
|
||||
@ -475,15 +475,15 @@ msgstr "Ämne:"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Attachments:"
|
||||
msgstr "Bifogningar:"
|
||||
msgstr "Bilagor:"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Remove this attachment"
|
||||
msgstr "Ta bort denhär bifogningen"
|
||||
msgstr "Tag bort denna bilaga"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Add another attachment"
|
||||
msgstr "Lägg till en bifogning till"
|
||||
msgstr "Lägg till en bilaga"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Attach"
|
||||
@ -491,7 +491,7 @@ msgstr "Bifoga"
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "It is recommended to keep attachments below 500 kBytes."
|
||||
msgstr "Det rekomenderas att bifogningar är mindre än 500kB."
|
||||
msgstr "Bilagorna bör vara mindre än 500kB."
|
||||
|
||||
#: src/main/webapp/newEmail.jsp
|
||||
msgid "Message:"
|
||||
@ -1108,11 +1108,11 @@ msgstr "I2P-Bote Version {0}"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "To submit bug reports or feature requests:"
|
||||
msgstr ""
|
||||
msgstr "För att rapportera buggar eller begär funktioner:"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "click here"
|
||||
msgstr ""
|
||||
msgstr "Klicka här"
|
||||
|
||||
#: src/main/webapp/about.jsp
|
||||
msgid "Developers:"
|
||||
|
@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-07 17:14+0000\n"
|
||||
"Last-Translator: Denis Lysenko <gribua@gmail.com>\n"
|
||||
"Language-Team: Ukrainian (Ukraine) (http://www.transifex.com/otf/I2P/"
|
||||
@ -24,47 +24,47 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Старий пароль не правильний."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Новий пароль та підтвердження не співпадають."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 01:52+0000\n"
|
||||
"Last-Translator: str4d <str4d@i2pmail.org>\n"
|
||||
"Language-Team: Vietnamese (http://www.transifex.com/otf/I2P/language/vi/)\n"
|
||||
@ -16,47 +16,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "Không danh tính nào khớp với hàng người gửi:"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "Mật khẩu cũ không đúng."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "Mật khẩu mới và mật khẩu xác nhận không khớp."
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr ""
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-15 02:01+0000\n"
|
||||
"POT-Creation-Date: 2015-09-12 14:29+0000\n"
|
||||
"PO-Revision-Date: 2015-08-05 02:14+0000\n"
|
||||
"Last-Translator: YF <yfdyh000@gmail.com>\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.com/otf/I2P/language/"
|
||||
@ -18,47 +18,47 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:67
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
msgid "Material"
|
||||
msgstr "纸张"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:68
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
msgid "Light Blue"
|
||||
msgstr "亮蓝"
|
||||
|
||||
#: src/main/java/i2p/bote/Configuration.java:69
|
||||
#: src/main/java/i2p/bote/Configuration.java:70
|
||||
msgid "Vanilla"
|
||||
msgstr "香草白"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:515
|
||||
#: src/main/java/i2p/bote/I2PBote.java:516
|
||||
msgid "No identity matches the sender/from field: "
|
||||
msgstr "没有身份密钥与寄件者/收件人相匹配: "
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:719
|
||||
#: src/main/java/i2p/bote/I2PBote.java:721
|
||||
msgid "Checking password"
|
||||
msgstr "正在检查密码"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:722
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
msgid "The old password is not correct."
|
||||
msgstr "旧密码不正确。"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:724
|
||||
#: src/main/java/i2p/bote/I2PBote.java:726
|
||||
msgid "The new password and the confirmation password do not match."
|
||||
msgstr "新密码与确认密码字段输入相符。"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:731
|
||||
#: src/main/java/i2p/bote/I2PBote.java:733
|
||||
msgid "Re-encrypting identities"
|
||||
msgstr "重新加密身份"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:734
|
||||
#: src/main/java/i2p/bote/I2PBote.java:736
|
||||
msgid "Re-encrypting addressbook"
|
||||
msgstr "重新加密地址簿"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:737
|
||||
#: src/main/java/i2p/bote/I2PBote.java:739
|
||||
msgid "Re-encrypting folder"
|
||||
msgstr "重新加密文件夹"
|
||||
|
||||
#: src/main/java/i2p/bote/I2PBote.java:741
|
||||
#: src/main/java/i2p/bote/I2PBote.java:743
|
||||
msgid "Updating password file"
|
||||
msgstr "正在更新密码文件"
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
package i2p.bote;
|
||||
|
||||
import static i2p.bote.Util._;
|
||||
import i2p.bote.email.EmailIdentity.IdentityConfig;
|
||||
import i2p.bote.packet.dht.Contact;
|
||||
|
||||
import java.io.File;
|
||||
@ -39,7 +40,7 @@ import net.i2p.util.Log;
|
||||
import net.i2p.util.SecureFile;
|
||||
import net.i2p.util.SystemVersion;
|
||||
|
||||
public class Configuration {
|
||||
public class Configuration implements IdentityConfig {
|
||||
public static final String KEY_DERIVATION_PARAMETERS_FILE = "derivparams"; // name of the KDF parameter cache file, relative to I2P_BOTE_SUBDIR
|
||||
|
||||
private static final String I2P_BOTE_SUBDIR = "i2pbote"; // relative to the I2P app dir
|
||||
|
@ -128,7 +128,7 @@ import org.apache.commons.configuration.ConfigurationException;
|
||||
*/
|
||||
public class I2PBote implements NetworkStatusSource, EmailFolderManager, MailSender, PasswordVerifier {
|
||||
public static final int PROTOCOL_VERSION = 4;
|
||||
private static final String APP_VERSION = "0.3";
|
||||
private static final String APP_VERSION = "0.4.1";
|
||||
private static final int STARTUP_DELAY = 3; // the number of minutes to wait before connecting to I2P (this gives the router time to get ready)
|
||||
private static volatile I2PBote instance;
|
||||
|
||||
|
@ -56,7 +56,7 @@ public class EmailIdentity extends EmailDestination {
|
||||
private Fingerprint fingerprint;
|
||||
private boolean published;
|
||||
private boolean defaultIdentity;
|
||||
private IdentityConfig identityConfig;
|
||||
private IdentityConfigImpl identityConfig;
|
||||
|
||||
/**
|
||||
* Creates a random <code>EmailIdentity</code>.
|
||||
@ -87,7 +87,7 @@ public class EmailIdentity extends EmailDestination {
|
||||
publicSigningKey = signingKeys.getPublic();
|
||||
privateSigningKey = signingKeys.getPrivate();
|
||||
|
||||
identityConfig = new IdentityConfig();
|
||||
identityConfig = new IdentityConfigImpl();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -119,7 +119,7 @@ public class EmailIdentity extends EmailDestination {
|
||||
publicSigningKey = publicKeys.signingKey;
|
||||
privateSigningKey = privateKeys.signingKey;
|
||||
|
||||
identityConfig = new IdentityConfig();
|
||||
identityConfig = new IdentityConfigImpl();
|
||||
}
|
||||
|
||||
public PrivateKey getPrivateEncryptionKey() {
|
||||
@ -246,6 +246,10 @@ public class EmailIdentity extends EmailDestination {
|
||||
identityConfig.loadFromProperties(properties, prefix, overwrite);
|
||||
}
|
||||
|
||||
public Properties saveConfig(String prefix) {
|
||||
return identityConfig.saveToProperties(prefix);
|
||||
}
|
||||
|
||||
public IdentityConfig getConfig() {
|
||||
return identityConfig;
|
||||
}
|
||||
@ -254,7 +258,25 @@ public class EmailIdentity extends EmailDestination {
|
||||
return identityConfig.wrap(configuration);
|
||||
}
|
||||
|
||||
public class IdentityConfig {
|
||||
public void setIncludeInGlobalCheck(boolean include) {
|
||||
identityConfig.setIncludeInGlobalCheck(include);
|
||||
}
|
||||
|
||||
public boolean getIncludeInGlobalCheck() {
|
||||
return identityConfig.getIncludeInGlobalCheck();
|
||||
}
|
||||
|
||||
public interface IdentityConfig {
|
||||
public int getRelayRedundancy();
|
||||
public void setRelayMinDelay(int minDelay);
|
||||
public int getRelayMinDelay();
|
||||
public void setRelayMaxDelay(int maxDelay);
|
||||
public int getRelayMaxDelay();
|
||||
public void setNumStoreHops(int numHops);
|
||||
public int getNumStoreHops();
|
||||
}
|
||||
|
||||
private class IdentityConfigImpl implements IdentityConfig {
|
||||
private static final String PARAMETER_INCLUDE_IN_GLOBAL_CHECK_MAIL = "includeInGlobalCheck";
|
||||
|
||||
private static final boolean DEFAULT_INCLUDE_IN_GLOBAL_CHECK_MAIL = true;
|
||||
@ -269,11 +291,11 @@ public class EmailIdentity extends EmailDestination {
|
||||
private Properties properties;
|
||||
private Configuration configuration;
|
||||
|
||||
public IdentityConfig() {
|
||||
public IdentityConfigImpl() {
|
||||
properties = new Properties();
|
||||
}
|
||||
|
||||
private IdentityConfig(Properties properties, Configuration configuration) {
|
||||
private IdentityConfigImpl(Properties properties, Configuration configuration) {
|
||||
this.properties = properties;
|
||||
this.configuration = configuration;
|
||||
}
|
||||
@ -302,7 +324,7 @@ public class EmailIdentity extends EmailDestination {
|
||||
}
|
||||
|
||||
public IdentityConfig wrap(Configuration configuration) {
|
||||
return new IdentityConfig(properties, configuration);
|
||||
return new IdentityConfigImpl(properties, configuration);
|
||||
}
|
||||
|
||||
// Identity-only configuration
|
||||
|
@ -293,7 +293,7 @@ public class Identities implements KeyUpdateHandler {
|
||||
String text = identity.getText();
|
||||
properties.setProperty(prefix + PREF_TEXT, (text==null ? "" : text));
|
||||
properties.setProperty(prefix + PREF_PUBLISHED, identity.isPublished() ? "true" : "false");
|
||||
properties.putAll(identity.getConfig().saveToProperties(prefix + CONFIGURATION_PREFIX));
|
||||
properties.putAll(identity.saveConfig(prefix + CONFIGURATION_PREFIX));
|
||||
|
||||
index++;
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.SortedSet;
|
||||
@ -135,8 +136,11 @@ public class ClosestNodesLookupTask implements Callable<List<Destination>> {
|
||||
TimeUnit.SECONDS.sleep(1);
|
||||
} while (!isDone());
|
||||
log.debug("Node lookup for " + key + " found " + responses.size() + " nodes (may include local node).");
|
||||
for (Destination node: responses)
|
||||
log.debug(" Node: " + Util.toBase32(node));
|
||||
synchronized (responses) {
|
||||
Iterator<Destination> i = responses.iterator();
|
||||
while (i.hasNext())
|
||||
log.debug(" Node: " + Util.toBase32(i.next()));
|
||||
}
|
||||
}
|
||||
finally {
|
||||
i2pReceiver.removePacketListener(packetListener);
|
||||
@ -207,10 +211,13 @@ public class ClosestNodesLookupTask implements Callable<List<Destination>> {
|
||||
*/
|
||||
private List<Destination> getResults() {
|
||||
List<Destination> resultsList = new ArrayList<Destination>();
|
||||
for (Destination destination: responses) {
|
||||
resultsList.add(destination);
|
||||
if (resultsList.size() >= K)
|
||||
break;
|
||||
synchronized (responses) {
|
||||
Iterator<Destination> i = responses.iterator();
|
||||
while (i.hasNext()) {
|
||||
resultsList.add(i.next());
|
||||
if (resultsList.size() >= K)
|
||||
break;
|
||||
}
|
||||
}
|
||||
return resultsList;
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ import java.io.IOException;
|
||||
import java.security.GeneralSecurityException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
@ -46,6 +47,7 @@ import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import net.i2p.util.I2PAppThread;
|
||||
import net.i2p.util.Log;
|
||||
@ -116,7 +118,7 @@ public class EmailChecker extends I2PAppThread {
|
||||
previousMailCheckTime = lastMailCheckTime;
|
||||
lastMailCheckTime = System.currentTimeMillis();
|
||||
for (EmailIdentity identity : identities.getAll()) {
|
||||
if (identity.getConfig().getIncludeInGlobalCheck()) {
|
||||
if (identity.getIncludeInGlobalCheck()) {
|
||||
checkForMail(identity);
|
||||
}
|
||||
}
|
||||
@ -126,6 +128,10 @@ public class EmailChecker extends I2PAppThread {
|
||||
}
|
||||
|
||||
public synchronized void checkForMail(String key) throws PasswordException, IOException, GeneralSecurityException {
|
||||
if (!isCheckingForMail()) {
|
||||
previousMailCheckTime = lastMailCheckTime;
|
||||
lastMailCheckTime = System.currentTimeMillis();
|
||||
}
|
||||
EmailIdentity identity = identities.get(key);
|
||||
if (identity != null)
|
||||
checkForMail(identity);
|
||||
@ -188,11 +194,20 @@ public class EmailChecker extends I2PAppThread {
|
||||
|
||||
private synchronized void updatePendingTasks() {
|
||||
try {
|
||||
for (Map.Entry<EmailIdentity, Future<Boolean>> entry: pendingMailCheckTasks.entrySet())
|
||||
if (entry.getValue().get(1, TimeUnit.MILLISECONDS)) {
|
||||
newMailReceived = true;
|
||||
pendingMailCheckTasks.remove(entry.getKey());
|
||||
synchronized (pendingMailCheckTasks) {
|
||||
Iterator<Map.Entry<EmailIdentity, Future<Boolean>>> iter = pendingMailCheckTasks.entrySet().iterator();
|
||||
while (iter.hasNext()) {
|
||||
Map.Entry<EmailIdentity, Future<Boolean>> entry = iter.next();
|
||||
try {
|
||||
boolean newMailForIdentity = entry.getValue().get(1, TimeUnit.MILLISECONDS);
|
||||
iter.remove();
|
||||
if (newMailForIdentity)
|
||||
newMailReceived = true;
|
||||
} catch (TimeoutException e) {
|
||||
log.debug("CheckEmailTask not finished for Identity " + entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
} catch (Exception e) {
|
||||
|
@ -150,7 +150,7 @@ public class OutboxProcessor extends I2PAppThread {
|
||||
* @throws IOException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
private void sendEmail(Email email) throws MessagingException, DhtException, GeneralSecurityException, PasswordException, IOException, InterruptedException {
|
||||
void sendEmail(Email email) throws MessagingException, DhtException, GeneralSecurityException, PasswordException, IOException, InterruptedException {
|
||||
EmailIdentity senderIdentity = null;
|
||||
if (!email.isAnonymous()) {
|
||||
String sender = email.getOneFromAddress();
|
||||
@ -207,7 +207,11 @@ public class OutboxProcessor extends I2PAppThread {
|
||||
log.info("Sending email: " + logSuffix);
|
||||
EmailDestination recipientDest = new EmailDestination(recipient);
|
||||
|
||||
EmailIdentity.IdentityConfig identityConfig = senderIdentity.getWrappedConfig(configuration);
|
||||
EmailIdentity.IdentityConfig identityConfig;
|
||||
if (email.isAnonymous())
|
||||
identityConfig = configuration;
|
||||
else
|
||||
identityConfig = senderIdentity.getWrappedConfig(configuration);
|
||||
int hops = identityConfig.getNumStoreHops();
|
||||
long minDelay = identityConfig.getRelayMinDelay() * 60 * 1000;
|
||||
long maxDelay = identityConfig.getRelayMaxDelay() * 60 * 1000;
|
||||
|
@ -35,7 +35,7 @@
|
||||
</ib:message>
|
||||
</h2>
|
||||
|
||||
<p><ib:message key="To submit bug reports or feature requests:"/> <a href="http://trac.i2p2.i2p/newticket?component=apps/plugins&keywords=I2P-Bote"><ib:message key="click here"/></a>.</p>
|
||||
<p><ib:message key="To submit bug reports or feature requests:"/> <a href="http://trac.i2p2.i2p/newticket?component=apps/plugins&keywords=I2P-Bote&owner=str4d"><ib:message key="click here"/></a>.</p>
|
||||
|
||||
<div class="contributor-category"><ib:message key="Developers:"/></div>
|
||||
<div>
|
||||
|
@ -183,7 +183,7 @@
|
||||
<ib:message key="Include in global check:"/>
|
||||
</div>
|
||||
<div class="identity-form-checkbox">
|
||||
<c:if test="${empty identity or identity.config.includeInGlobalCheck}">
|
||||
<c:if test="${empty identity or identity.includeInGlobalCheck}">
|
||||
<c:set var="checked" value="checked='checked'"/>
|
||||
</c:if>
|
||||
<input type="checkbox" name="includeInGlobalCheck" ${checked}/>
|
||||
|
@ -25,5 +25,5 @@
|
||||
<ib:message key="FAQ" var="title" scope="request"/>
|
||||
<ib:message key="Frequently Asked Questions" var="pagetitle" scope="request"/>
|
||||
<c:set var="navSelected" value="faq" scope="request"/>
|
||||
<c:set var="filename" value="${ib:getLocalizedFilename('FAQ.html', pageContext.servletContext)}" scope="request"/>
|
||||
<c:set var="filename" value="${ib:getLocalizedFilename('html/FAQ.html', pageContext.servletContext)}" scope="request"/>
|
||||
<jsp:forward page="showHtml.jsp"/>
|
477
src/main/webapp/html/userGuide_sv.html
Normal file
477
src/main/webapp/html/userGuide_sv.html
Normal file
@ -0,0 +1,477 @@
|
||||
<div>
|
||||
<h1>Användarguide</h1>
|
||||
|
||||
<nav><p><a href="#Introduktion">1. Introduktion</a></p>
|
||||
<p><a href="#How-To">2. Att använda I2P-Bote</a></p>
|
||||
<p><a href="#Starting">2.1. Starta I2P-Bote</a></p>
|
||||
<p><a href="#Creating-Identities">2.2. Skapa en Identitet</a></p>
|
||||
<p><a href="#Sending-Receiving">2.3. Skicka och ta emot email</a></p>
|
||||
<p><a href="#Address-Book">2.4. Lokal adressbok</a></p>
|
||||
<p><a href="#Settings">2.5. Inställningar (och vad de betyder)</a></p>
|
||||
<p><a href="#Gateway">2.6. Email till och från internet</a></p>
|
||||
<p><a href="#Considerations">3. Överväganden kring anonymitet</a></p>
|
||||
<p><a href="#Technical-Concept">4. Tekniskt koncept</a></p>
|
||||
<p><a href="#Technical-Details">5. Tekniska detaljer</a></p>
|
||||
<p><a href="#Terminology">6. Terminologi/Ordlista</a></p>
|
||||
<p><a href="#Credits">7. Erkännanden</a></p>
|
||||
</nav><h2 id="Introduction">1. Introduktion</h2>
|
||||
|
||||
<p>I2P-Bote är ett användarvänligt mycket anonymt säkert emailprogram för
|
||||
I2P. Det är ett serverlöst, helt decentraliserat system som etablerar/formerar ett
|
||||
peer-till-peer nätverk överlagrat det helt moderna
|
||||
låglatens-anonymiseringsnätverket
|
||||
I2P; dessutom lägger det till en valbar mixminion-liknande höglatens-transport och
|
||||
undviker därigenom låglatens-nätverkens tillkortakommanden.</p>
|
||||
|
||||
<p>Därför, I2P-Bote drar full nytta av den anonymitet som levereras av I2P, plus att den genererar sin egen anonymitet genom att lägga till ytterligare ett anonymiseringslager (overlay network).</p>
|
||||
|
||||
<p>Det är detta koncept av anonymitet i lager som gör I2P-Bote så flexibelt: du kan konfigurera den att vara extremt anonym och långsam, eller mindre anonym men snabbare/mer effektiv. Hur som helst, I2P-Bote levererar alltid väldigt bra anonymitet för både avsändare och mottagare såväl som kryptering ändpunkt-till-ändpunkt. Frånsett om du skickar mail till eller från det vanliga internet, kommer ALLA email - innehållet, bilagorna och header utom mottagarens adress (subject, date time sender address, …) att vara krypterade från punkt till punkt. Mottagerns adress är endast synlig för mail-routens sista nod som sparar paketen i kad-nätverket och respektive lagringsnoder, men de kan inte läsa mailets innehåll, vem som skickat det eller vem som hämtar det.</p>
|
||||
|
||||
<p>I2P-Bote erbjuder möjligheten att göra din kommunikation ytterligare mer anonym
|
||||
genom att aktivera höglatens mail-routes - dock till ett pris.
|
||||
Användare som vill att deras anonyma email skall anlända så snabbt som möjligt bör
|
||||
avaktivera mail-routes och använda 'direkt' leverenas över I2P. Detta garanterar
|
||||
att de aldrig kommer att vara mindre anonyma än den nivå av anonymitet som erbjuds av
|
||||
I2Ps standardförbindelse.</p>
|
||||
|
||||
<p>För att åstadkomma hög användbarhet, har vi gjort det möjligt att använda den med
|
||||
standardklienter för email som Thunderbird, Evolution eller Kmail, utan att behöva
|
||||
oroa dig för vilken extra informaiton dessa applikationer skickar i sina headers.
|
||||
Dessutom finns det ett web-interface som låter dig skicka och läsa email eller
|
||||
hantera dina inställningar och identiteter.</p>
|
||||
|
||||
<h2 id="How-To">2. Att använda I2P-Bote</h2>
|
||||
|
||||
<h3 id="Starting">2.1 Starta I2P-Bote</h3>
|
||||
<p>Efter att du startat I2P-Bote (som förval startar den automatiskt när
|
||||
din I2P-router startar) tar det lite mer än tre minuter innan
|
||||
allting är igång och fungerar.</p>
|
||||
|
||||
<p>Så ta en titt på 'Nätverksstatus' till vänster. Där bör det stå 'Ansluten'</p>
|
||||
|
||||
<p>Om du vill använda I2P-Bote själv, måste du först skapa en identitet.</p>
|
||||
|
||||
<h3 id="Creating-Identities">2.2. Skapa en Identitet</h3>
|
||||
<p>Klicka på 'Identiteter' till vänster och därefter på knappen 'Ny Identitet'</p>
|
||||
|
||||
<p>Fyll i minst ett 'Offentligt Namn' och tryck sedan på 'Skapa'. Det är allt som behövs för att skapa en identitet.</p>
|
||||
|
||||
<p>Det offentliga namnet är namet du ser för denna identet (användbart om du
|
||||
har olika identiteter för olika grupper av användare som du kommunicerar med eller olika syften)
|
||||
och det kommer at skickas som 'sändarens namn' till mailets mottagare.
|
||||
Ett offentligt namn behöver inte vara unikt.</p>
|
||||
|
||||
<p>(Eftersom du kan välja vilket namn som helst här - vem som helst kan kalla sig HungryHobo
|
||||
där - är det inte lämpat att användas av mottagern för att tala om ifall två mail
|
||||
kommer från samma avsändare. Detta är orsaken till att namnet som sparas i den lokala adressboken
|
||||
(det kan bara finnas ett namn per destinationsnyckel) visas, om det finns ett,
|
||||
och du kommer att se en grön bock i kolumnen "Känd", som talar om att det
|
||||
är ett lokalt känt namn. Om det inte finns någon förkomst av en destination i den lokala adressboken,
|
||||
kommer namnet som uppges av avsändaren att visas med ett prefix {UNK} i mailklienterna).</p>
|
||||
|
||||
<p>Du kan också fylla i de andra fälten om du vill:</p>
|
||||
|
||||
<p>Beskrivning - detta fält lagras lokalt. Det är bara till för bekvämlighets skull:
|
||||
om du vill lägga till ytterligare information för dig själv om denna identitet, kan du skriva den här.</p>
|
||||
|
||||
<p>Email Adress - detta fält används inte än.</p>
|
||||
|
||||
<p>Välj någon av krypteringsalgoritmerna. Om du är tveksam, håll dig till förvalen.</p>
|
||||
|
||||
<p>Du kan klicka på namnet på en en av dina identiteter och sen koipera den långa nyckeln
|
||||
som visara under 'Email-destination'. Dett är din email-adress i I2P-Bote. Om
|
||||
du vill att någon skall kunna skicka bote-mail till dig, måste hen ha den långa nyckeln.</p>
|
||||
|
||||
<p>Nu kan du skicka och ta emot I2P-Bote mail.</p>
|
||||
|
||||
<p>Men du bör också ta en titt på dina I2P-Boteinställningar och se om dom passar dina behov.</p>
|
||||
|
||||
<p>(Du kan också skapa olika identiteter och tilldela var och en av dem olika inställningar.)</p>
|
||||
|
||||
<h3 id="Sending-Receiving">2.3. Skicka och ta emot email</h3>
|
||||
<p>Du måste ha I2P-Botes email-destinationsnyckel för andvändaren du skall skicka bote-mail till.</p>
|
||||
|
||||
<p>För att kunna skicka ett meddelande, klicka på 'Ny', välj din egen sändaridentitet
|
||||
eller 'Anonym' under 'Från' och skriv in mottagerns mail-destinationsnyckel
|
||||
eller som ett alternativ en adress på 'Till:'-raden.</p>
|
||||
|
||||
<p>(Alternativt kan du trycka på 'Addressbok'-knappen under denna linje
|
||||
för att välja från email-destinationer lagrade lokalt i din adressbok:
|
||||
Markera användarer/na du vill skall ha ditt mail och tryck på 'Lägg till Mottagare'.)</p>
|
||||
|
||||
<p>Du kan lägga till flera mottagare och ändra 'Till' till 'Kopia' eller 'Dold kopia'</p>
|
||||
|
||||
<p>Plus-knappen lägger till ytterligare mottagar-linjer.</p>
|
||||
|
||||
<p>Skriv nu ditt bote-mail och tryck på 'Skicka' för att sända det, eller 'Spara' för att
|
||||
spara det som ett utkast i din 'utkast'-mapp eller någon annan användar-definierad mapp.</p>
|
||||
|
||||
<p>När du trycker på 'Skicka' placeras ditt email i Utkorg-mappen och du kan
|
||||
fortsätta använda I2P-Bote, d v s skriva andra mail eller helt enkelt göra andra saker.
|
||||
2P-Bote skickar nu ditt email. När det är skickat tas det automatiskt bort från din
|
||||
Utkorg och lagras i din Skickat-mapp. Detta betyder att ditt mail är på väg till
|
||||
mottagaren (om du inte har satt en fördröjning, men det är avaktiverat som förval).</p>
|
||||
|
||||
<p> I I2P-Bote är email automatiskt signerade (om du inte skickar dem utan avsändare).</p>
|
||||
|
||||
<p>Du kan också skicka email utan att specificera <em>någon</em> sändares
|
||||
identitet/destination/adress, välj bara 'Anonym' i rullistmenyn 'Från:'.</p>
|
||||
|
||||
<p>Med de förvalda inställningarna kommer I2P-Bote automatiskt att kolla nya email, och allt du behöver
|
||||
göra för att se om du fått några email är att titta i din Inkorg (länken 'Inkorg' till vänster).</p>
|
||||
|
||||
<p>Du kan forcera en manuell kontroll genom att trycka på 'Kontrollera Mail'-knappen. Detta är en
|
||||
global kontroll, som försöker hämta nya mail för alla dina identiteter, utom dom du har tagit bort från
|
||||
global kontroll. [Ännu inte implementerat]</p>
|
||||
|
||||
<p>Antalet olästa email visas i parentesen brevid mappens namn i sidofältet.</p>
|
||||
|
||||
<p>Klicka på 'Inkorg' för att se en lista över mottagna email. Du kommer att se två kolumner
|
||||
med kryss eller gröna bockar. Dessa visar om mailet innehåller en giltig signatur och är autentiskt (Sig)
|
||||
och om sändarens email-destinationsnyckel är känd lokalt, d.v.s i din adressbok (Känd). Därför
|
||||
betyder två gröna bockar brevid ett mail att identiteten för detta email är känd och att denna
|
||||
identitet har signerat mailet.</p>
|
||||
|
||||
<p>Om du har ett visst namn i din adressbok och du får ett mail från en
|
||||
identitet med det namnet, och Känd <em>inte</em> visar en grön bock,
|
||||
då är det en <em>annan</em> destination som har skickat och signerat detta mail; hen
|
||||
har bara råkat ta samma namn som du har valt till en av dina kontakter. </p>
|
||||
|
||||
<p>Om det där är en grön bock för 'Sig', så är mailet korrekt signerat av sändaren
|
||||
och du kan lägga till den till din adressbok under ett annat namn, som nu kommer att visas som sändare.</p>
|
||||
|
||||
<p>Ett mail utan sändardestination ('Det står 'Anonym') kommer naturligtvis att ha två kryss.</p>
|
||||
|
||||
<p>Genom att klicka på ett email som visas i din inbox öppnar du mailet.</p>
|
||||
|
||||
<p>Det samma gäller alla andra mappar.</p>
|
||||
|
||||
<p>(På grund av I2P-Botes ditribuerade natur, tar det några minuter såväl att skicka som
|
||||
att kontrollera och ta emot email. Med mail-routes aktiverade ännu mer. Men du behöver inte ha din
|
||||
browser öppen för det, bara lämna I2P-Bote som en bakgrundsrpocess - detta ökar också anonymiteten.)</p>
|
||||
|
||||
<h3 id="Address-Book">2.4. Lokal Adressbok</h3>
|
||||
<p>Om du har I2P-Bote email-nyckeln från någon som du kommer att skriva mer frekvent till,
|
||||
är det behändigt att spara nyckeln lokalt i din adressbok (länk till vänster), ange ett namn du väljer för
|
||||
denna kontakt och klistra in destinationen på motsvarande line, spara sen.</p>
|
||||
|
||||
<p>Du bör normalt spara destinationer till din adressbok, så att nästa gång
|
||||
du får ett mail från samma avsändare visas detta ('Loc' är markerat) och ett mail
|
||||
som är skickat av någon annan som använder samma namn är markerat som INTE känd lokalt (ett kryss
|
||||
i web-UIs 'Känd' kolumn eller {UNK} före avsändaren i IMAP), så att du vet att det är en ny/annan avsändare.</p>
|
||||
|
||||
<h3 id="Settings">2.5. Inställningar (och vad de betyder)</h3>
|
||||
<p>Under inställningar kan du välja att I2P-Botes gränssnitts <em>språk</em>
|
||||
(för närvarande engelska eller tyska) och bestämma huruvida även med en icke-engelsk språkinställning
|
||||
allting som läggs till automatiskt till ett mail när du svarar
|
||||
kommer att vara på engelska i alla fall, så att mottagaren inte vet att din I2P-Bote är
|
||||
inställd på ett annat språk. Annars skulle mottagaren kunna gissa din nationalitet vilket skulle
|
||||
skada din anonymitet.</p>
|
||||
|
||||
<p>Här kan du också justera tidsintervallet för <em>utomatisk kontroll</em> av
|
||||
email och bestämma om skall skicka någon <em>tidsstämpel</em> med dina mail,
|
||||
vilket indikerar när mailet skickades. Tidsstämplar är alltid i UTC.</p>
|
||||
|
||||
<p>(När man använder mail-routes, är tidsstämplar automatiskt avaktiverade.) [inte
|
||||
implementerat ännu]</p>
|
||||
|
||||
<p>automatisk kontroll av email:</p>
|
||||
|
||||
<p>För bekvämlighets skull finns det en alternativ: 'Kontrollera mail varje XX minut'</p>
|
||||
|
||||
<p>Här kan du specificera hur ofta din I2P-Bote app skall försöka hämta olästa
|
||||
mail till dina identiteter. Detta kan ställas in per identitet. [inte implementerat ännu]</p>
|
||||
|
||||
<p>Om du specificerar ett slumpmässigt offset, så väntar den inte med att kontrollera _exakt_ varje XX
|
||||
minut, utan snarare varje (XX+-offset*XX)minuter, d.v.s efter en slumpmässigt vald tid mellan
|
||||
(1-offset)XX minuter och (1+offset)XX minuter. [ännu inte implementerat]</p>
|
||||
|
||||
<p>Du kan också helt avaktivera automatisk kontroll för en speciell identitet.</p>
|
||||
|
||||
<p>(Om du är osäker om de här inställningarna, använd förvalen. De borde fungera för dig).</p>
|
||||
|
||||
<p><em>Mail routes</em> är kedjor av I2P-Botenoder som agerar relays/routers för
|
||||
andra peers och följer fördröjningar per-hopp, och på så sätt erbjuder en transport med hög latens
|
||||
för ökad anonymitet.</p>
|
||||
|
||||
<p>Du kan specificera antalet noder (här kallde hopp) som skall kedjas ihop
|
||||
för att skapa en mail-route. Då kommer varje email-paket som skickas av identiteten
|
||||
som har en mail-route aktiverad gå igenom en route av n hopp innan den sparas. Du kan ange
|
||||
en fördröjning för varje hopp individuellt, då inget hopp kommer att veta tidpunkten när ett paket
|
||||
väntar vid nästa hopp, vilket gör timingen oförutsägbar. [individuella inställningar för per-hop och per-identitet
|
||||
är ännu inte implementerade]</p>
|
||||
|
||||
<p>Som fördröjning kan du specificera en tidsram (t.ex. 60-600 minuter) - sen kommer
|
||||
en slumpmässig väntetid mellan de två värdena att väljas för paketet vid det hoppet -
|
||||
eller en fixerad tid, då kommer paketet att vidarebefordras efter den bestämda tiden, d.v.s
|
||||
middagstid UTC, oavsett när det ankom. [fixerad tid ännu inte implementerad]</p>
|
||||
|
||||
<p>(När man använder mail-routes, är tidsstämplar automatiskt avaktiverade.) [ännu inte
|
||||
implementerat]</p>
|
||||
|
||||
<p>Under <em>Mixing anonymity</em> (minsta antal relayer
|
||||
som kommer att skickas) kan du specificera ett tröskelvärde. Eftersom din nod endast kan
|
||||
agera pålitligt som mixer om det finns tillräckligt många främmande paket att mixa och blanda
|
||||
egna paket med, kommer den att samla meddelanden vars fördröjningstid är över tills
|
||||
den når den lägre gränsen. Endast när den överskrids börjar din nod skicka ut dem
|
||||
i slumpmässig ordning.</p>
|
||||
|
||||
<p><em>exludera identitet från global kontroll</em>[Ännu inte implementerat]</p>
|
||||
|
||||
<p>Om du aktiverar detta val för en av dina identiteter så kommer denna inte att påverkas av
|
||||
global manuell kontroll av mail eller någon global kontroll alls.</p>
|
||||
|
||||
<h3 id="Gateway">2.6. Email till och från internet.</h3>
|
||||
<p>[INTE ÄNNU IMPLEMENTERAD!]</p>
|
||||
|
||||
<p>För att kunna skicka bote-mail till internet och ta emot mail fron internet med din I2P-Bote måste du först
|
||||
registrera en lämplig mail-gateway. Fär närvarande finns det bara en: postman.</p>
|
||||
|
||||
<ol>
|
||||
<li><p>Börja med att gå till
|
||||
<a href="http://hq.postman.i2p/?page_id=16">http://hq.postman.i2p/?page_id=16</a>
|
||||
och registrera ett konto. Om du redan har ett konto eller precis har skapat ett som beskrivet, gå vidare till #2.</p></li>
|
||||
|
||||
<li><p>För ett existerande konto kan du lägga till din I2P-Bote maildestination, så att
|
||||
email som kommer från internet vidarebefordras till din I2P-Bote app. För att göra detta gå till:
|
||||
<a href="http://hq.postman.i2p/?page_id=74">http://hq.postman.i2p/?page_id=74</a>
|
||||
och ange den efterfrågade informationen.</p></li>
|
||||
</ol>
|
||||
<p>Alla email som skickas till den adressen
|
||||
(<a href="mailto:name@i2pmail.org">name@i2pmail.org</a> från det yttre internet
|
||||
eller <a href="mailto:name@mail.i2p">name@mail.i2p</a> för mail från andra postman-användare)
|
||||
kommer nu att vidarebefordras via I2P-Botes nätverk till din I2P-Bote att.</p>
|
||||
|
||||
<p>(N.B. Användandet av <a href="mailto:name@mail.i2p">name@mail.i2p</a> eller
|
||||
<a href="mailto:name@i2pmail.org">name@i2pmail.org</a> adresser i stället för
|
||||
den långa adressen, gör att mailen inte längre krypteras punkt-till-punkt. Därför rekommenderas
|
||||
det att byta I2P-Bote mail-destinationer (nycklar) för att kommunicera inom nätverket.
|
||||
Postman har erbjudit hög kvalitet på sin service för I2P länge, men var medvetem om att det är en
|
||||
centraliserad punkt som kan försvinna en dag, eller värre, tas över av någon som manipulerar mail.
|
||||
Vad gäller interna nätverks-mail som kommunikation, så ser I2P-Bote till att om du använder
|
||||
adressnycklar kan ingen mixtra med mailen du skickar eller tar emot.)</p>
|
||||
|
||||
<p>Om du inte bara vill ta emot mail från internet men också skicka email från I2P-Bote, måste du
|
||||
ge din I2P-Bote destinationsnyckeln till din gateway, så att din I2P-Bote vet var den skall skicka mailen.</p>
|
||||
|
||||
<p>Du kan göra detta under 'Inställningar'. Denna gateway kommer att ge I2P-Botes användare
|
||||
möjlighet att kommunicera med vanliga email-användare på internet såväl som användare av postmans
|
||||
klassiska i2pmail-service (@mail.i2p).</p>
|
||||
|
||||
<p>För att motverka missbruk kommer det att finnas en begränsning av antalet email
|
||||
du kan sända ut till internet; precis som för vanliga postman email-användare: Om en användare av I2P-Bote
|
||||
överskrider kvoten av utgående mail, kommer de överskjutande mailen att studsa tillbaka.</p>
|
||||
|
||||
<h2 id="Considerations">3. Överväganden om anonymitet.</h2>
|
||||
<p>Skicka inte identifierbar information om dig själv (namn, adress, geografisk adress,
|
||||
tidszon, ålder, sajter du nyligen besökt eller bloggat om, användarnamn,
|
||||
ipnummer, I2P-routerid, I2P-Bote id, personnummer, kreditkortsnummer, …, kopior av ditt pass,
|
||||
körkort, hyreskontrakt, foton (med eller utan kläder), dokument som innehåller ditt
|
||||
användarnamn i författarinformationen, och mycket mycket mer)!</p>
|
||||
|
||||
<p>Om möjligt,</p>
|
||||
<ul>
|
||||
<li><p>låt I2P-Bote köra dygnet runt,</p></li>
|
||||
<li><p>använd mailroutes med slumpmässiga fördröjning per-hopp och /eller fixerad sänttid per-hopp, [ännu inte <em>helt</em> implementerad]</p></li>
|
||||
<li><p>använd ett långt tidsintervall för kontroll,</p></li>
|
||||
<li><p>använd en lång låkal fördröjning för egna paket,</p></li>
|
||||
<li><p>använd ett stort slumpmässigt kontrollintervall. [ännu inte implementerat]</p></li>
|
||||
</ul>
|
||||
<p>Du kan undertrycka sändandet av datum och tid i mailets header.</p>
|
||||
|
||||
<p>När du svarar på ett email läggs viss markörer till för att visa mottagare att detta
|
||||
är ett svar, som t.ex. 'Svar: [ämnet för mailet du svarar på]' eller '[användarnamn] skrev:'.
|
||||
Dessa är olika för språken du kan välja i språkinställningarna. Emellertid, om du inte vill att mottagaren
|
||||
skall veta vilket språk du har satt, kan du undertrycka översättning av dess markörer, att de kommer
|
||||
att vara på engelska, oavsett vilket språk som är inställt. För att göra detta, markera 'Använd engelska för
|
||||
text som läggs till utgående mail ('Re:, ''wrote:', etc.)'</p>
|
||||
|
||||
<p>Var försiktig med innehållet. Inkludera inte personlig information eller
|
||||
information som bara du äger. Skriv inte 'Jag går och lägger mig nu, det är sent'
|
||||
när du inkluderar tidsstämplar.</p>
|
||||
|
||||
<p>Språket du skriver på, din stil och dina formuleringar kan också vara av intresse för en motståndare</p>
|
||||
|
||||
<p>I2P-Bote erbjuder också möjligheten att använda olika email-identiteter.
|
||||
Antag att en av dina kontakter får reda på din identitet, eftersom du glömde radera
|
||||
identifierbar information i ett hemligt dokument du skickat till hen. Om detta
|
||||
mails mottagare skulle samarbeta med andra som du är i kontakt med, kunde hen
|
||||
avslöja den riktiga identitet som hör till den Bote-adress hen har från dig.
|
||||
Så, om du kommunicerar med dessa andra användande samma Bote-adress, kommer de
|
||||
att kunna veta vem du är. Det går inte om du använder en annan adress för att
|
||||
skicka mail till dem.</p>
|
||||
|
||||
<h2 id="Technical-Concept">4. Tekniska koncept</h2>
|
||||
<p>I2P-Bote är ett punkt-till-punkt krypterat, nätverksinternt, helt decentraliserat
|
||||
(d.v.s serverlöst) email-system. Det stöder olika identiteter och avslöjar inte
|
||||
email-headers. För närvarande är det fortfarande alpha software. Det kan användas
|
||||
via webkonsoll, och det har IMAP och SMTP-support, så bote-mail kan läsas och skrivas av en vanlig
|
||||
email-klient. I planerna finns också att garantera ytterligare anonymitet genom att erbjuda hög-latens transport
|
||||
som tillval. Alla bote-mail krypteras automatiskt punkt-till-punkt, så man behöver inte
|
||||
konfiguera eller tillämpa extra email-kryptering (även om man kan göra det också), och bote-mail
|
||||
autenticeras automatiskt. Eftersom det är ett decentraliserat system finns det inga mail-servrar
|
||||
som kan knyta olika email-identiteter till varandra (<em>profiling</em>): Inte ens noderna som relayar mail kommer att känna till avsändaren
|
||||
och förutom avsändare och mottagare, kommer endast höglatens-tunneln för mail och lagringsnoderna att veta till vilken anonym identitet
|
||||
mailet skickas. Den ursprungliga avsändaren kan ha gått off-line långt innan mailet
|
||||
blir tillgängligt för den andra sidan. Detta ökar på anonymiteten som kan nås med I2P-Bote.
|
||||
För dom som inte vill ha hög fördröjning: Alla dessa inställningar är användar-valda,
|
||||
så var och en beslutar själv hur mycket anonymitet hen vill ha.</p>
|
||||
|
||||
<p>I2P-Botes noder lagrar krypterade email i en Kademlia DHT. Därför kan ett email
|
||||
skickas genom ett antal andra noder (relays) för ökad säkerhet, eller direkt till ett set
|
||||
av lagringsnoder för snabbare leverans. Det samma gäller hämtning av mail.</p>
|
||||
|
||||
<p>(När mail-routes används, avaktiveras automatiskt tidsstämplar.) [Hämta via
|
||||
relays är ännu inte implementerat]</p>
|
||||
|
||||
<p>Alla noder är likvärdiga: Det finns inga 'supernoder' eller speciella relay/lagringsnoder.
|
||||
Alla agerar som potientiella relay och lagringsnod. Det
|
||||
maximala diskutrymme som används för relayade/sparade mail-paket kan ställas in av användaren.</p>
|
||||
|
||||
<p>Innan ett email skickas till ett relay, delas det upp i paket och
|
||||
krypteras med mottagarens offentliga nyckel. Dess paket lagras redundant i
|
||||
en distribuerad hashtabell (DHT).</p>
|
||||
|
||||
<p>De sparas i minst 100 dagar, under vilken tid mottagaren kan ladda ner dem.</p>
|
||||
|
||||
<p>Relaypaket går också ut efter 100 dagare eller mer.</p>
|
||||
|
||||
<p>Om en nod får slut på lagringsutrymme för email, och det inte finns några gamla paket som kan raderas,
|
||||
avvisar noden förfrågningar om lagring.</p>
|
||||
|
||||
<p>Dessutom, I2P-Bote rensar mail-headers och tillåter inte att någon onödig information
|
||||
skickas, vilket tillåter email-klienter utan tidigare kontroll av denna klient sänder i mail-headers.</p>
|
||||
|
||||
<p>All kryptering, val av rutt och profilering sker lokalt så att ingen tredje part
|
||||
är involverad.</p>
|
||||
|
||||
<p>I2P-Bote kräver ingen central nod ens för bootstrapping, eftersom den använder Seedless.</p>
|
||||
|
||||
<p>Om du använder I2P-Bote korrekt, d.v.s med övervägandena ovan och med sunt förnuft,
|
||||
kommer ingen att kunna ta reda på vem eller var du är. Om du redan övervakas och din internetuppkoppling
|
||||
sniffas, kan övervakaren inte se vad eller till vem du skickar post eller varifrån du tar emot post eller var dina
|
||||
kontakter finns.</p>
|
||||
|
||||
<p>Låt oss gå in lite mer i detalj:</p>
|
||||
|
||||
<h3>Vad I2P-Bote <em>verkligen döljer</em>:</h3>
|
||||
|
||||
<p>I2P-Bote döljer både identiet och plats för sändare och mottagare, liksom även
|
||||
de mellanliggande noderne (relay och lagring), innehållet i dina mail, deras storlek och antalet mail du skickar.</p>
|
||||
|
||||
<p>Endast mottagaren kan känna till avsändarens botemail-destination, och om han väljer att
|
||||
inte sända sin destination, kan inte ens mottagaren veta den.</p>
|
||||
|
||||
<p>Inte ens om du skicka tidsstämplar kommer din tidszon att avslöjas.</p>
|
||||
|
||||
<p>Dessutom döljer I2P-Bote:</p>
|
||||
<ul>
|
||||
<li><p>det faktum att du kör I2P-Bote</p></li>
|
||||
<li><p>det faktum att du skicka mail</p></li>
|
||||
<li><p>det faktum att du tar emot mail</p></li>
|
||||
<li><p>tidpunkten när du skickar mail</p></li>
|
||||
<li><p>tidpunkten när du tar emot mail</p></li>
|
||||
<li>
|
||||
<p>den övre gränsen av mängden mail en okänd användare tar emot</p>
|
||||
<ul>
|
||||
<li><p>en abstrakt användare, inte en konkret, räkna ut existensen från
|
||||
en existerande mail-identitet eftersom hen kan ha mer än en mail-identitet</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>den lägre gränsen, eftersom en identitet också skickar ut test och attrapp-meddelanden</p></li>
|
||||
</ul>
|
||||
<h3>Vad I2P-Bote <em>döljer delvis</em>:</h3>
|
||||
|
||||
<p>I2P-Botes adress till mottagaren är endast känd av sändare och mottagare.</p>
|
||||
|
||||
<p>Om det finns flera mottagare, kommer var och en att se alla andra som fick mailet via 'Till:' eller 'Kopia:'</p>
|
||||
|
||||
<p>Alla som listas under 'Dold kopia:' kommer att vara synliga endast för avsändaren och själva mottagaren.</p>
|
||||
|
||||
<p>Tiden för avsändandet kommer, om alls, endast att vara synlig för avsändare och mottagare.</p>
|
||||
|
||||
<h3>Vad I2P-Bote <em>kan dölja som tillval</em>:</h3>
|
||||
<ul>
|
||||
<li><p>Om mailroutes används, tiden ett bote-mail skickas</p></li>
|
||||
<li><p>Om mailroutes används, tiden ett botemail hämtas. [ännu inte implementerat]</p></li>
|
||||
<li><p>Om avsändaren undertrycker tidsstämplar kommer endast avsändaren själv veta när han skickat ett mail.</p></li>
|
||||
</ul>
|
||||
<h3>vad I2P-Bote <em>inte kan dölja</em>:</h3>
|
||||
<p>I2P-Bote kan inte dölja hur ofta en given identitet kontrollerar nya mail eller
|
||||
antalet mail en given identitet tar emot.</p>
|
||||
|
||||
<h2 id="Technical-Details">5. Tekniska detaljer</h2>
|
||||
<p>Se techdoc.txt</p>
|
||||
|
||||
<h2 id="Terminology">6. Terminologi/Ordlista</h2>
|
||||
|
||||
<h3>I2P-Bote (router/nod) id:</h3>
|
||||
<p>Detta är den id en I2P-Bote router är känd. Det används för att kontakta
|
||||
denna router, för lagring, relaying och för att hämta mail, men också för krypteringen hopp-till-hopp
|
||||
och för att helt enkelt den via I2P, eftersom det är detsamma som routerns destination för I2P-tunnel.
|
||||
Det visas för att reprensentera en I2P-Botenod i stats.</p>
|
||||
|
||||
<p>Så routerns id motsvarar I2P-destinationen (adressen av en I2P-Botenod i I2P-nätverket -
|
||||
det finns ingen anledning att känna till den om du inte har problem med att ansluta till andra I2P-Botenoder).</p>
|
||||
|
||||
<h3>I2P-Bote email-destination:</h3>
|
||||
<p>I2P-Botes email-destination (nyckel) är en identifierare med vilken någon kan nås
|
||||
via I2P-Bote, precis som namnet anger: en email-destination. Därför är
|
||||
den för I2P-Bote vad en emailadress är för vanlig email: Destinationen är den faktiska adress
|
||||
för att skicka email, för att lagra och hämta dem från DHT. På samma gång används den för kryptering
|
||||
punkt-till-punkt av email, header-information och bilagor.</p>
|
||||
|
||||
<p>En email-destination för I2P-Bote är en Base64 sträng som innehåller en offentlig
|
||||
krypteringsnyckel och en signeringsnyckel för verifikation. Exempel:</p>
|
||||
<pre>uQtdwFHqbWHGyxZN8wChjWbCcgWrKuoBRNoziEpE8XDt8koHdJiskYXeUyq7JmpG
|
||||
In8WKXY5LNue~62IXeZ-ppUYDdqi5V~9BZrcbpvgb5tjuu3ZRtHq9Vn6T9hOO1fa
|
||||
FYZbK-FqHRiKm~lewFjSmfbBf1e6Fb~FLwQqUBTMtKYrRdO1d3xVIm2XXK83k1Da
|
||||
-nufGASLaHJfsEkwMMDngg8uqRQmoj0THJb6vRfXzRw4qR5a0nj6dodeBfl2NgL9
|
||||
HfOLInwrD67haJqjFJ8r~vVyOxRDJYFE8~f9b7k3N0YeyUK4RJSoiPXtTBLQ2RFQ
|
||||
gOaKg4CuKHE0KCigBRU-Fhhc4weUzyU-g~rbTc2SWPlfvZ6n0voSvhvkZI9V52X3
|
||||
SptDXk3fAEcwnC7lZzza6RNHurSMDMyOTmppAVz6BD8PB4o4RuWq7MQcnF9znElp
|
||||
HX3Q10QdV3omVZJDNPxo-Wf~CpEd88C9ga4pS~QGIHSWtMPLFazeGeSHCnPzIRYD</pre>
|
||||
|
||||
<p>I2P-Bote router/nod id och I2P-Bote email-destinationer ser liknanade ut, men är i själva
|
||||
verket helt oberoende av varandra.</p>
|
||||
|
||||
<h3>Email adress:</h3>
|
||||
<p>Email-adresser i I2P-Bote är genvägar för email-destinationer.</p>
|
||||
|
||||
<p>>Email-adressen <--> destinationsstrukturer för email lagras på två ställen:
|
||||
den lokala adressboken och den distribuerade adresskatalogen [den senare ännu inte implementerad].</p>
|
||||
|
||||
<h3>I2P-Bote email-identitet:</h3>
|
||||
<p>I2P-Botes email-identitet är en uppsättning av I2P-Botes nyckel för email-destination, motsvarande
|
||||
privata nyckalr och ett namn tilldelat av användaren. Detta namn
|
||||
kommer att skickar med destinations-nyckeln om du inte untertrycker sändning
|
||||
av information om avsändaren.</p>
|
||||
|
||||
<p>Emellertid kommer det endast att visas för mottagaren om denne inte har något
|
||||
namn för destinationen i sin lokala adressbok.</p>
|
||||
|
||||
<p>Så tekniskt sett består en email-identitet av fyra saker:</p>
|
||||
<ul>
|
||||
<li><p>en email-destination (d.v.s två offentliga nycklar)</p></li>
|
||||
<li><p>tvo privata nycklar för email-destination</p></li>
|
||||
<li><p>offentligt namn som kan visas för andra i email</p></li>
|
||||
<li><p>en beskrivning som inte visas för någon men utom dig (den hjälper dig komma ihåg
|
||||
vilken email-identitet du använder för vissa ändamål).</p></li>
|
||||
</ul>
|
||||
<p>Det krävs inte någon email-identitet för att skicka mail (men då kan endast
|
||||
'Anonym' väljas i avsändarfältet).</p>
|
||||
|
||||
<h3>Mail routes:</h3>
|
||||
<p>Mail-routes är en ytterligare hög-latenstransport för I2P-Bote. En kedja av noder byggs av I2P-Bote
|
||||
för den sakens skull och agerar relays/routers för paket och genomför individuella fördröjningar per-hopp. [ännu inga
|
||||
inställningar för indviduella fördröjningar implementerade]</p>
|
||||
|
||||
<p><strong>VARNING!</strong> Om du väljer detta alternativ - speciellt med många
|
||||
hopp och/eller lång fördröjning skall du inte bli förvånad om mailet inte kommer fram snart. Det kommer,
|
||||
naturligtvis att ta längre tid - kanske flera dagar!</p>
|
||||
|
||||
<h2 id="Credits">7. Erkännanden</h2>
|
||||
<p>Se <a href="about.jsp">sidan Om</a>.</p>
|
||||
|
||||
<h2>NJUT AV BOTE-KÄNSLAN!!</h2>
|
||||
</div>
|
@ -21,5 +21,5 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<jsp:include page="header.jsp"/>
|
||||
<jsp:include page="html/${filename}"/>
|
||||
<jsp:include page="${filename}"/>
|
||||
<jsp:include page="footer.jsp"/>
|
@ -24,5 +24,5 @@
|
||||
|
||||
<ib:message key="User Guide" var="title" scope="request"/>
|
||||
<c:set var="navSelected" value="user-guide" scope="request"/>
|
||||
<c:set var="filename" value="${ib:getLocalizedFilename('userGuide.html', pageContext.servletContext)}" scope="request"/>
|
||||
<c:set var="filename" value="${ib:getLocalizedFilename('html/userGuide.html', pageContext.servletContext)}" scope="request"/>
|
||||
<jsp:forward page="showHtml.jsp"/>
|
@ -52,6 +52,7 @@ import i2p.bote.packet.dht.StoreRequestTest;
|
||||
import i2p.bote.packet.dht.UnencryptedEmailPacketTest;
|
||||
import i2p.bote.packet.relay.RelayRequestTest;
|
||||
import i2p.bote.packet.relay.ReturnChainTest;
|
||||
import i2p.bote.service.OutboxProcessorTest;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
@ -85,6 +86,9 @@ import org.junit.runners.Suite;
|
||||
IndexPacketFolderTest.class,
|
||||
RelayPacketFolderTest.class,
|
||||
|
||||
// Services
|
||||
OutboxProcessorTest.class,
|
||||
|
||||
// Other
|
||||
EmailTest.class,
|
||||
EmailMetadataTest.class,
|
||||
|
97
src/test/java/i2p/bote/service/OutboxProcessorTest.java
Normal file
97
src/test/java/i2p/bote/service/OutboxProcessorTest.java
Normal file
@ -0,0 +1,97 @@
|
||||
package i2p.bote.service;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.mail.Message.RecipientType;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
|
||||
import i2p.bote.Configuration;
|
||||
import i2p.bote.TestUtil;
|
||||
import i2p.bote.email.Email;
|
||||
import i2p.bote.email.EmailIdentity;
|
||||
import i2p.bote.email.Identities;
|
||||
import i2p.bote.folder.Outbox;
|
||||
import i2p.bote.folder.RelayPacketFolder;
|
||||
import i2p.bote.network.DHT;
|
||||
import i2p.bote.network.NetworkStatusSource;
|
||||
import i2p.bote.packet.dht.DhtStorablePacket;
|
||||
import i2p.bote.packet.dht.EncryptedEmailPacket;
|
||||
import i2p.bote.packet.dht.IndexPacket;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
|
||||
public class OutboxProcessorTest {
|
||||
@Rule public MockitoRule rule = MockitoJUnit.rule();
|
||||
|
||||
@Mock DHT dht;
|
||||
@Mock Outbox outbox;
|
||||
@Mock RelayPeerManager peerManager;
|
||||
@Mock RelayPacketFolder relayPacketFolder;
|
||||
@Mock Identities identities;
|
||||
@Mock Configuration configuration;
|
||||
@Mock NetworkStatusSource networkStatusSource;
|
||||
|
||||
OutboxProcessor op;
|
||||
Email testEmail;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
op = new OutboxProcessor(
|
||||
dht,
|
||||
outbox,
|
||||
peerManager,
|
||||
relayPacketFolder,
|
||||
identities,
|
||||
configuration,
|
||||
networkStatusSource);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendEmail() throws Exception {
|
||||
EmailIdentity identity = TestUtil.createTestIdentities().get(0).identity;
|
||||
String address = "tester <" + identity.getKey() + ">";
|
||||
when(identities.extractIdentity(address)).thenReturn(identity);
|
||||
|
||||
testEmail = new Email(true);
|
||||
testEmail.setFrom(new InternetAddress(address));
|
||||
testEmail.addRecipient(RecipientType.TO, new InternetAddress("Erika Mustermann <m-5~1dZ0MrGdyAWu-C2ecNAB5LCCsHQpeSfjn-r~mqMfNvroR98~BRmReUDmb0la-r-pBHLMtflrJE7aTrGwDTBm5~AJFEm-9SJPZnyGs-ed5pOj4Db65yJml1y1n77qr1~mM4GITl6KuIoxg8YwvPrCIlXe2hiiDCoC-uY9-np9UY>"));
|
||||
testEmail.setSubject("Test", "UTF-8");
|
||||
testEmail.setText("foobar");
|
||||
|
||||
op.sendEmail(testEmail);
|
||||
|
||||
ArgumentCaptor<DhtStorablePacket> arg = ArgumentCaptor.forClass(DhtStorablePacket.class);
|
||||
verify(dht, times(2)).store(arg.capture());
|
||||
List<DhtStorablePacket> values = arg.getAllValues();
|
||||
assertTrue(values.get(0) instanceof EncryptedEmailPacket);
|
||||
assertTrue(values.get(1) instanceof IndexPacket);
|
||||
assertTrue(((IndexPacket)values.get(1)).contains(((EncryptedEmailPacket)values.get(0)).getDhtKey()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendAnonymousEmail() throws Exception {
|
||||
testEmail = new Email(true);
|
||||
testEmail.setFrom(new InternetAddress("anonymous"));
|
||||
testEmail.addRecipient(RecipientType.TO, new InternetAddress("Erika Mustermann <m-5~1dZ0MrGdyAWu-C2ecNAB5LCCsHQpeSfjn-r~mqMfNvroR98~BRmReUDmb0la-r-pBHLMtflrJE7aTrGwDTBm5~AJFEm-9SJPZnyGs-ed5pOj4Db65yJml1y1n77qr1~mM4GITl6KuIoxg8YwvPrCIlXe2hiiDCoC-uY9-np9UY>"));
|
||||
testEmail.setSubject("Test", "UTF-8");
|
||||
testEmail.setText("foobar");
|
||||
|
||||
op.sendEmail(testEmail);
|
||||
|
||||
ArgumentCaptor<DhtStorablePacket> arg = ArgumentCaptor.forClass(DhtStorablePacket.class);
|
||||
verify(dht, times(2)).store(arg.capture());
|
||||
List<DhtStorablePacket> values = arg.getAllValues();
|
||||
assertTrue(values.get(0) instanceof EncryptedEmailPacket);
|
||||
assertTrue(values.get(1) instanceof IndexPacket);
|
||||
assertTrue(((IndexPacket)values.get(1)).contains(((EncryptedEmailPacket)values.get(0)).getDhtKey()));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user