aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitignore9
-rw-r--r--.idea/.gitignore8
-rw-r--r--.idea/.name1
-rw-r--r--.idea/gpg4usb-master.iml2
-rw-r--r--.idea/misc.xml4
-rw-r--r--.idea/modules.xml8
-rw-r--r--CMakeLists.txt33
-rw-r--r--COPYING675
-rw-r--r--Doxyfile1688
-rw-r--r--README.build54
-rw-r--r--README.md54
-rw-r--r--TODO138
-rw-r--r--gpg4usb.icobin0 -> 9662 bytes
-rw-r--r--gpg4usb.pro109
-rw-r--r--gpg4usb.pro.windows.static83
-rw-r--r--gpg4usb.qrc53
-rw-r--r--gpg4usb.rc1
-rw-r--r--gpg4usb_class_dependencies.graphml487
-rw-r--r--include/GPG4USB.h15
-rw-r--r--include/aboutdialog.h75
-rw-r--r--include/attachments.h68
-rw-r--r--include/attachmenttablemodel.h56
-rw-r--r--include/editorpage.h102
-rwxr-xr-xinclude/fileencryptiondialog.h118
-rw-r--r--include/findwidget.h44
-rw-r--r--include/gpgconstants.h40
-rw-r--r--include/gpgcontext.h185
-rw-r--r--include/helppage.h50
-rw-r--r--include/keydetailsdialog.h87
-rw-r--r--include/keygendialog.h93
-rw-r--r--include/keygenthread.h56
-rw-r--r--include/keyimportdetaildialog.h55
-rw-r--r--include/keylist.h76
-rwxr-xr-xinclude/keymgmt.h92
-rw-r--r--include/keyserverimportdialog.h89
-rw-r--r--include/mainwindow.h376
-rw-r--r--include/mime.h136
-rwxr-xr-xinclude/quitdialog.h51
-rwxr-xr-xinclude/settingsdialog.h217
-rw-r--r--include/textedit.h275
-rw-r--r--include/verifydetailsdialog.h48
-rw-r--r--include/verifykeydetailbox.h47
-rw-r--r--include/verifynotification.h109
-rw-r--r--include/wizard.h167
-rwxr-xr-xqmake-linux-glibc2.3.sh9
-rwxr-xr-xqmake-linux.sh11
-rwxr-xr-xqmake-linux64.sh11
-rwxr-xr-xqmake-windows.sh9
-rw-r--r--release/COPYING676
-rw-r--r--release/README49
-rw-r--r--release/TRANSLATORS11
-rw-r--r--release/bin/COPYING.txt676
-rw-r--r--release/bin/README.txt822
-rw-r--r--release/css/default.css15
-rw-r--r--release/help/css/style.css127
-rw-r--r--release/help/docu.es.html42
-rw-r--r--release/help/docu.html42
-rw-r--r--release/help/docu_concepts.es.html122
-rw-r--r--release/help/docu_concepts.html129
-rw-r--r--release/help/docu_decrypt.es.html96
-rw-r--r--release/help/docu_decrypt.html78
-rw-r--r--release/help/docu_decrypt_file.es.html99
-rw-r--r--release/help/docu_decrypt_file.html81
-rw-r--r--release/help/docu_encrypt.es.html69
-rw-r--r--release/help/docu_encrypt.html53
-rw-r--r--release/help/docu_encrypt_file.es.html100
-rw-r--r--release/help/docu_encrypt_file.html78
-rw-r--r--release/help/docu_export_key.es.html81
-rw-r--r--release/help/docu_export_key.html62
-rw-r--r--release/help/docu_export_key_private.es.html78
-rw-r--r--release/help/docu_export_key_private.html65
-rw-r--r--release/help/docu_import_key.es.html71
-rw-r--r--release/help/docu_import_key.html54
-rw-r--r--release/help/docu_keygen.es.html92
-rw-r--r--release/help/docu_keygen.html67
-rw-r--r--release/help/docu_sign.es.html83
-rw-r--r--release/help/docu_sign.html64
-rw-r--r--release/help/docu_verify.es.html85
-rw-r--r--release/help/docu_verify.html69
-rw-r--r--release/help/img/docu/cryptfile_menu.jpgbin0 -> 29757 bytes
-rw-r--r--release/help/img/docu/cryptfile_menu2.jpgbin0 -> 28842 bytes
-rw-r--r--release/help/img/docu/decrypt_step1.jpgbin0 -> 53098 bytes
-rw-r--r--release/help/img/docu/decrypt_step2.jpgbin0 -> 52930 bytes
-rw-r--r--release/help/img/docu/decrypt_step3.jpgbin0 -> 52754 bytes
-rw-r--r--release/help/img/docu/decrypt_step4.jpgbin0 -> 54889 bytes
-rw-r--r--release/help/img/docu/decrypt_step5.jpgbin0 -> 28731 bytes
-rw-r--r--release/help/img/docu/decryptfile_choose_decrypt.jpgbin0 -> 16266 bytes
-rw-r--r--release/help/img/docu/decryptfile_hit_ok.jpgbin0 -> 17864 bytes
-rw-r--r--release/help/img/docu/decryptfile_input_outputfile.jpgbin0 -> 17711 bytes
-rw-r--r--release/help/img/docu/decryptfile_okmessage.jpgbin0 -> 7150 bytes
-rw-r--r--release/help/img/docu/decryptfile_password.jpgbin0 -> 7844 bytes
-rw-r--r--release/help/img/docu/encrypt_step1.jpgbin0 -> 27836 bytes
-rw-r--r--release/help/img/docu/encrypt_step2.jpgbin0 -> 28347 bytes
-rw-r--r--release/help/img/docu/encrypt_step3.jpgbin0 -> 53795 bytes
-rw-r--r--release/help/img/docu/encryptfile_choose_encrypt.jpgbin0 -> 19642 bytes
-rw-r--r--release/help/img/docu/encryptfile_choose_input_outputfile.jpgbin0 -> 21227 bytes
-rw-r--r--release/help/img/docu/encryptfile_choose_keys.jpgbin0 -> 25195 bytes
-rw-r--r--release/help/img/docu/encryptfile_hit_ok.jpgbin0 -> 24470 bytes
-rw-r--r--release/help/img/docu/encryptfile_okmessage.jpgbin0 -> 7898 bytes
-rw-r--r--release/help/img/docu/exportkey_choose_keys.jpgbin0 -> 25622 bytes
-rw-r--r--release/help/img/docu/exportkey_file_selection.jpgbin0 -> 21839 bytes
-rw-r--r--release/help/img/docu/exportkey_hit_export_private_key.jpgbin0 -> 27186 bytes
-rw-r--r--release/help/img/docu/exportkey_menu_selection.jpgbin0 -> 29493 bytes
-rw-r--r--release/help/img/docu/exportkey_open_keymgmt.jpgbin0 -> 28268 bytes
-rw-r--r--release/help/img/docu/exportkey_show_keydetails.jpgbin0 -> 30459 bytes
-rw-r--r--release/help/img/docu/exportkey_warn_message.jpgbin0 -> 12805 bytes
-rw-r--r--release/help/img/docu/genkey_step1.jpgbin0 -> 27937 bytes
-rw-r--r--release/help/img/docu/genkey_step2.jpgbin0 -> 26491 bytes
-rw-r--r--release/help/img/docu/genkey_step3.jpgbin0 -> 22931 bytes
-rw-r--r--release/help/img/docu/genkey_step4.jpgbin0 -> 10649 bytes
-rw-r--r--release/help/img/docu/importkey_dialog.jpgbin0 -> 8591 bytes
-rw-r--r--release/help/img/docu/importkey_keylist.jpgbin0 -> 4951 bytes
-rw-r--r--release/help/img/docu/importkey_menu.jpgbin0 -> 27411 bytes
-rw-r--r--release/help/img/docu/private_key_note.jpgbin0 -> 7088 bytes
-rw-r--r--release/help/img/docu/sign_choose_key.jpgbin0 -> 30129 bytes
-rw-r--r--release/help/img/docu/sign_click_verify.jpgbin0 -> 30312 bytes
-rw-r--r--release/help/img/docu/sign_enter_passphrase.jpgbin0 -> 35177 bytes
-rw-r--r--release/help/img/docu/sign_show_message.jpgbin0 -> 41357 bytes
-rw-r--r--release/help/img/docu/translate_context.jpgbin0 -> 11652 bytes
-rw-r--r--release/help/img/docu/translate_src_transl.jpgbin0 -> 9570 bytes
-rw-r--r--release/help/img/docu/verify_click_verify.jpgbin0 -> 41005 bytes
-rw-r--r--release/help/img/docu/verify_import_from_keyserver.jpgbin0 -> 11027 bytes
-rw-r--r--release/help/img/docu/verify_key_not_present.jpgbin0 -> 6587 bytes
-rw-r--r--release/help/img/docu/verify_message_shown.jpgbin0 -> 44105 bytes
-rw-r--r--release/help/img/docu/verify_paste_message.jpgbin0 -> 41170 bytes
-rw-r--r--release/help/img/weblogo.pngbin0 -> 27496 bytes
-rw-r--r--release/icons/button_cancel.pngbin0 -> 3612 bytes
-rw-r--r--release/icons/button_copy.pngbin0 -> 1989 bytes
-rw-r--r--release/icons/button_cut.pngbin0 -> 3406 bytes
-rw-r--r--release/icons/button_next.pngbin0 -> 2583 bytes
-rw-r--r--release/icons/button_ok.pngbin0 -> 2856 bytes
-rw-r--r--release/icons/button_paste.pngbin0 -> 2704 bytes
-rw-r--r--release/icons/button_previous.pngbin0 -> 5229 bytes
-rw-r--r--release/icons/configure.pngbin0 -> 2897 bytes
-rw-r--r--release/icons/decrypted.pngbin0 -> 2025 bytes
-rw-r--r--release/icons/edit.pngbin0 -> 2011 bytes
-rw-r--r--release/icons/encrypted.pngbin0 -> 2058 bytes
-rwxr-xr-xrelease/icons/error.pngbin0 -> 3080 bytes
-rw-r--r--release/icons/exit.pngbin0 -> 2446 bytes
-rw-r--r--release/icons/export_key_to_clipboard.pngbin0 -> 4672 bytes
-rw-r--r--release/icons/export_key_to_file.pngbin0 -> 3976 bytes
-rw-r--r--release/icons/fileencrytion.pngbin0 -> 1795 bytes
-rw-r--r--release/icons/fileopen.pngbin0 -> 2654 bytes
-rw-r--r--release/icons/fileprint.pngbin0 -> 3369 bytes
-rw-r--r--release/icons/filesave.pngbin0 -> 2627 bytes
-rw-r--r--release/icons/filesaveas.pngbin0 -> 3846 bytes
-rw-r--r--release/icons/format-line-spacing-double.pngbin0 -> 769 bytes
-rw-r--r--release/icons/format-line-spacing-normal.pngbin0 -> 628 bytes
-rw-r--r--release/icons/format-line-spacing-triple.pngbin0 -> 798 bytes
-rw-r--r--release/icons/gpg4usb-logo.pngbin0 -> 7895 bytes
-rw-r--r--release/icons/gpg4usb-logo_small.pngbin0 -> 6998 bytes
-rw-r--r--release/icons/help.pngbin0 -> 4662 bytes
-rw-r--r--release/icons/import_key_from_clipboard.pngbin0 -> 4169 bytes
-rwxr-xr-xrelease/icons/import_key_from_file.pngbin0 -> 3985 bytes
-rw-r--r--release/icons/import_key_from_server.pngbin0 -> 3068 bytes
-rw-r--r--release/icons/importkey_editor.pngbin0 -> 3352 bytes
-rwxr-xr-xrelease/icons/key_export.pngbin0 -> 2534 bytes
-rw-r--r--release/icons/key_generate.pngbin0 -> 5140 bytes
-rwxr-xr-xrelease/icons/key_import.pngbin0 -> 2775 bytes
-rw-r--r--release/icons/keymgmt.pngbin0 -> 2746 bytes
-rw-r--r--release/icons/keys12.jpgbin0 -> 8130 bytes
-rw-r--r--release/icons/keys13.jpgbin0 -> 25883 bytes
-rwxr-xr-xrelease/icons/kgpg_key2.pngbin0 -> 850 bytes
-rw-r--r--release/icons/mimetypes/application-pdf.pngbin0 -> 1537 bytes
-rw-r--r--release/icons/mimetypes/image-x-generic.pngbin0 -> 1562 bytes
-rw-r--r--release/icons/mimetypes/text-plain.pngbin0 -> 1138 bytes
-rw-r--r--release/icons/mimetypes/unknown.pngbin0 -> 1091 bytes
-rw-r--r--release/icons/misc_doc.pngbin0 -> 1126 bytes
-rw-r--r--release/icons/quote.pngbin0 -> 1608 bytes
-rwxr-xr-xrelease/icons/signature.pngbin0 -> 2449 bytes
-rw-r--r--release/icons/statusbar_icon.pngbin0 -> 870 bytes
-rw-r--r--release/icons/txt.pngbin0 -> 2482 bytes
-rw-r--r--release/icons/undo.pngbin0 -> 2653 bytes
-rw-r--r--release/icons/verify.pngbin0 -> 3836 bytes
-rw-r--r--release/icons/wizard_banner.pngbin0 -> 16779 bytes
-rwxr-xr-xrelease/keydb/gpg.conf4
-rw-r--r--release/keydb/secring.gpg0
-rw-r--r--release/ts/gpg4usb_ar.ts2480
-rw-r--r--release/ts/gpg4usb_de.ts1972
-rw-r--r--release/ts/gpg4usb_el.ts1981
-rw-r--r--release/ts/gpg4usb_en.ts1959
-rw-r--r--release/ts/gpg4usb_es.ts1592
-rw-r--r--release/ts/gpg4usb_fr.ts1972
-rw-r--r--release/ts/gpg4usb_he.ts1981
-rw-r--r--release/ts/gpg4usb_ja.ts1969
-rw-r--r--release/ts/gpg4usb_my.ts1959
-rw-r--r--release/ts/gpg4usb_pl.ts1982
-rw-r--r--release/ts/gpg4usb_pt_BR.ts1984
-rw-r--r--release/ts/gpg4usb_ru.ts1980
-rw-r--r--release/ts/gpg4usb_sv.ts1983
-rw-r--r--release/ts/gpg4usb_vi.ts1972
-rw-r--r--release/ts/gpg4usb_zh.ts1981
-rw-r--r--release/ts/gpg4usb_zh_tw.ts1983
-rw-r--r--src/aboutdialog.cpp92
-rw-r--r--src/attachments.cpp183
-rw-r--r--src/attachmenttablemodel.cpp138
-rw-r--r--src/editorpage.cpp108
-rwxr-xr-xsrc/fileencryptiondialog.cpp249
-rw-r--r--src/findwidget.cpp135
-rw-r--r--src/gpgconstants.cpp31
-rw-r--r--src/gpgcontext.cpp835
-rw-r--r--src/helppage.cpp81
-rw-r--r--src/keydetailsdialog.cpp225
-rw-r--r--src/keygendialog.cpp255
-rw-r--r--src/keygenthread.cpp34
-rw-r--r--src/keyimportdetaildialog.cpp160
-rw-r--r--src/keylist.cpp326
-rwxr-xr-xsrc/keymgmt.cpp289
-rw-r--r--src/keyserverimportdialog.cpp313
-rw-r--r--src/main.cpp121
-rw-r--r--src/mainwindow.cpp1045
-rw-r--r--src/mime.cpp243
-rwxr-xr-xsrc/quitdialog.cpp131
-rwxr-xr-xsrc/settingsdialog.cpp716
-rw-r--r--src/textedit.cpp573
-rw-r--r--src/verifydetailsdialog.cpp103
-rw-r--r--src/verifykeydetailbox.cpp99
-rw-r--r--src/verifynotification.cpp185
-rw-r--r--src/wizard.cpp431
l---------test/bin1
-rwxr-xr-xtest/runtest.sh11
-rw-r--r--test/test.pro21
-rw-r--r--test/testgpgcontext.cpp62
-rw-r--r--test/todo.txt4
224 files changed, 49344 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..ce5bb686
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+mocfiles
+objectfiles
+qrc_gpg4usb.cpp
+release/conf
+release/gpg4usb
+Makefile
+release/keydb/pubring.gpg
+release/keydb/trustdb.gpg
+cmake-build-debug
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..73f69e09
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 00000000..e346809e
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+gpg4usb \ No newline at end of file
diff --git a/.idea/gpg4usb-master.iml b/.idea/gpg4usb-master.iml
new file mode 100644
index 00000000..f08604bb
--- /dev/null
+++ b/.idea/gpg4usb-master.iml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module classpath="CMake" type="CPP_MODULE" version="4" /> \ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..79b3c948
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
+</project> \ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..b51d5f10
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/gpg4usb-master.iml" filepath="$PROJECT_DIR$/.idea/gpg4usb-master.iml" />
+ </modules>
+ </component>
+</project> \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..a9b89d6f
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 3.19)
+
+project(gpg4usb VERSION 1.0.0 LANGUAGES CXX)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC OM)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+find_package(Qt5Widgets REQUIRED)
+find_package(Qt5PrintSupport REQUIRED)
+find_package(Qt5Network REQUIRED)
+find_package(Qt5Test REQUIRED)
+
+file(GLOB GPG4USB_HEADER_FILES include/* "*.h")
+
+aux_source_directory(src SOURCES)
+
+include_directories(include)
+include_directories(/usr/local/include)
+
+link_directories(/usr/local/lib)
+message(STATUS "${GPG4USB_HEADER_FILES}")
+
+qt5_wrap_cpp(QT5_MOCS ${GPG4USB_HEADER_FILES} TARGET gpg4usb)
+
+add_executable(gpg4usb ${SOURCES} gpg4usb.qrc ${QT5_MOCS})
+
+target_link_libraries(gpg4usb gpg-error gpgme)
+qt5_use_modules(gpg4usb Network PrintSupport Widgets Test Core) \ No newline at end of file
diff --git a/COPYING b/COPYING
new file mode 100644
index 00000000..10926e87
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,675 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
diff --git a/Doxyfile b/Doxyfile
new file mode 100644
index 00000000..d829145e
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,1688 @@
+# Doxyfile 1.7.3
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME =
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is
+# included in the documentation. The maximum height of the logo should not
+# exceed 55 pixels and the maximum width should not exceed 200 pixels.
+# Doxygen will copy the logo to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful if your file system
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also makes the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penalty.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will roughly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespaces are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
+# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
+# will still accept a match between prototype and implementation in such cases.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or macro consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and macros in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# The WARN_NO_PARAMDOC option can be enabled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT =
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
+# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
+# *.f90 *.f *.for *.vhd *.vhdl
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty or if
+# non of the patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
+# and it is also possible to disable source filtering for a specific pattern
+# using *.ext= (so without naming a filter). This option only has effect when
+# FILTER_SOURCE_FILES is enabled.
+
+FILTER_SOURCE_PATTERNS =
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+# will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [0,1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
+
+ENUM_VALUES_PER_LINE = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
+# (see http://www.mathjax.org) which uses client side Javascript for the
+# rendering instead of using prerendered bitmaps. Use this if you do not
+# have LaTeX installed or if you want to formulas look prettier in the HTML
+# output. When enabled you also need to install MathJax separately and
+# configure the path to it using the MATHJAX_RELPATH option.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you need to specify the location relative to the
+# HTML output directory using the MATHJAX_RELPATH option. The destination
+# directory should contain the MathJax.js script. For instance, if the mathjax
+# directory is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
+# MathJax, but it is strongly recommended to install a local copy of MathJax
+# before deployment.
+
+MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvantages are that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all references to function-like macros
+# that are alone on a line, have an all uppercase name, and do not end with a
+# semicolon, because these will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option also works with HAVE_DOT disabled, but it is recommended to
+# install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS = 0
+
+# By default doxygen will write a font called Helvetica to the output
+# directory and reference it in all dot files that doxygen generates.
+# When you want a differently looking font you can specify the font name
+# using DOT_FONTNAME. You need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will generate a graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, svg, gif or svg.
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the
+# \mscfile command).
+
+MSCFILE_DIRS =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# configuration options for QtHelp output
+#---------------------------------------------------------------------------
+GENERATE_QHP = YES
+QHP_NAMESPACE = doc.mycompany.com
+QHP_VIRTUAL_FOLDER = doc
+QHG_LOCATION = qhelpgenerator
+
diff --git a/README.build b/README.build
new file mode 100644
index 00000000..e446c9e3
--- /dev/null
+++ b/README.build
@@ -0,0 +1,54 @@
+Compiler prerequisites:
+-----------------------
+on 64bit systems:
+sudo apt-get install ia32-libs libc6-i386 libc6-dev-i386 lib32gcc1 lib32z1-dev g++-multilib
+
+for win-crosscompile:
+sudo apt-get install mingw32
+
+Libraries needed:
+------------------------------
+Get static qt-builds for windows from unetbootin and extract to winbuild/qt4.5
+http://launchpad.net/unetbootin/trunk/trunk/+download/qt4.5-win.7z
+
+Get static qt-builds for linux from unetbootin and extract to linbuild/qt4.5
+http://launchpad.net/unetbootin/trunk/trunk/+download/qt4.5-x11.7z
+
+Putting a symlink to libstdc++.a in linbuild/lib includes libstdc in the executable.
+
+Build:
+------
+comment out libs-line in gpg4usb.pro
+Build start_windows.exe
+make clean
+./qmake-windows.sh
+make
+
+make clean
+./qmake-linux.sh
+make
+
+Useful Links:
+---------------------
+http://sourceforge.net/apps/trac/unetbootin/wiki/compile
+http://www.trilithium.com/johan/2005/06/static-libstdc/
+
+Coding Style:
+-------------
+http://techbase.kde.org/Policies/Kdelibs_Coding_Style
+
+--------------------------------------------------------------------------
+--------------------------------------------------------------------------
+--------------------------------------------------------------------------
+
+Building qt yourself (see http://sourceforge.net/apps/trac/unetbootin/wiki/compile)
+Download Qt-Sources, untar and build static(for 32bit)
+http://get.qt.nokia.com/qt/source/qt-x11-opensource-src-4.5.2.tar.gz
+
+./configure -no-xrandr -no-xinerama -no-glib -no-sm -no-webkit -qt-zlib -qt-libpng -no-qt3support -no-phonon -no-phonon-backend -no-gtkstyle -static -nomake examples -nomake demos -nomake docs -opensource -prefix ~/qt-x11-opensource-src-4.5.2 -platform linux-g++-32 -no-exceptions -qt-libjpeg
+
+make && make install
+
+mv ~/qt-x11-opensource-src-4.5.2 linbuild/qt4.5
+
+
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..09d85736
--- /dev/null
+++ b/README.md
@@ -0,0 +1,54 @@
+NOTE
+-----
+This software is not maintained anymore. please feel free to fork. The appropriate build environment is available at
+https://github.com/gpg4usb/gpg4usb-docker
+
+ABOUT
+-----
+gpg4usb is an easy to use, small portable editor with the possibility
+to encrypt and decrypt any text-message or -file you want. For encryption it acts as
+a gpg-frontend (http://gnupg.org/). Its intend is to be used from an usb-stick,
+running on Windows(TM) and Linux. Providing a mac-binary is on our TODO-list.
+
+Our aim is, to give anyone the possibility to send and receive secure encrypted
+messages anywhere - on any computer out there, no matter if Microsoft Windows(TM)
+or Linux is running on it. Therefore it's usage should be self-describing, and the
+user-interface is kept as simple as possible.
+
+Of course gpg4usb is open source, as are included libs and binaries.
+
+OBTAINING
+---------
+You can get prepacked zip-files from http://gpg4usb.cpunk.de/download.html .
+For retrieving the source checkout http://cpunk.de/svn/src/ .
+
+HOWTO USE
+---------
+1. Unzip gpg4usb.zip on your usb-stick.
+2. start programm with start_windows.exe or start_linux (depending on your os)
+3. import your private key and some public keys
+4. enjoy portable encryption ;-)
+
+CONTACT
+-------
+If you have any questions and/or suggestions contact us at
[email protected] - or feel free to meet us at [email protected]
+
+Our homepage is located at http://gpg4usb.cpunk.de .
+
+LICENSES
+--------
+gpg4usb itself is licensed under the GPLv3 (see COPYING).
+
+There are some libraries and the gpg-binary included in the zip-file / a static
+gpg-build which (may) have different licenses, for more information check
+their homepages. You can also obtain the sources from there.
+
+GPG: http://gnupg.org/
+QT: http://trolltech.no/ , http://trolltech.no/downloads/opensource
+
+Iconset used is Nuvola (http://icon-king.com/?p=15), which has a LGPL License
+
+The key image in the wizard (keys12.jpg) is a croped version of
+http://www.flickr.com/photos/laureenp/6141822934/, which is licensed cc by-nc-sa.
+Our derived work is also cc by-nc-sa
diff --git a/TODO b/TODO
new file mode 100644
index 00000000..e37e4aa5
--- /dev/null
+++ b/TODO
@@ -0,0 +1,138 @@
+TODO:
+-----
+Release 0.3.2
+- refactoring and cleanup: [DONE]
+ - gpgwin.cpp -> mainwindow.cpp [DONE]
+ - context.cpp -> gpgcontext.cpp [DONE]
+- show keyrings (files with .gpg) in import from file dialog too [DONE]
+- Change QPlaintextEdit to QTextEdit [DONE]
+ - Zoom In/Out [DONE]
+- keyimport from keyserver dialog should show reason for strike out [DONE]
+- add file operation toolbar (open, save, new) (per default off) [DONE]
+- understandable message if no matching private key found for decryption (no data error) [DONE]
+- dropdown from menubar instead of dialog for file-cryption (files->encrypt,decrypt) [DONE]
+- strike out revoked keys in keylist and add warning to keydetails [DONE]
+- put quote and double line break removale to "special edit" operation toolbar (icons for double linebreaks missing) [DONE]
+- emit keydbchanged from GPGcontext::importKey (for the moment not possible, because importinformation is lost after this) [DONE]
+- fix translation file for "SettingsDialog" as it says two times English, and the comment is on the wrong one. [DONE]
+- BUG: cancel decryption on windows hangs programm -> possibly bug in gpgme [DONE]
+- BUG: fix cancel password entry bug on windows [DONE]
+- Add buttonto copy fingerprint to clipboard in details dialog [DONE]
+ - or set margin to make it easier selectable [DONE]
+ - remove whitespaces on copy [DONE]
+- remove iconpath and use ressource file instead [DONE]
+- change default iconsize to 24x24 [DONE]
+- restart gpg4usb on language change [DONE]
+- option in settingsdialog for enabling steganographic operations [DONE]
+ - minimal steganography option: remove or add pgp-headers on demand [DONE]
+ - Add advanced tab to settings dialog [DONE]
+- Change "remove double line breaks" to "remove spacing" [DONE]
+ - icon from "line spacing icon" [DONE]
+- key import should be more verbose: [DONE]
+ - show message, which keys are imported [DONE]
+ - if import failed, because no key was found [DONE]
+ - if key is already in keyring [DONE]
+ - BUG: Also show details, when key is really new [DONE]
+- Wizard on first start (Create Key, Import from keys older gpg4usb, import from gnupg) [DONE]
+ - nextid is not called when clicking finish button [DONE]
+ - import conf from old gpg4usb [DONE]
+ - only show one import detail dialog, when importing public/private keys [DONE]
+ - add messagebox for succesful import of settings from old gpg4usb [DONE]
+
+- Update Qt to 4.8 [DONE]
+ - add Qt language files for Qt locales
+- investigate in adding a offline help system [DONE]
+ - have a look at the format
+ - images should be included in paragraph [DONE]
+ - every html should have prev, next, toc link [DONE]
+ - remove menu and logo from subpages [DONE]
+ - docs for sign&verify [DONE]
+- dropdown from menubar instead of dialog for import [DONE]
+ - resize dropdown button, cause letter are cut at the bottom [DONE]
+- Change file encryption to single dialog for en- and decryption [DONE]
+ - change docu on file de- and encryption
+- replace qDebug messages with tr() by messagebox (?)
+- disable tab related actions when no tab is shown [DONE]
+- on key generation set maximum keysize to 65536 bits for elgamal subkey [DONE]
+- finally remove obsolete strings from translations
+- credits for key image [DONE]
+- translator list [DONE]
+
+BUGS:
+- import key toolbar dropdown shows text, even if only icon should be shown [DONE]
+
+Release 0.3.3
+- Change private key password
+- Catch bad passphrase message
+- add keyless encryption
+- create revocation file
+ - on key generation
+ - later
+- add posibility to add keyserver in settings
+- set gpgme error language to chosen language (context.cpp:49)
+- Add default key functionality
+- encrypt and sign, decrypt and verify (?)
+- discuss: show message, when key export is successful (statusbar)
+- update gpgme-library
+- investigate in embedding a steganography tool
+ http://steghide.sourceforge.net/
+ http://www.outguess.org/
+- optionally open new tab after encryption/decrytion
+- check and add missing statusbar messages
+- set mainwindow-statusbar text via signal
+- clear password-cache after quit (siehe kbasket)
+- save the last used directory in open file dialog
+- Settings-Dialog:
+ - add tab for editor options, like font-size, line-break, tab-width, line-numbers,..
+- remember Password:
+ - checkbox in password dialog to remember password
+ - before restart maybesave should be called on mainwindow
+ - Timer to remember password for x minutes?
+
+
+Release 0.3.4
+- keylist rewrite using tablemodel
+ - make keylist browsable with keyboard
+ - key should blink short in keylist after import
+ - Change Keytable sorting: private keys should always be on top (partially solving "encrypt to self")
+- check pointer usage (const/references)
+- more doku on building gpg4usb (especially on windows)
+- clean header if quoted printable decoded
+- PGP-MIME, find and show inline encrypted files
+ - attachments-widget should be inlined in editor-tabs
+- attachments:
+ - context menu for files left in attachment dir-icon: clean attachments-dir
+ - settings option "check attachment-dir all 10s and warn user"
+ - remind user on closing if files left in attachments-dir
+ - attachments dir as default option for "save"
+ - clean attachments when:
+ - opening new file in editor
+ - decrypting
+ - encrypting
+ - status-tip "saved file" when saving file for "open with" [DONE]
+
+Release 0.4
+- save state on closing as encrypted file, allow recovery with password on next start
+ - generate functional key for user
+- investigate using libqgpgme1 (qt binding for gpgme)
+
+Later:
+- more internationalisation:
+ - menu entry for changing character encoding
+ - hints (on webpage?) which webmailer sends which encoding-header
+
+- Drag and drop capabilities. Especially to encrypt / decrypt text, but would also be nice for files as well as import public and private keys.
+
+- add a message-box with warning if someone's adding a secret-key to usb-keyring
+- sorting keys would be nice (e.g. a-z or complete manual)
+- Policy ( dialogs, what's warning, what an error )
+
+- some kind of locking for keydb, as gpg.conf uses lock-never, for ability to run on usb-drives (fat-formatted)
+
+- make use of GPGME IO-Callbacks from QT, read chapter 7.8.2 from GPGME info page
+
+BUGS
+----
+- entering wrong password for decrypt on windows hangs program -> possible bug in gpgme
+- Sometimes two or more stars are added to title of modified tabs
+
diff --git a/gpg4usb.ico b/gpg4usb.ico
new file mode 100644
index 00000000..51c9b00c
--- /dev/null
+++ b/gpg4usb.ico
Binary files differ
diff --git a/gpg4usb.pro b/gpg4usb.pro
new file mode 100644
index 00000000..ba3c2851
--- /dev/null
+++ b/gpg4usb.pro
@@ -0,0 +1,109 @@
+# #####################################################################
+# Automatically generated by qmake (2.01a) Mi Mai 21 02:28:39 2008
+# #####################################################################
+TEMPLATE = app
+
+# unix:TARGET = start_linux
+# win32:TARGET = start_windows
+# mac:TARGET = start_mac
+DESTDIR = release
+DEPENDPATH += .
+INCLUDEPATH += . \
+ ./include
+
+#DEFINES += GPG4USB_NON_PORTABLE
+
+#CONFIG += release static
+CONFIG += debug
+QT += network
+# Input
+OBJECTS_DIR=objectfiles
+MOC_DIR=mocfiles
+HEADERS += src/attachments.h \
+ src/gpgcontext.h \
+ src/mainwindow.h \
+ src/fileencryptiondialog.h \
+ src/keyimportdetaildialog.h \
+ src/mime.h \
+ src/keygendialog.h \
+ src/keygenthread.h \
+ src/keydetailsdialog.h \
+ src/keylist.h \
+ src/keymgmt.h \
+ src/settingsdialog.h \
+ src/attachmenttablemodel.h \
+ src/textedit.h \
+ src/editorpage.h \
+ src/quitdialog.h \
+ src/aboutdialog.h \
+ src/keyserverimportdialog.h \
+ src/verifynotification.h \
+ src/verifydetailsdialog.h \
+ src/verifykeydetailbox.h \
+ src/wizard.h \
+ src/helppage.h \
+ src/findwidget.h \
+ src/gpgconstants.h
+
+SOURCES += src/attachments.cpp \
+ src/gpgcontext.cpp \
+ src/mainwindow.cpp \
+ src/main.cpp \
+ src/fileencryptiondialog.cpp \
+ src/keyimportdetaildialog.cpp \
+ src/mime.cpp \
+ src/keygendialog.cpp \
+ src/keygenthread.cpp \
+ src/keydetailsdialog.cpp \
+ src/keylist.cpp \
+ src/keymgmt.cpp \
+ src/settingsdialog.cpp \
+ src/attachmenttablemodel.cpp \
+ src/textedit.cpp \
+ src/editorpage.cpp \
+ src/quitdialog.cpp \
+ src/aboutdialog.cpp \
+ src/keyserverimportdialog.cpp \
+ src/verifynotification.cpp \
+ src/verifydetailsdialog.cpp \
+ src/verifykeydetailbox.cpp \
+ src/wizard.cpp \
+ src/helppage.cpp \
+ src/findwidget.cpp \
+ src/gpgconstants.cpp
+
+RC_FILE = gpg4usb.rc
+
+RESOURCES = gpg4usb.qrc
+
+# comment out line below for static building
+LIBS += -lgpgme \
+ -lgpg-error \
+
+# comment in for static buildding in windows
+#INCLUDEPATH += ./winbuild/include
+#LIBS +=./winbuild/lib/libgpgme.a ./winbuild/lib/libgpg-error.a
+
+
+DEFINES += _FILE_OFFSET_BITS=64
+TRANSLATIONS = release/ts/gpg4usb_en.ts \
+ release/ts/gpg4usb_de.ts \
+ release/ts/gpg4usb_ru.ts \
+ release/ts/gpg4usb_pt_BR.ts \
+ release/ts/gpg4usb_es.ts \
+ release/ts/gpg4usb_vi.ts \
+ release/ts/gpg4usb_my.ts \
+ release/ts/gpg4usb_zh.ts \
+ release/ts/gpg4usb_zh_tw.ts \
+ release/ts/gpg4usb_he.ts \
+ release/ts/gpg4usb_sv.ts \
+ release/ts/gpg4usb_pl.ts \
+ release/ts/gpg4usb_el.ts \
+ release/ts/gpg4usb_ar.ts \
+ release/ts/gpg4usb_fr.ts
+
+
+
+contains(DEFINES, GPG4USB_NON_PORTABLE) {
+ message(Building non portable version...)
+}
diff --git a/gpg4usb.pro.windows.static b/gpg4usb.pro.windows.static
new file mode 100644
index 00000000..488f7ad9
--- /dev/null
+++ b/gpg4usb.pro.windows.static
@@ -0,0 +1,83 @@
+# #####################################################################
+# Automatically generated by qmake (2.01a) Mi Mai 21 02:28:39 2008
+# #####################################################################
+TEMPLATE = app
+
+# unix:TARGET = start_linux
+# win32:TARGET = start_windows
+# mac:TARGET = start_mac
+DESTDIR = release
+DEPENDPATH += .
+INCLUDEPATH += . \
+ ./include
+
+# Comment in line below for static building
+CONFIG += release static
+
+# Comment out line below for static building
+#CONFIG += debug
+
+QT += network
+# Input
+HEADERS += attachments.h \
+ context.h \
+ gpgwin.h \
+ keylist.h \
+ keymgmt.h \
+ fileencryptiondialog.h \
+ mime.h \
+ keygenthread.h \
+ keydetailsdialog.h \
+ settingsdialog.h \
+ attachmenttablemodel.h \
+ textedit.h \
+ editorpage.h \
+ quitdialog.h \
+ keyserverimportdialog.h \
+ verifynotification.h \
+ verifydetailsdialog.h \
+ verifykeydetailbox.h
+SOURCES += attachments.cpp \
+ context.cpp \
+ gpgwin.cpp \
+ main.cpp \
+ keylist.cpp \
+ keymgmt.cpp \
+ fileencryptiondialog.cpp \
+ mime.cpp \
+ keygenthread.cpp \
+ keydetailsdialog.cpp \
+ settingsdialog.cpp \
+ attachmenttablemodel.cpp \
+ textedit.cpp \
+ editorpage.cpp \
+ quitdialog.cpp \
+ keyserverimportdialog.cpp \
+ verifynotification.cpp \
+ verifydetailsdialog.cpp \
+ verifykeydetailbox.cpp
+RC_FILE = gpg4usb.rc
+
+# comment out line below for static building
+# BEGIN
+#LIBS += -lgpgme \
+# -lgpg-error \
+# END
+
+# comment in for static buildding in windows
+#BEGIN
+INCLUDEPATH += ./winbuild/include
+LIBS +=./winbuild/lib/libgpgme.a ./winbuild/lib/libgpg-error.a
+DEFINES += STATICWINDOWS
+QMAKE_LFLAGS += -Wl,-subsystem,windows
+QMAKE_LFLAGS +=-static-libgcc
+# END
+
+DEFINES += _FILE_OFFSET_BITS=64
+TRANSLATIONS = release/ts/gpg4usb_en.ts \
+ release/ts/gpg4usb_de.ts \
+ release/ts/gpg4usb_ru.ts \
+ release/ts/gpg4usb_fr.ts \
+ release/ts/gpg4usb_it.ts \
+ release/ts/gpg4usb_pt_BR.ts \
+ release/ts/gpg4usb_es.ts
diff --git a/gpg4usb.qrc b/gpg4usb.qrc
new file mode 100644
index 00000000..f929b639
--- /dev/null
+++ b/gpg4usb.qrc
@@ -0,0 +1,53 @@
+<RCC>
+ <qresource prefix="/">
+ <file alias="keymgmt.png">release/icons/keymgmt.png</file>
+ <file alias="help.png">release/icons/help.png</file>
+ <file alias="button_copy.png">release/icons/button_copy.png</file>
+ <file alias="gpg4usb-logo.png">release/icons/gpg4usb-logo.png</file>
+ <file alias="banner.png">release/icons/wizard_banner.png</file>
+ <file alias="logo_small.png">release/icons/gpg4usb-logo_small.png</file>
+ <file alias="keys2.jpg">release/icons/keys12.jpg</file>
+ <file alias="keys3.jpg">release/icons/keys13.jpg</file>
+ <file alias="error.png">release/icons/error.png</file>
+ <file alias="button_cancel.png">release/icons/button_cancel.png</file>
+ <file alias="button_cut.png">release/icons/button_cut.png</file>
+ <file alias="button_ok.png">release/icons/button_ok.png</file>
+ <file alias="button_paste.png">release/icons/button_paste.png</file>
+ <file alias="configure.png">release/icons/configure.png</file>
+ <file alias="decrypted.png">release/icons/decrypted.png</file>
+ <file alias="edit.png">release/icons/edit.png</file>
+ <file alias="encrypted.png">release/icons/encrypted.png</file>
+ <file alias="exit.png">release/icons/exit.png</file>
+ <file alias="export_key_to_file.png">release/icons/export_key_to_file.png</file>
+ <file alias="fileencryption.png">release/icons/fileencrytion.png</file>
+ <file alias="fileopen.png">release/icons/fileopen.png</file>
+ <file alias="fileprint.png">release/icons/fileprint.png</file>
+ <file alias="filesave.png">release/icons/filesave.png</file>
+ <file alias="filesaveas.png">release/icons/filesaveas.png</file>
+ <file alias="format-line-spacing-double.png">release/icons/format-line-spacing-double.png</file>
+ <file alias="format-line-spacing-normal.png">release/icons/format-line-spacing-normal.png</file>
+ <file alias="format-line-spacing-triple.png">release/icons/format-line-spacing-triple.png</file>
+ <file alias="importkey_editor.png">release/icons/importkey_editor.png</file>
+ <file alias="import_key_from_clipboard.png">release/icons/import_key_from_clipboard.png</file>
+ <file alias="import_key_from_file.png">release/icons/import_key_from_file.png</file>
+ <file alias="import_key_from_server.png">release/icons/import_key_from_server.png</file>
+ <file alias="key_export.png">release/icons/key_export.png</file>
+ <file alias="key_generate.png">release/icons/key_generate.png</file>
+ <file alias="key_import.png">release/icons/key_import.png</file>
+ <file alias="kgpg_key2.png">release/icons/kgpg_key2.png</file>
+ <file alias="misc_doc.png">release/icons/misc_doc.png</file>
+ <file alias="quote.png">release/icons/quote.png</file>
+ <file alias="signature.png">release/icons/signature.png</file>
+ <file alias="statusbar_icon.png">release/icons/statusbar_icon.png</file>
+ <file alias="txt.png">release/icons/txt.png</file>
+ <file alias="undo.png">release/icons/undo.png</file>
+ <file alias="verify.png">release/icons/verify.png</file>
+ <file alias="export_key_to_clipboard.png">release/icons/export_key_to_clipboard.png</file>
+ <file alias="mimetypes/application-pdf.png">release/icons/mimetypes/application-pdf.png</file>
+ <file alias="mimetypes/image-x-generic.png">release/icons/mimetypes/image-x-generic.png</file>
+ <file alias="mimetypes/text-plain.png">release/icons/mimetypes/text-plain.png</file>
+ <file alias="mimetypes/unknown.png">release/icons/mimetypes/unknown.png</file>
+ <file alias="button_previous.png">release/icons/button_previous.png</file>
+ <file alias="button_next.png">release/icons/button_next.png</file>
+ </qresource>
+</RCC>
diff --git a/gpg4usb.rc b/gpg4usb.rc
new file mode 100644
index 00000000..23aca027
--- /dev/null
+++ b/gpg4usb.rc
@@ -0,0 +1 @@
+IDI_ICON1 ICON DISCARDABLE "gpg4usb.ico"
diff --git a/gpg4usb_class_dependencies.graphml b/gpg4usb_class_dependencies.graphml
new file mode 100644
index 00000000..8d815fb7
--- /dev/null
+++ b/gpg4usb_class_dependencies.graphml
@@ -0,0 +1,487 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
+ <!--Created by yFiles for Java 2.8-->
+ <key for="graphml" id="d0" yfiles.type="resources"/>
+ <key for="port" id="d1" yfiles.type="portgraphics"/>
+ <key for="port" id="d2" yfiles.type="portgeometry"/>
+ <key for="port" id="d3" yfiles.type="portuserdata"/>
+ <key attr.name="url" attr.type="string" for="node" id="d4"/>
+ <key attr.name="description" attr.type="string" for="node" id="d5"/>
+ <key for="node" id="d6" yfiles.type="nodegraphics"/>
+ <key attr.name="Beschreibung" attr.type="string" for="graph" id="d7"/>
+ <key attr.name="url" attr.type="string" for="edge" id="d8"/>
+ <key attr.name="description" attr.type="string" for="edge" id="d9"/>
+ <key for="edge" id="d10" yfiles.type="edgegraphics"/>
+ <graph edgedefault="directed" id="G">
+ <data key="d7"/>
+ <node id="n0">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="150.0" x="19.5" y="90.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="79.955078125" x="35.0224609375" y="6.015625">attachments</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n1">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="150.0" x="19.5" y="150.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="141.4609375" x="4.26953125" y="6.015625">attachmenttablemodel</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n2">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="150.0" x="655.5" y="395.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="60.859375" x="44.5703125" y="6.015625">context.h</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n3">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="150.0" x="199.5" y="150.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="80.705078125" x="34.6474609375" y="6.015625">editorpage.h</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n4">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="150.0" x="508.25" y="90.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="123.09765625" x="13.451171875" y="6.015625">fileencryptiondialog</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n5">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="150.0" x="553.25" y="0.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="47.60546875" x="51.197265625" y="6.015625">gpgwin</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n6">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="159.0" x="651.0" y="320.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="102.009765625" x="28.4951171875" y="6.015625">keydetailsdialog</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n7">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="159.0" x="462.0" y="320.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="87.63671875" x="35.681640625" y="6.015625">keygenthread</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n8">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="154.5" x="1029.0" y="320.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="43.05859375" x="55.720703125" y="6.015625">keylist</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n9">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="159.0" x="593.75" y="200.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="61.134765625" x="48.9326171875" y="6.015625">keymgmt</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n10">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="159.0" x="840.0" y="320.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="143.86328125" x="7.568359375" y="6.015625">keyserverfimportdialog</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n11">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="159.0" x="15.0" y="200.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="38.095703125" x="60.4521484375" y="6.015625">mime</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n12">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="125.0" x="953.75" y="90.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="88.451171875" x="18.2744140625" y="6.015625">settingsdialog</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n13">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="125.0" x="353.25" y="90.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="50.93359375" x="37.033203125" y="6.015625">textedit</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n14">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="135.0" x="785.75" y="150.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="114.654296875" x="10.1728515625" y="6.015625">verifydetailsdialog</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n15">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="141.0" x="782.75" y="200.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="115.298828125" x="12.8505859375" y="6.015625">verifykeydetailbox</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n16">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="141.0" x="782.75" y="90.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="105.560546875" x="17.7197265625" y="6.015625">verifynotification</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n17">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="30.0" width="135.0" x="379.5" y="150.0"/>
+ <y:Fill color="#FFCC99" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="63.859375" x="35.5703125" y="6.015625">quitdialog</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <edge id="e0" source="n0" target="n1">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e1" source="n1" target="n11">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e2" source="n6" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e3" source="n7" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="-30.0" ty="-15.0">
+ <y:Point x="541.5" y="365.0"/>
+ <y:Point x="700.5" y="365.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e4" source="n8" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="60.0" ty="-15.0">
+ <y:Point x="1106.25" y="380.0"/>
+ <y:Point x="790.5" y="380.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e5" source="n9" target="n8">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="59.625" sy="15.0" tx="-38.625" ty="-15.0">
+ <y:Point x="732.875" y="275.0"/>
+ <y:Point x="1067.625" y="275.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e6" source="n9" target="n7">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-59.625" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="613.625" y="245.0"/>
+ <y:Point x="541.5" y="245.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e7" source="n9" target="n6">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-19.875" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="653.375" y="305.0"/>
+ <y:Point x="730.5" y="305.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e8" source="n9" target="n10">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="19.875" sy="15.0" tx="-39.75" ty="-15.0">
+ <y:Point x="693.125" y="290.0"/>
+ <y:Point x="879.75" y="290.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e9" source="n10" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="30.0" ty="-15.0">
+ <y:Point x="919.5" y="365.0"/>
+ <y:Point x="760.5" y="365.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e10" source="n13" target="n3">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-31.25" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="384.5" y="135.0"/>
+ <y:Point x="274.5" y="135.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e11" source="n13" target="n17">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="31.25" sy="15.0" tx="0.0" ty="-15.0"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e12" source="n14" target="n15">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e13" source="n15" target="n8">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="35.25" sy="15.0" tx="38.625" ty="-15.0">
+ <y:Point x="888.5" y="245.0"/>
+ <y:Point x="1144.875" y="245.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e14" source="n15" target="n10">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-35.25" sy="15.0" tx="39.75" ty="-15.0">
+ <y:Point x="818.0" y="260.0"/>
+ <y:Point x="959.25" y="260.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e15" source="n16" target="n14">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e16" source="n5" target="n0">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-62.5" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="565.75" y="45.0"/>
+ <y:Point x="94.5" y="45.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e17" source="n5" target="n9">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="12.5" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="640.75" y="75.0"/>
+ <y:Point x="673.25" y="75.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e18" source="n5" target="n13">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-37.5" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="590.75" y="60.0"/>
+ <y:Point x="415.75" y="60.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e19" source="n5" target="n4">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-12.5" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="615.75" y="75.0"/>
+ <y:Point x="583.25" y="75.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e20" source="n5" target="n12">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="62.5" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="690.75" y="45.0"/>
+ <y:Point x="1016.25" y="45.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e21" source="n5" target="n16">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="37.5" sy="15.0" tx="0.0" ty="-15.0">
+ <y:Point x="665.75" y="60.0"/>
+ <y:Point x="853.25" y="60.0"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ </graph>
+ <data key="d0">
+ <y:Resources/>
+ </data>
+</graphml>
diff --git a/include/GPG4USB.h b/include/GPG4USB.h
new file mode 100644
index 00000000..6bcd085c
--- /dev/null
+++ b/include/GPG4USB.h
@@ -0,0 +1,15 @@
+//
+// Created by eric on 2021/5/12.
+//
+
+#ifndef GPG4USB_GPG4USB_H
+#define GPG4USB_GPG4USB_H
+
+
+#include <QtCore>
+#include <QtWidgets>
+#include <QtNetwork/QtNetwork>
+#include <QtPrintSupport/QtPrintSupport>
+
+
+#endif //GPG4USB_GPG4USB_H
diff --git a/include/aboutdialog.h b/include/aboutdialog.h
new file mode 100644
index 00000000..9370508f
--- /dev/null
+++ b/include/aboutdialog.h
@@ -0,0 +1,75 @@
+/*
+ * aboutdialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __ABOUTDIALOG_H__
+#define __ABOUTDIALOG_H__
+
+#include <include/GPG4USB.h>
+
+#include <QWidget>
+#include <QtGui>
+
+#include "gpgcontext.h"
+
+QT_BEGIN_NAMESPACE
+class QVBoxLayout;
+class QLabel;
+class QTabWidget;
+QT_END_NAMESPACE
+
+/**
+ * @brief Class containing the main tab of about dialog
+ *
+ */
+class InfoTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ InfoTab(QWidget *parent = 0);
+ };
+
+/**
+ * @brief Class containing the translator tab of about dialog
+ *
+ */
+class TranslatorsTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ TranslatorsTab(QWidget *parent = 0);
+ };
+
+ /**
+ * @brief Class for handling the about dialog
+ *
+ */
+class AboutDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ AboutDialog(QWidget *parent = 0);
+};
+
+#endif // __ABOUTDIALOG_H__
+
diff --git a/include/attachments.h b/include/attachments.h
new file mode 100644
index 00000000..2ffff3e0
--- /dev/null
+++ b/include/attachments.h
@@ -0,0 +1,68 @@
+/*
+ * attachments.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __ATTACHMENTS_H__
+#define __ATTACHMENTS_H__
+
+#include "attachmenttablemodel.h"
+#include <QtGui>
+#include <QWidget>
+
+QT_BEGIN_NAMESPACE
+class QTableView;
+class QHeaderView;
+class QVBoxLayout;
+class QMenu;
+class QMessageBox;
+class QContextMenuEvent;
+class QFileDialog;
+class QUrl;
+class QDesktopServices;
+class QSettings;
+class QApplication;
+QT_END_NAMESPACE
+
+class Attachments : public QWidget
+{
+ Q_OBJECT
+
+public slots:
+ void slotSaveFile();
+ void slotOpenFile();
+
+public:
+ Attachments(QWidget *parent = nullptr);
+ void addMimePart(MimePart *mp);
+
+private:
+ void createActions();
+ void saveByteArrayToFile(QByteArray outBuffer, QString filename);
+ QAction *saveFileAct;
+ QAction *openFileAct;
+ AttachmentTableModel *table;
+ QTableView *tableView;
+ QSettings settings;
+
+protected:
+ void contextMenuEvent(QContextMenuEvent *event);
+};
+
+#endif // __ATTACHMENTS_H__
diff --git a/include/attachmenttablemodel.h b/include/attachmenttablemodel.h
new file mode 100644
index 00000000..bb019dea
--- /dev/null
+++ b/include/attachmenttablemodel.h
@@ -0,0 +1,56 @@
+/*
+ * attachmenttablemodel.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __ATTACHMENTTABLEMODEL_H__
+#define __ATTACHMENTTABLEMODEL_H__
+
+#include "mime.h"
+#include <QIcon>
+#include <QFile>
+#include <QAbstractTableModel>
+
+QT_BEGIN_NAMESPACE
+class QStandardItem;
+QT_END_NAMESPACE
+
+class AttachmentTableModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+public:
+ AttachmentTableModel(QObject *parent = 0);
+ AttachmentTableModel(QList<MimePart> mimeparts, QObject *parent = 0);
+
+ int rowCount(const QModelIndex &parent) const;
+ int columnCount(const QModelIndex &parent) const;
+ QVariant data(const QModelIndex &index, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+
+ void add(MimePart mp);
+ MimePart getSelectedMimePart(QModelIndex index);
+ MimePart getMimePart(int index);
+ //QList<MimePart> getSelectedMimeParts(QModelIndexList indexes);
+
+private:
+ QList<MimePart> listOfMimeparts;
+};
+
+#endif // __ATTACHMENTTABLEMODEL_H__
diff --git a/include/editorpage.h b/include/editorpage.h
new file mode 100644
index 00000000..5fed07ce
--- /dev/null
+++ b/include/editorpage.h
@@ -0,0 +1,102 @@
+/*
+ * textpage.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __EDITORPAGE_H__
+#define __EDITORPAGE_H__
+
+#include <include/GPG4USB.h>
+
+#include "gpgconstants.h"
+
+
+QT_BEGIN_NAMESPACE
+class QVBoxLayout;
+class QHBoxLayout;
+class QString;
+class QLabel;
+QT_END_NAMESPACE
+
+/**
+ * @brief Class for handling a single tab of the tabwidget
+ *
+ */
+class EditorPage : public QWidget
+{
+ Q_OBJECT
+
+public:
+ /**
+ * @details Add layout and add plaintextedit
+ *
+ * @param filePath Path of the file handled in this tab
+ * @param parent Pointer to the parent widget
+ */
+ EditorPage(const QString &filePath = "", QWidget *parent = 0);
+
+ /**
+ * @details Get the filepath of the currently activated tab.
+ */
+ const QString& getFilePath() const;
+
+ /**
+ * @details Set filepath of currently activated tab.
+ *
+ * @param filePath The path to be set
+ */
+ void setFilePath(const QString &filePath);
+
+ /**
+ * @details Return pointer tp the textedit of the currently activated tab.
+ */
+ QTextEdit *getTextPage();
+
+ /**
+ * @details Show additional widget at buttom of currently active tab
+ *
+ * @param widget The widget to be added
+ * @param className The name to handle the added widget
+ */
+ void showNotificationWidget(QWidget *widget, const char *className);
+
+ /**
+ * @details Hide all widgets with the given className
+ *
+ * @param className The classname of the widgets to hide
+ */
+ void closeNoteByClass(const char *className);
+
+private:
+ QTextEdit *textPage; /** The textedit of the tab */
+ QVBoxLayout *mainLayout; /** The layout for the tab */
+ QWidget *notificationWidget; /** The notification widget shown at the buttom of the tab */
+ QMenu *verifyMenu; /** The menu in the notifiaction widget */
+ QString fullFilePath; /** The path to the file handled in the tab */
+ QLabel *verifyLabel; /** The label of the verify-notification widget */
+ bool signMarked; /** true, if the signed header is marked, false if not */
+
+private slots:
+ /**
+ * @details Format the gpg header in another font-style
+ */
+ void slotFormatGpgHeader();
+};
+
+#endif // __EDITORPAGE_H__
diff --git a/include/fileencryptiondialog.h b/include/fileencryptiondialog.h
new file mode 100755
index 00000000..af6edff5
--- /dev/null
+++ b/include/fileencryptiondialog.h
@@ -0,0 +1,118 @@
+/*
+ * fileencryptiondialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __FILEENCRYPTIONDIALOG_H__
+#define __FILEENCRYPTIONDIALOG_H__
+
+#include "gpgcontext.h"
+#include "keylist.h"
+#include "verifydetailsdialog.h"
+
+QT_BEGIN_NAMESPACE
+class QDialog;
+class QLineEdit;
+class QWidget;
+class QDialogButtonBox;
+class QLabel;
+class QPushButton;
+class QHBoxLayout;
+class QVBoxLayout;
+class QDebug;
+class QFileDialog;
+QT_END_NAMESPACE
+
+/**
+ * @brief
+ *
+ * @class FileEncryptionDialog fileencryptiondialog.h "fileencryptiondialog.h"
+ */
+class FileEncryptionDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+
+ enum DialogAction {
+ Encrypt,
+ Decrypt,
+ Sign,
+ Verify
+ };
+
+ /**
+ * @brief
+ *
+ * @fn FileEncryptionDialog
+ * @param ctx
+ * @param keyList
+ * @param parent
+ */
+ FileEncryptionDialog(GpgME::GpgContext *ctx, QStringList keyList, DialogAction action, QWidget *parent = 0);
+public slots:
+ /**
+ * @details
+ *
+ * @fn selectInputFile
+ */
+ void slotSelectInputFile();
+ /**
+ * @brief
+ *
+ * @fn selectOutputFile
+ */
+ void slotSelectOutputFile();
+ /**
+ * @brief
+ *
+ * @fn selectSignFile
+ */
+ void slotSelectSignFile();
+ /**
+ * @brief
+ *
+ * @fn executeAction
+ */
+ void slotExecuteAction();
+ /**
+ * @brief
+ *
+ * @fn hideKeyList
+ */
+ void slotHideKeyList();
+ /**
+ * @brief
+ *
+ * @fn showKeyList
+ */
+ void slotShowKeyList();
+
+private:
+ QLineEdit *outputFileEdit; /**< TODO */
+ QLineEdit *inputFileEdit; /**< TODO */
+ QLineEdit *signFileEdit; /**< TODO */
+ DialogAction mAction; /**< TODO */
+ QLabel *statusLabel; /**< TODO */
+protected:
+ GpgME::GpgContext *mCtx; /**< TODO */
+ KeyList *mKeyList; /**< TODO */
+
+};
+#endif // __FILEENCRYPTIONDIALOG_H__
diff --git a/include/findwidget.h b/include/findwidget.h
new file mode 100644
index 00000000..cd8602c7
--- /dev/null
+++ b/include/findwidget.h
@@ -0,0 +1,44 @@
+
+#ifndef FINDWIDGET_H
+#define FINDWIDGET_H
+
+#include <include/GPG4USB.h>
+
+#include "editorpage.h"
+
+#include <QWidget>
+
+/**
+ * @brief Class for handling the find widget shown at buttom of a textedit-page
+ */
+class FindWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ /**
+ * @brief
+ *
+ * @param parent The parent widget
+ */
+ explicit FindWidget(QWidget *parent, QTextEdit *edit);
+
+private:
+ void keyPressEvent( QKeyEvent* e );
+ /**
+ * @details Set background of findEdit to red, if no match is found (Documents textcursor position equals -1),
+ * otherwise set it to white.
+ */
+ void setBackground();
+
+ QTextEdit *mTextpage; /** Textedit associated to the notification */
+ QLineEdit *findEdit; /** Label holding the text shown in verifyNotification */
+ QTextCharFormat cursorFormat;
+
+private slots:
+ void slotFindNext();
+ void slotFindPrevious();
+ void slotFind();
+ void slotClose();
+};
+#endif // FINDWIDGET_H
diff --git a/include/gpgconstants.h b/include/gpgconstants.h
new file mode 100644
index 00000000..e01083cf
--- /dev/null
+++ b/include/gpgconstants.h
@@ -0,0 +1,40 @@
+/*
+ * gpgconstants.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef GPGCONSTANTS_H
+#define GPGCONSTANTS_H
+
+class QString;
+
+const int RESTART_CODE = 1000;
+
+class GpgConstants
+{
+public:
+ static const char* PGP_CRYPT_BEGIN;
+ static const char* PGP_CRYPT_END;
+ static const char* PGP_SIGNED_BEGIN;
+ static const char* PGP_SIGNED_END;
+ static const char* PGP_SIGNATURE_BEGIN;
+ static const char* PGP_SIGNATURE_END;
+};
+
+#endif // GPGCONSTANTS_H
diff --git a/include/gpgcontext.h b/include/gpgcontext.h
new file mode 100644
index 00000000..e7b79113
--- /dev/null
+++ b/include/gpgcontext.h
@@ -0,0 +1,185 @@
+/*
+ * gpgcontext.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __SGPGMEPP_CONTEXT_H__
+#define __SGPGMEPP_CONTEXT_H__
+
+#include <include/GPG4USB.h>
+
+#include "gpgconstants.h"
+#include <locale.h>
+#include <errno.h>
+#include <gpgme.h>
+#include <QLinkedList>
+#include <QtGui>
+
+QT_BEGIN_NAMESPACE
+class QMessageBox;
+class sstream;
+class QApplication;
+class QByteArray;
+class QString;
+QT_END_NAMESPACE
+
+class GpgKey
+{
+public:
+ GpgKey() {
+ privkey = false;
+ }
+ QString id;
+ QString name;
+ QString email;
+ QString fpr;
+ bool privkey;
+ bool expired;
+ bool revoked;
+};
+
+typedef QLinkedList< GpgKey > GpgKeyList;
+
+class GpgImportedKey
+{
+public:
+ QString fpr;
+ int importStatus;
+};
+
+typedef QLinkedList< GpgImportedKey > GpgImportedKeyList;
+
+class GpgImportInformation
+{
+public:
+ GpgImportInformation() {
+ considered = 0;
+ no_user_id = 0;
+ imported = 0;
+ imported_rsa = 0;
+ unchanged = 0;
+ new_user_ids = 0;
+ new_sub_keys = 0;
+ new_signatures = 0;
+ new_revocations = 0;
+ secret_read = 0;
+ secret_imported = 0;
+ secret_unchanged = 0;
+ not_imported = 0;
+ }
+
+ int considered;
+ int no_user_id;
+ int imported;
+ int imported_rsa;
+ int unchanged;
+ int new_user_ids;
+ int new_sub_keys;
+ int new_signatures;
+ int new_revocations;
+ int secret_read;
+ int secret_imported;
+ int secret_unchanged;
+ int not_imported;
+ GpgImportedKeyList importedKeys;
+};
+
+namespace GpgME
+{
+
+class GpgContext : public QObject
+{
+ Q_OBJECT
+
+public:
+ GpgContext(); // Constructor
+ ~GpgContext(); // Destructor
+ GpgImportInformation importKey(QByteArray inBuffer);
+ bool exportKeys(QStringList *uidList, QByteArray *outBuffer);
+ void generateKey(QString *params);
+ GpgKeyList listKeys();
+ void deleteKeys(QStringList *uidList);
+ bool encrypt(QStringList *uidList, const QByteArray &inBuffer,
+ QByteArray *outBuffer);
+ bool decrypt(const QByteArray &inBuffer, QByteArray *outBuffer);
+ void clearPasswordCache();
+ void exportSecretKey(QString uid, QByteArray *outBuffer);
+ gpgme_key_t getKeyDetails(QString uid);
+ gpgme_signature_t verify(QByteArray *inBuffer, QByteArray *sigBuffer = NULL);
+// void decryptVerify(QByteArray in);
+ bool sign(QStringList *uidList, const QByteArray &inBuffer, QByteArray *outBuffer, bool detached = false);
+ /**
+ * @details If text contains PGP-message, put a linebreak before the message,
+ * so that gpgme can decrypt correctly
+ *
+ * @param in Pointer to the QBytearray to check.
+ */
+ void preventNoDataErr(QByteArray *in);
+
+ GpgKey getKeyByFpr(QString fpr);
+ GpgKey getKeyById(QString id);
+
+ static QString gpgErrString(gpgme_error_t err);
+ static QString getGpgmeVersion();
+
+ /**
+ * @brief
+ *
+ * @param text
+ * @return \li 2, if the text is completly signed,
+ * \li 1, if the text is partially signed,
+ * \li 0, if the text is not signed at all.
+ */
+ int textIsSigned(const QByteArray &text);
+ QString beautifyFingerprint(QString fingerprint);
+
+signals:
+ void signalKeyDBChanged();
+
+private slots:
+ void slotRefreshKeyList();
+
+private:
+ gpgme_ctx_t mCtx;
+ gpgme_data_t in, out;
+ gpgme_error_t err;
+ gpgme_error_t readToBuffer(gpgme_data_t in, QByteArray *outBuffer);
+ QByteArray mPasswordCache;
+ QSettings settings;
+ bool debug;
+ GpgKeyList mKeyList;
+ int checkErr(gpgme_error_t err) const;
+ int checkErr(gpgme_error_t err, QString comment) const;
+
+ static gpgme_error_t passphraseCb(void *hook, const char *uid_hint,
+ const char *passphrase_info,
+ int last_was_bad, int fd);
+ gpgme_error_t passphrase(const char *uid_hint,
+ const char *passphrase_info,
+ int last_was_bad, int fd);
+
+ void executeGpgCommand(QStringList arguments,
+ QByteArray *stdOut,
+ QByteArray *stdErr);
+ QString gpgBin;
+ QString gpgKeys;
+};
+} // namespace GpgME
+
+#endif // __SGPGMEPP_CONTEXT_H__
diff --git a/include/helppage.h b/include/helppage.h
new file mode 100644
index 00000000..22aa9b13
--- /dev/null
+++ b/include/helppage.h
@@ -0,0 +1,50 @@
+/*
+ * helppage.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef HELPPAGE_H
+#define HELPPAGE_H
+
+#include <QWidget>
+#include <QTextBrowser>
+#include <QVBoxLayout>
+#include <QSettings>
+#include <QFile>
+#include <QLocale>
+
+class HelpPage : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit HelpPage(const QString path, QWidget *parent = 0);
+ QTextBrowser *getBrowser();
+
+signals:
+
+public slots:
+ void slotOpenUrl(QUrl url);
+
+private:
+ QTextBrowser *browser; /** The textbrowser of the tab */
+ QUrl localizedHelp(QUrl path);
+
+};
+
+#endif // HELPPAGE_H
diff --git a/include/keydetailsdialog.h b/include/keydetailsdialog.h
new file mode 100644
index 00000000..2774fe23
--- /dev/null
+++ b/include/keydetailsdialog.h
@@ -0,0 +1,87 @@
+/*
+ * keydetailsdialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYDETAILSDIALOG_H__
+#define __KEYDETAILSDIALOG_H__
+
+#include "gpgcontext.h"
+#include <gpgme.h>
+
+QT_BEGIN_NAMESPACE
+class QDateTime;
+class QVBoxLayout;
+class QHBoxLayout;
+class QDialogButtonBox;
+class QDialog;
+class QGroupBox;
+class QLabel;
+class QGridLayout;
+class QPushButton;
+QT_END_NAMESPACE
+
+class KeyDetailsDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWidget *parent = 0);
+
+ /**
+ * @details Return QString with a space inserted at every fourth character
+ *
+ * @param fingerprint The fingerprint to be beautified
+ */
+ static QString beautifyFingerprint(QString fingerprint);
+
+private slots:
+ /**
+ * @details Export the key to a file, which is choosen in a file dialog
+ */
+ void slotExportPrivateKey();
+
+ /**
+ * @details Copy the fingerprint to clipboard
+ */
+ void slotCopyFingerprint();
+
+private:
+ QString *keyid; /** The id of the key the details should be shown for */
+ GpgME::GpgContext *mCtx; /** The current gpg-context */
+
+ QGroupBox *ownerBox; /** Groupbox containing owner information */
+ QGroupBox *keyBox; /** Groupbox containing key information */
+ QGroupBox *fingerprintBox; /** Groupbox containing fingerprint information */
+ QGroupBox *additionalUidBox; /** Groupbox containing information about additional uids */
+ QDialogButtonBox *buttonBox; /** Box containing the close button */
+
+ QLabel *nameVarLabel; /** Label containng the keys name */
+ QLabel *emailVarLabel; /** Label containng the keys email */
+ QLabel *commentVarLabel; /** Label containng the keys commment */
+ QLabel *keySizeVarLabel; /** Label containng the keys keysize */
+ QLabel *expireVarLabel; /** Label containng the keys expiration date */
+ QLabel *createdVarLabel; /** Label containng the keys creation date */
+ QLabel *algorithmVarLabel; /** Label containng the keys algorithm */
+ QLabel *keyidVarLabel; /** Label containng the keys keyid */
+ QLabel *fingerPrintVarLabel; /** Label containng the keys fingerprint */
+ QLabel *addUserIdsVarLabel; /** Label containng info about keys additional uids */
+};
+
+#endif // __KEYDETAILSDIALOG_H__
diff --git a/include/keygendialog.h b/include/keygendialog.h
new file mode 100644
index 00000000..b3f41833
--- /dev/null
+++ b/include/keygendialog.h
@@ -0,0 +1,93 @@
+/*
+ * keygendialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYGENDIALOG_H__
+#define __KEYGENDIALOG_H__
+
+#include "keygenthread.h"
+#include "gpgcontext.h"
+#include <QtGui>
+
+QT_BEGIN_NAMESPACE
+class QDateTime;
+class QDialogButtonBox;
+class QDialog;
+class QGridLayout;
+QT_END_NAMESPACE
+
+class KeyGenDialog : public QDialog
+{
+ Q_OBJECT
+
+ /**
+ * @details Constructor of this class
+ *
+ * @param ctx The current GpgME context
+ * @param key The key to show details of
+ * @param parent The parent of this widget
+ */
+ public:
+ KeyGenDialog(GpgME::GpgContext* ctx, QWidget *parent = 0);
+
+private:
+ void generateKeyDialog();
+
+ /**
+ * @details Check the password strength of the text in the passwordEdit member
+ *
+ * @return digit between 0 and 6, the higher the more secure is the password
+ */
+ int checkPassWordStrength();
+
+ GpgME::GpgContext *mCtx; /** The current gpg context */
+ KeyGenThread *keyGenThread; /** Thread for key generation */
+ QStringList errorMessages; /** List of errors occuring when checking entries of lineedits */
+ QDialogButtonBox *buttonBox; /** Box for standardbuttons */
+ QLabel *errorLabel; /** Label containing error message */
+ QLineEdit *nameEdit; /** Lineedit for the keys name */
+ QLineEdit *emailEdit; /** Lineedit for the keys email */
+ QLineEdit *commentEdit; /** Lineedit for the keys comment */
+ QLineEdit *passwordEdit; /** Lineedit for the keys password */
+ QLineEdit *repeatpwEdit; /** Lineedit for the repetition of the keys password */
+ QSpinBox *keySizeSpinBox; /** Spinbox for the keys size (in bit) */
+ QComboBox *keyTypeComboBox; /** Combobox for Keytpe */
+ QDateTimeEdit *dateEdit; /** Dateedit for expiration date */
+ QCheckBox *expireCheckBox; /** Checkbox, if key should expire */
+ QSlider *pwStrengthSlider; /** Slider showing the password strength */
+
+private slots:
+ /**
+ * @details when expirebox was checked/unchecked, enable/disable the expiration date box
+ */
+ void slotExpireBoxChanged();
+
+ /**
+ * @details When passwordedit changed, set new value for password strength slider
+ */
+ void slotPasswordEditChanged();
+
+ /**
+ * @details check all lineedits for false entries. Show error, when there is one, otherwise generate the key
+ */
+ void slotKeyGenAccept();
+
+};
+#endif // __KEYGENDIALOG_H__
diff --git a/include/keygenthread.h b/include/keygenthread.h
new file mode 100644
index 00000000..6fc61e96
--- /dev/null
+++ b/include/keygenthread.h
@@ -0,0 +1,56 @@
+/*
+ * keygenthread.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYGENTHREAD_H__
+#define __KEYGENTHREAD_H__
+
+#include "gpgcontext.h"
+#include <qthread.h>
+#include <iostream>
+#include <string>
+#include <cmath>
+#include <QtGui>
+
+QT_BEGIN_NAMESPACE
+class QMessageBox;
+QT_END_NAMESPACE
+
+class KeyGenThread : public QThread
+{
+ Q_OBJECT
+
+public:
+ KeyGenThread(QString keyGenParams, GpgME::GpgContext *ctx);
+
+signals:
+ void signalKeyGenerated();
+
+private:
+ QString keyGenParams;
+ GpgME::GpgContext *mCtx;
+ bool abort;
+ QMutex mutex;
+
+protected:
+ void run();
+
+};
+#endif // __KEYGENTHREAD_H__
diff --git a/include/keyimportdetaildialog.h b/include/keyimportdetaildialog.h
new file mode 100644
index 00000000..dde1f54a
--- /dev/null
+++ b/include/keyimportdetaildialog.h
@@ -0,0 +1,55 @@
+/*
+ * keyimportdetailsdialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYIMPORTDETAILSDIALOG_H__
+#define __KEYIMPORTDETAILSDIALOG_H__
+
+#include "gpgcontext.h"
+#include <gpgme.h>
+
+QT_BEGIN_NAMESPACE
+class QGridLayout;
+class QDialogButtonBox;
+QT_END_NAMESPACE
+
+class KeyImportDetailDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ KeyImportDetailDialog(GpgME::GpgContext* ctx, GpgImportInformation result, QWidget *parent = 0);
+
+private:
+ void createGeneralInfoBox();
+ void createKeyInfoBox();
+ void createKeysTable();
+ void createButtonBox();
+ QString getStatusString(int keyStatus);
+
+ QTableWidget *keysTable;
+ GpgME::GpgContext *mCtx;
+ QGroupBox *generalInfoBox;
+ QGroupBox *keyInfoBox;
+ QDialogButtonBox *buttonBox;
+ GpgImportInformation mResult;
+};
+
+#endif // __KEYIMPORTDETAILSDIALOG_H__
diff --git a/include/keylist.h b/include/keylist.h
new file mode 100644
index 00000000..46663862
--- /dev/null
+++ b/include/keylist.h
@@ -0,0 +1,76 @@
+/*
+ * keylist.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYLIST_H__
+#define __KEYLIST_H__
+
+#include <include/GPG4USB.h>
+
+#include "gpgcontext.h"
+#include "keyimportdetaildialog.h"
+
+QT_BEGIN_NAMESPACE
+class QWidget;
+class QVBoxLayout;
+class QLabel;
+class QTableWidget;
+class QMenu;
+QT_END_NAMESPACE
+
+class KeyList : public QWidget
+{
+ Q_OBJECT
+
+public:
+ KeyList(GpgME::GpgContext *ctx, QWidget *parent = 0);
+ void setColumnWidth(int row, int size);
+ void addMenuAction(QAction *act);
+
+ QStringList *getChecked();
+ QStringList *getPrivateChecked();
+ QStringList *getAllPrivateKeys();
+
+ void setChecked(QStringList *keyIds);
+ //QStringList *getPrivateChecked();
+ QStringList *getSelected();
+ void markKeys(QStringList *keyIds);
+ bool containsPrivateKeys();
+
+public slots:
+ void slotRefresh();
+ void uploadKeyToServer(QByteArray *keys);
+
+private:
+ void importKeys(QByteArray inBuffer);
+ GpgME::GpgContext *mCtx;
+ QTableWidget *mKeyList;
+ QMenu *popupMenu;
+ QNetworkAccessManager *qnam;
+
+private slots:
+ void uploadFinished();
+
+protected:
+ void contextMenuEvent(QContextMenuEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dropEvent(QDropEvent* event);};
+
+#endif // __KEYLIST_H__
diff --git a/include/keymgmt.h b/include/keymgmt.h
new file mode 100755
index 00000000..22a8b66c
--- /dev/null
+++ b/include/keymgmt.h
@@ -0,0 +1,92 @@
+/*
+ * keymgmt.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYMGMT_H__
+#define __KEYMGMT_H__
+
+#include "keylist.h"
+#include "keygenthread.h"
+#include "keydetailsdialog.h"
+#include "keyimportdetaildialog.h"
+#include "keyserverimportdialog.h"
+#include "keygendialog.h"
+#include <QtGui>
+
+QT_BEGIN_NAMESPACE
+class QMainWindow;
+class iostream;
+class QFileDialog;
+class QIcon;
+class QAction;
+class QApplication;
+QT_END_NAMESPACE
+
+class KeyMgmt : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ KeyMgmt(GpgME::GpgContext* ctx, QWidget *parent = 0);
+ QAction *importKeyFromClipboardAct;
+ QAction *importKeyFromFileAct;
+ QAction *importKeyFromKeyServerAct;
+
+public slots:
+ void slotImportKeyFromFile();
+ void slotImportKeyFromClipboard();
+ void slotImportKeyFromKeyServer();
+ void slotImportKeys(QByteArray inBuffer);
+ void slotExportKeyToFile();
+ void slotExportKeyToClipboard();
+ void slotDeleteSelectedKeys();
+ void slotDeleteCheckedKeys();
+ void slotGenerateKeyDialog();
+ void slotShowKeyDetails();
+
+signals:
+ void signalStatusBarChanged(QString);
+
+private:
+ void createMenus();
+ void createActions();
+ void createToolBars();
+ void deleteKeysWithWarning(QStringList *uidList);
+
+ KeyList *mKeyList;
+ GpgME::GpgContext *mCtx;
+ QMenu *fileMenu;
+ QMenu *keyMenu;
+ QMenu *importKeyMenu;
+ QAction *exportKeyToFileAct;
+ QAction *exportKeyToClipboardAct;
+ QAction *deleteCheckedKeysAct;
+ QAction *deleteSelectedKeysAct;
+ QAction *generateKeyDialogAct;
+ QAction *closeAct;
+ QAction *showKeyDetailsAct;
+ QMessageBox msgbox;
+ KeyServerImportDialog *importDialog;
+
+protected:
+ void closeEvent(QCloseEvent *event);
+};
+
+#endif // __KEYMGMT_H__
diff --git a/include/keyserverimportdialog.h b/include/keyserverimportdialog.h
new file mode 100644
index 00000000..bd13cd7b
--- /dev/null
+++ b/include/keyserverimportdialog.h
@@ -0,0 +1,89 @@
+/*
+ *
+ * keyserverimportdialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYSERVERIMPORTDIALOG_H__
+#define __KEYSERVERIMPORTDIALOG_H__
+
+#include <include/GPG4USB.h>
+
+#include "gpgcontext.h"
+#include "keyimportdetaildialog.h"
+#include "keylist.h"
+
+QT_BEGIN_NAMESPACE
+class QDialog;
+class QDir;
+class QUrl;
+class QtGui;
+class QPixmap;
+class QNetworkReply;
+class QComboBox;
+class QLabel;
+class QPushButton;
+class QTableWidget;
+class QTableWidgetItem;
+class QLineEdit;
+class QPalette;
+class QTreeWidget;
+class QTreeWidgetItem;
+QT_END_NAMESPACE
+
+class KeyServerImportDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ KeyServerImportDialog(GpgME::GpgContext *ctx, KeyList *keyList, QWidget *parent = 0);
+ void slotImport(QStringList keyIds);
+ void slotImport(QStringList keyIds, QUrl keyserverUrl);
+
+private slots:
+ void slotImport();
+ void slotSearchFinished();
+ void slotImportFinished();
+ void slotSearch();
+
+private:
+ void createKeysTable();
+ void setMessage(const QString &text, bool error);
+ void close();
+ void importKeys(QByteArray inBuffer);
+
+ QPushButton *createButton(const QString &text, const char *member);
+ QComboBox *createComboBox();
+ GpgME::GpgContext *mCtx;
+ KeyList *mKeyList;
+ QLineEdit *searchLineEdit;
+ QComboBox *keyServerComboBox;
+ QLabel *searchLabel;
+ QLabel *keyServerLabel;
+ QLabel *message;
+ QLabel *icon;
+ QPushButton *closeButton;
+ QPushButton *importButton;
+ QPushButton *searchButton;
+ QTableWidget *keysTable;
+ QUrl url;
+ QNetworkAccessManager *qnam;
+
+};
+#endif // __KEYSERVERIMPORTDIALOG_H__
diff --git a/include/mainwindow.h b/include/mainwindow.h
new file mode 100644
index 00000000..8f728f25
--- /dev/null
+++ b/include/mainwindow.h
@@ -0,0 +1,376 @@
+/*
+ * mainwindow.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __GPGWIN_H__
+#define __GPGWIN_H__
+
+#include <include/GPG4USB.h>
+
+#include "gpgconstants.h"
+#include "attachments.h"
+#include "keymgmt.h"
+#include "textedit.h"
+#include "fileencryptiondialog.h"
+#include "settingsdialog.h"
+#include "aboutdialog.h"
+#include "verifynotification.h"
+#include "findwidget.h"
+#include "wizard.h"
+
+QT_BEGIN_NAMESPACE
+class QMainWindow;
+class QTextEdit;
+class QWidget;
+class QVBoxLayout;
+class QGridLayout;
+class iostream;
+class QtGui;
+class QString;
+class QFileDialog;
+class QStringList;
+class QIcon;
+class QMessageBox;
+class QVBoxLayout;
+class QAction;
+class QMenu;
+class QTextEdit;
+class QComboBox;
+class QPushButton;
+class QRadioButton;
+class QButtonGroup;
+class QApplication;
+class QDockWidget;
+QT_END_NAMESPACE
+
+/**
+ * @brief
+ *
+ */
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ /**
+ * @brief
+ *
+ */
+ MainWindow();
+public slots:
+ void slotSetStatusBarText(QString text);
+
+protected:
+ /**
+ * @details Close event shows a save dialog, if there are unsaved documents on exit.
+ * @param event
+ */
+ void closeEvent(QCloseEvent *event);
+
+private slots:
+ /**
+ * @details encrypt the text of currently active textedit-page
+ * with the currently checked keys
+ */
+ void slotEncrypt();
+
+ /**
+ * @details Show a passphrase dialog and decrypt the text of currently active tab.
+ */
+ void slotDecrypt();
+
+ /**
+ * @details Sign the text of currently active tab with the checked private keys
+ */
+ void slotSign();
+
+ /**
+ * @details Verify the text of currently active tab and show verify information.
+ * If document is signed with a key, which is not in keylist, show import missing
+ * key from keyserver in Menu of verifynotification.
+ */
+ void slotVerify();
+
+ /**
+ * @details Show the details of the first of the first of selected keys
+ */
+ void slotShowKeyDetails();
+
+ /**
+ * @details Refresh key information of selected keys from default keyserver
+ */
+ void refreshKeysFromKeyserver();
+
+ /**
+ * @details upload the selected key to the keyserver
+ */
+ void uploadKeyToServer();
+
+ /**
+ * @details Open find widget.
+ */
+ void slotFind();
+
+ /**
+ * @details start the wizard
+ */
+ void slotStartWizard();
+
+ /**
+ * @details Import keys from currently active tab to keylist if possible.
+ */
+ void slotImportKeyFromEdit();
+
+ /**
+ * @details Append the selected keys to currently active textedit.
+ */
+ void slotAppendSelectedKeys();
+
+ /**
+ * @details Copy the mailaddress of selected key to clipboard.
+ * Method for keylists contextmenu.
+ */
+ void slotCopyMailAddressToClipboard();
+
+ /**
+ * @details Open key management dialog.
+ */
+ void slotOpenKeyManagement();
+
+ /**
+ * @details Open about-dialog.
+ */
+ void slotAbout();
+
+ /**
+ * @details Open dialog for encrypting file.
+ */
+ void slotFileEncrypt();
+
+ /**
+ * @details Open dialog for decrypting file.
+ */
+ void slotFileDecrypt();
+
+ /**
+ * @details Open dialog for signing file.
+ */
+ void slotFileSign();
+
+ /**
+ * @details Open dialog for verifying file.
+ */
+ void slotFileVerify();
+
+ /**
+ * @details Open settings-dialog.
+ */
+ void slotOpenSettingsDialog();
+
+ /**
+ * @details Open online-tutorial in default browser.
+ */
+ void slotOpenTutorial();
+
+ /**
+ * @details Open integrated help in new tab.
+ */
+ void slotOpenHelp();
+
+ /**
+ * @details Open integrated help in new tab with the specified page.
+ */
+ void slotOpenHelp(const QString page);
+
+ /**
+ * @details Show a warn message in status bar, if there are files in attachment folder.
+ */
+ void slotCheckAttachmentFolder();
+
+ /**
+ * @details Open online translation tutorial in default browser.
+ */
+ void slotOpenTranslate();
+
+ /**
+ * @details Replace double linebreaks by single linebreaks in currently active tab.
+ */
+ void slotCleanDoubleLinebreaks();
+
+ /**
+ * @details Cut the existing PGP header and footer from current tab.
+ */
+ void slotCutPgpHeader();
+
+ /**
+ * @details Add PGP header and footer to current tab.
+ */
+ void slotAddPgpHeader();
+
+// void dropEvent(QDropEvent *event);
+
+ /**
+ * @details Disable tab related actions, if number of tabs is 0.
+ * @param number number of the opened tabs and -1, if no tab is opened
+ */
+ void slotDisableTabActions(int number);
+
+ /**
+ * @details get value of member restartNeeded to needed.
+ * @param needed true, if application has to be restarted
+ */
+ void slotSetRestartNeeded(bool needed);
+
+private:
+ /**
+ * @details Create actions for the main-menu and the context-menu of the keylist.
+ */
+ void createActions();
+
+ /**
+ * @details create the menu of the main-window.
+ */
+ void createMenus();
+
+ /**
+ * @details Create edit-, crypt- and key-toolbars.
+ */
+ void createToolBars();
+
+ /**
+ * @details Create statusbar of mainwindow.
+ */
+ void createStatusBar();
+
+ /**
+ * @details Create keylist- and attachment-dockwindows.
+ */
+ void createDockWindows();
+
+ /**
+ * @details Create attachment-dockwindow.
+ */
+ void createAttachmentDock();
+
+ /**
+ * @details close attachment-dockwindow.
+ */
+ void closeAttachmentDock();
+
+ /**
+ * @details Load settings from ini-file.
+ */
+ void restoreSettings();
+
+ /**
+ * @details Save settings to ini-file.
+ */
+ void saveSettings();
+
+ /**
+ * @brief
+ *
+ * @param message
+ */
+ void parseMime(QByteArray *message);
+
+ /**
+ * @brief return true, if restart is needed
+ */
+ bool getRestartNeeded();
+
+ TextEdit *edit; /** Tabwidget holding the edit-windows */
+ QMenu *fileMenu; /** Submenu for file-operations*/
+ QMenu *editMenu; /** Submenu for text-operations*/
+ QMenu *cryptMenu; /** Submenu for crypt-operations */
+ QMenu *fileEncMenu; /** Submenu for file crypt operations */
+ QMenu *helpMenu; /** Submenu for help-operations */
+ QMenu *keyMenu; /** Submenu for key-operations */
+ QMenu *viewMenu; /** Submenu for view operations */
+ QMenu *importKeyMenu; /** Sumenu for import operations */
+ QMenu *steganoMenu; /** Submenu for steganographic operations*/
+ QToolBar *cryptToolBar; /** Toolbar holding crypt actions */
+ QToolBar *fileToolBar; /** Toolbar holding file actions */
+ QToolBar *editToolBar; /** Toolbar holding edit actions */
+ QToolBar *specialEditToolBar; /** Toolbar holding special edit actions */
+ QToolBar *keyToolBar; /** Toolbar holding key operations */
+ QToolButton* importButton; /** Toolbutton for import dropdown menu in toolbar */
+ QToolButton* fileEncButton; /** Toolbutton for file cryption dropdown menu in toolbar */
+ QDockWidget *keylistDock; /** Encrypt Dock*/
+ QDockWidget *attachmentDock; /** Attachment Dock */
+ QDialog *genkeyDialog; /** Dialog for key generation */
+
+ QAction *newTabAct; /** Action to create new tab */
+ QAction *switchTabUpAct; /** Action to switch tab up*/
+ QAction *switchTabDownAct; /** Action to switch tab down */
+ QAction *openAct; /** Action to open file */
+ QAction *saveAct; /** Action to save file */
+ QAction *saveAsAct; /** Action to save file as */
+ QAction *printAct; /** Action to print */
+ QAction *closeTabAct; /** Action to print */
+ QAction *quitAct; /** Action to quit application */
+ QAction *encryptAct; /** Action to encrypt text */
+ QAction *decryptAct; /** Action to decrypt text */
+ QAction *signAct; /** Action to sign text */
+ QAction *verifyAct; /** Action to verify text */
+ QAction *importKeyFromEditAct; /** Action to import key from edit */
+ QAction *cleanDoubleLinebreaksAct; /** Action to remove double line breaks */
+
+ QAction *appendSelectedKeysAct; /** Action to append selected keys to edit */
+ QAction *copyMailAddressToClipboardAct; /** Action to copy mail to clipboard */
+ QAction *openKeyManagementAct; /** Action to open key management */
+ QAction *copyAct; /** Action to copy text */
+ QAction *quoteAct; /** Action to quote text */
+ QAction *cutAct; /** Action to cut text */
+ QAction *pasteAct; /** Action to paste text */
+ QAction *selectallAct; /** Action to select whole text */
+ QAction *findAct; /** Action to find text */
+ QAction *undoAct; /** Action to undo last action */
+ QAction *redoAct; /** Action to redo last action */
+ QAction *zoomInAct; /** Action to zoom in */
+ QAction *zoomOutAct; /** Action to zoom out */
+ QAction *aboutAct; /** Action to open about dialog */
+ QAction *fileEncryptAct; /** Action to open dialog for encrypting file */
+ QAction *fileDecryptAct; /** Action to open dialog for decrypting file */
+ QAction *fileSignAct; /** Action to open dialog for signing file */
+ QAction *fileVerifyAct; /** Action to open dialog for verifying file */
+ QAction *openSettingsAct; /** Action to open settings dialog */
+ QAction *openTranslateAct; /** Action to open translate doc*/
+ QAction *openTutorialAct; /** Action to open tutorial */
+ QAction *openHelpAct; /** Action to open tutorial */
+ QAction *showKeyDetailsAct; /** Action to open key-details dialog */
+ QAction *refreshKeysFromKeyserverAct; /** Action to refresh a key from keyserver */
+ QAction *uploadKeyToServerAct; /** Action to append selected keys to edit */
+ QAction *startWizardAct; /** Action to open the wizard */
+ QAction *cutPgpHeaderAct; /** Action for cutting the PGP header */
+ QAction *addPgpHeaderAct; /** Action for adding the PGP header */
+
+ QLabel *statusBarIcon; /**< TODO */
+ QSettings settings; /**< TODO */
+ KeyList *mKeyList; /**< TODO */
+ Attachments *mAttachments; /**< TODO */
+ GpgME::GpgContext *mCtx; /**< TODO */
+ KeyMgmt *keyMgmt; /**< TODO */
+ KeyServerImportDialog *importDialog; /**< TODO */
+ bool attachmentDockCreated;
+ bool restartNeeded;
+};
+
+#endif // __GPGWIN_H__
diff --git a/include/mime.h b/include/mime.h
new file mode 100644
index 00000000..ed8d1fda
--- /dev/null
+++ b/include/mime.h
@@ -0,0 +1,136 @@
+/*
+ * mime.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __MIME_H__
+#define __MIME_H__
+
+#include <include/GPG4USB.h>
+
+#include <QHashIterator>
+#include <QHash>
+
+QT_BEGIN_NAMESPACE
+class QByteArray;
+class QDebug;
+class QTextCodec;
+QT_END_NAMESPACE
+
+class HeadElem
+{
+public:
+ QString name;
+ QString value;
+ QHash<QString, QString> params;
+
+ /* QDataStream & operator<<(QDataStream& Stream, const HeadElem& H)
+ {
+ return Stream << H.name << " : " << H.value;
+ }*/
+
+};
+
+class Header
+{
+public:
+ QList<HeadElem> headElems;
+
+ Header() {}
+
+ Header(QList <HeadElem> heads) {
+ headElems = heads;
+ }
+
+ void setHeader(QList <HeadElem> heads) {
+ headElems = heads;
+ }
+
+ QString getValue(QString key) {
+ foreach(HeadElem tmp, headElems) {
+ //qDebug() << "gv: " << tmp.name << ":" << tmp.value;
+ if (tmp.name == key)
+ return tmp.value;
+ }
+ return "";
+ }
+
+ QHash<QString, QString> getParams(QString key) {
+ foreach(HeadElem tmp, headElems) {
+ //qDebug() << "gv: " << tmp.name << ":" << tmp.value;
+ if (tmp.name == key)
+ //return tmp.value;
+ return tmp.params;
+ }
+ return *(new QHash<QString, QString>());
+ }
+
+ QString getParam(QString key, QString pKey) {
+ foreach(HeadElem tmp, headElems) {
+ //qDebug() << "gv: " << tmp.name << ":" << tmp.value;
+ if (tmp.name == key)
+ return tmp.params.value(pKey);
+ }
+ return "";
+ }
+
+
+};
+
+class MimePart
+{
+public:
+ Header header;
+ QByteArray body;
+
+
+
+ /* QDataStream & operator<<(QDataStream& Stream, const Part& P)
+ {
+ foreach(HeadElem tmp, header) {
+ Stream << tmp << "\n";
+ }
+ return Stream;
+ }*/
+};
+
+class Mime
+{
+
+public:
+ Mime(QByteArray *message); // Constructor
+ ~Mime(); // Destructor
+ static bool isMultipart(QByteArray *message);
+ static bool isMime(const QByteArray *message);
+ QList<MimePart> parts() {
+ return mPartList;
+ }
+ void splitParts(QByteArray *message);
+ static Header getHeader(const QByteArray *message);
+ static Header parseHeader(QByteArray *header);
+ static void quotedPrintableDecode(const QByteArray& in, QByteArray& out);
+
+private:
+ QByteArray *mMessage;
+ QByteArray *mBoundary;
+ QList<MimePart> mPartList;
+
+};
+
+#endif // __MIME_H__
diff --git a/include/quitdialog.h b/include/quitdialog.h
new file mode 100755
index 00000000..5fff5527
--- /dev/null
+++ b/include/quitdialog.h
@@ -0,0 +1,51 @@
+/*
+ * keymgmt.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __QUITDIALOG_H__
+#define __QUITDIALOG_H__
+
+#include <include/GPG4USB.h>
+#include <QtGui>
+
+QT_BEGIN_NAMESPACE
+class QTableWidget;
+QT_END_NAMESPACE
+
+class QuitDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ QuitDialog(QWidget *parent,QHash<int, QString> unsavedDocs);
+ bool isDiscarded();
+ QList <int> getTabIdsToSave();
+
+private slots:
+ void slotMyDiscard();
+
+private:
+ QAction *closeAct;
+ QLabel *nameLabel;
+ bool discarded;
+ QTableWidget *mFileList;
+};
+
+#endif // __QUITDIALOG_H__
diff --git a/include/settingsdialog.h b/include/settingsdialog.h
new file mode 100755
index 00000000..0b5f1642
--- /dev/null
+++ b/include/settingsdialog.h
@@ -0,0 +1,217 @@
+/*
+ * settingsdialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __SETTINGSDIALOG_H__
+#define __SETTINGSDIALOG_H__
+
+#include "keylist.h"
+
+#include <QHash>
+#include <QWidget>
+#include <QtGui>
+
+QT_BEGIN_NAMESPACE
+class QDialog;
+class QRadioButton;
+class QDialogButtonBox;
+class QHBoxLayout;
+class QVBoxLayout;
+class QComboBox;
+class QCheckBox;
+class QDebug;
+class QSettings;
+class QApplication;
+class QDir;
+class QTranslator;
+class QLabel;
+class QButtonGroup;
+class QGroupBox;
+class QFileInfo;
+class QTabWidget;
+QT_END_NAMESPACE
+
+class GeneralTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ GeneralTab(GpgME::GpgContext *ctx, QWidget *parent = 0);
+ void setSettings();
+ void applySettings();
+
+ private:
+ QCheckBox *rememberPasswordCheckBox;
+ QCheckBox *importConfirmationcheckBox;
+ QCheckBox *saveCheckedKeysCheckBox;
+ QCheckBox *importConfirmationCheckBox;
+ QComboBox *langSelectBox;
+ QComboBox *ownKeySelectBox;
+ QHash<QString, QString> lang;
+ QHash<QString, QString> keyIds;
+ QString ownKeyId;
+ KeyList *mKeyList;
+ GpgME::GpgContext *mCtx; /** The current gpg context */
+
+private slots:
+ void slotOwnKeyIdChanged();
+ void slotLanguageChanged();
+
+signals:
+ void signalRestartNeeded(bool needed);
+
+};
+
+ class MimeTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ MimeTab(QWidget *parent = 0);
+ void setSettings();
+ void applySettings();
+
+ private:
+ QCheckBox *mimeParseCheckBox;
+ QCheckBox *mimeQPCheckBox;
+ QCheckBox *mimeOpenAttachmentCheckBox;
+
+ signals:
+ void signalRestartNeeded(bool needed);
+
+ };
+
+ class AppearanceTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ //void setSettings();
+ AppearanceTab(QWidget *parent = 0);
+ void setSettings();
+ void applySettings();
+
+ private:
+ QButtonGroup *iconStyleGroup;
+ QRadioButton *iconSizeSmall;
+ QRadioButton *iconSizeMedium;
+ QRadioButton *iconSizeLarge;
+ QButtonGroup *iconSizeGroup;
+ QRadioButton *iconTextButton;
+ QRadioButton *iconIconsButton;
+ QRadioButton *iconAllButton;
+ QCheckBox *windowSizeCheckBox;
+
+ signals:
+ void signalRestartNeeded(bool needed);
+
+ };
+
+ class KeyserverTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ KeyserverTab(QWidget *parent = 0);
+ void setSettings();
+ void applySettings();
+
+ private:
+ QComboBox *comboBox;
+ QLineEdit *newKeyServerEdit;
+
+ private slots:
+ void addKeyServer();
+
+ signals:
+ void signalRestartNeeded(bool needed);
+
+ };
+
+ class AdvancedTab : public QWidget
+ {
+ Q_OBJECT
+
+ public:
+ AdvancedTab(QWidget *parent = 0);
+ void setSettings();
+ void applySettings();
+
+ private:
+ QCheckBox *steganoCheckBox;
+
+ signals:
+ void signalRestartNeeded(bool needed);
+
+ };
+
+ class GpgPathsTab : public QWidget
+ {
+ Q_OBJECT
+ public:
+ GpgPathsTab(QWidget *parent = 0);
+ void applySettings();
+
+private:
+ QString getRelativePath(const QString dir1,const QString dir2);
+ QString defKeydbPath; /** The default keydb path used by gpg4usb */
+ QString accKeydbPath; /** The currently used keydb path */
+ QLabel *keydbLabel;
+ void setSettings();
+
+ private slots:
+ QString chooseKeydbDir();
+ void setKeydbPathToDefault();
+
+ };
+
+ class SettingsDialog : public QDialog
+{
+ Q_OBJECT
+
+ public:
+ SettingsDialog(GpgME::GpgContext *ctx, QWidget *parent = 0);
+ GeneralTab *generalTab;
+ MimeTab *mimeTab;
+ AppearanceTab *appearanceTab;
+ KeyserverTab *keyserverTab;
+ AdvancedTab *advancedTab;
+ GpgPathsTab *gpgPathsTab;
+ static QHash<QString, QString> listLanguages();
+
+ public slots:
+ void slotAccept();
+
+ signals:
+ void signalRestartNeeded(bool needed);
+
+ private:
+ QTabWidget *tabWidget;
+ QDialogButtonBox *buttonBox;
+ GpgME::GpgContext *mCtx; /** The current gpg context */
+ bool restartNeeded;
+ bool getRestartNeeded();
+
+ private slots:
+ void slotSetRestartNeeded(bool needed);
+
+};
+
+#endif // __SETTINGSDIALOG_H__
diff --git a/include/textedit.h b/include/textedit.h
new file mode 100644
index 00000000..12e4970e
--- /dev/null
+++ b/include/textedit.h
@@ -0,0 +1,275 @@
+/*
+ * textedit.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __TEXTEDIT_H__
+#define __TEXTEDIT_H__
+
+#include "editorpage.h"
+#include "helppage.h"
+#include "quitdialog.h"
+
+QT_BEGIN_NAMESPACE
+class QDebug;
+class QtGui;
+class QFileDialog;
+class QMessageBox;
+class QFileInfo;
+class QApplication;
+class QFile;
+class QTextEdit;
+class QFileDialog;
+class QMessageBox;
+class QWidget;
+class QString;
+class QTabWidget;
+QT_END_NAMESPACE
+
+/**
+ * @brief TextEdit class
+ */
+class TextEdit : public QWidget
+{
+ Q_OBJECT
+public:
+ /**
+ * @brief
+ */
+ TextEdit();
+
+ /**
+ * @details Load the content of file into the current textpage
+ *
+ * @param fileName QString containing the filename to load
+ * @return nothing
+ */
+ void loadFile(const QString &fileName);
+
+
+ /**
+ * @details Checks if there are unsaved documents in any tab,
+ * which may need to be saved. Call this function before
+ * closing the programme or all tabs.
+ * @return \li false, if the close event should be aborted.
+ * \li true, otherwise
+ */
+ bool maybeSaveAnyTab();
+
+ int tabCount();
+ /**
+ * @details textpage of the currently activated tab
+ * @return \li reference to QTextEdit if tab has one
+ * \li 0 otherwise (e.g. if helppage)
+ */
+ QTextEdit* curTextPage();
+
+ QTextBrowser* curHelpPage();
+
+ /**
+ * @details List of currently unsaved tabs.
+ * @returns QHash<int, QString> Hash of tabindexes and title of unsaved tabs.
+ */
+ QHash<int, QString> unsavedDocuments();
+
+ QTabWidget *tabWidget; /** Widget containing the tabs of the editor */
+
+public slots:
+ /**
+ * @details Return pointer to the currently activated tabpage.
+ *
+ */
+ EditorPage *slotCurPage();
+
+ /**
+ * @details Insert a ">" at the begining of every line of current textedit.
+ */
+ void slotQuote();
+
+ /**
+ * @details replace the text of currently active textedit with given text.
+ * @param text to fill on.
+ */
+ void slotFillTextEditWithText(QString text);
+
+ /**
+ * @details Saves the content of the current tab, if it has a filepath
+ * otherwise it calls saveAs for the current tab
+ */
+ void slotSave();
+
+ /**
+ * @details Opens a savefiledialog and calls saveFile with the choosen filename.
+ *
+ * @return Return the return value of the savefile method
+ */
+ bool slotSaveAs();
+
+ /**
+ * @details Show an OpenFileDoalog and open the file in a new tab.
+ * Shows an error dialog, if the open fails.
+ * Set the focus to the tab of the opened file.
+ */
+ void slotOpen();
+
+ /**
+ * @details Open a print-dialog for the current tab
+ */
+ void slotPrint();
+
+ /**
+ * @details Adds a new tab with the title "untitled"+countpage+".txt"
+ * Sets the focus to the new tab. Increase Tab-Count by one
+ */
+ void slotNewTab();
+
+ /**
+ * @details Adds a new tab with the given title and opens given html file.
+ * Increase Tab-Count by one
+ * @param title title for the tab
+ * @param path path for html file to show
+ */
+ void slotNewHelpTab(QString title, QString path);
+
+ /**
+ * @details put a * in front of current tabs title, if current textedit is modified
+ */
+ void slotShowModified();
+
+ /**
+ * @details close the current tab and decrease TabWidget->count by \a 1
+ *
+ */
+ void slotCloseTab();
+
+ /**
+ * @details Switch to the next tab.
+ *
+ */
+ void slotSwitchTabUp();
+
+ /**
+ * @details Switch to the previous tab.
+ *
+ */
+ void slotSwitchTabDown();
+
+private:
+ /**
+ * @details return just a filename stripped of a whole path
+ *
+ * @param a filename path
+ * @return QString containing the filename
+ */
+ QString strippedName(const QString &fullFileName);
+
+ /**
+ * @brief
+ *
+ */
+ bool maybeSaveFile();
+
+ /**
+ * @brief
+ *
+ * @param askToSave
+ */
+ bool maybeSaveCurrentTab(bool askToSave);
+
+ /****************************************************************************************
+ * Name: countPage
+ * Description: int cotaining the number of added tabs
+ */
+ int countPage; /* TODO */
+
+private slots:
+ /**
+ * @details Remove the tab with given index
+ *
+ * @param index Tab-number to remove
+ */
+ void removeTab(int index);
+
+ /**
+ * @details Cut selected text in current textpage.
+ */
+ void slotCut();
+
+ /**
+ * @details Copy selected text of current textpage to clipboard.
+ */
+ void slotCopy();
+
+ /**
+ * @details Paste text from clipboard to current textpage.
+ */
+ void slotPaste();
+
+ /**
+ * @details Undo last change in current textpage.
+ *
+ */
+ void slotUndo();
+ /****************************************************************************************
+ * Name: redo
+ * Description: redo last change in current textpage
+ * Parameters: none
+ * Return Values: none
+ * Change on members: none
+ */
+ /**
+ * @brief
+ *
+ */
+ void slotRedo();
+
+ void slotZoomIn();
+ void slotZoomOut();
+ /****************************************************************************************
+ * Name: selectAll
+ * Description: select all in current textpage
+ * Parameters: none
+ * Return Values: none
+ * Change on members: none
+ */
+ /**
+ * @brief
+ *
+ */
+ void slotSelectAll();
+
+protected:
+ // void dragEnterEvent(QDragEnterEvent *event);
+ // void dropEvent(QDropEvent* event);
+ /****************************************************************************************
+ * Name: saveFile
+ * Description: Saves the content of currentTab to the file filename
+ * Parameters: QString filename contains the full path of the file to save
+ * Return Values: true, if the file was saved succesfully
+ * false, if parameter filename is empty or the saving failed
+ * Change on members: sets isModified of the current tab to false
+ */
+ /**
+ * @brief
+ *
+ * @param fileName
+ */
+ bool saveFile(const QString &fileName);
+};
+#endif // __TEXTEDIT_H__
diff --git a/include/verifydetailsdialog.h b/include/verifydetailsdialog.h
new file mode 100644
index 00000000..b138f466
--- /dev/null
+++ b/include/verifydetailsdialog.h
@@ -0,0 +1,48 @@
+/*
+ * verifydetailsdialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __VERIFYDETAILSDIALOG_H__
+#define __VERIFYDETAILSDIALOG_H__
+
+#include "editorpage.h"
+#include "verifykeydetailbox.h"
+#include <QDialog>
+
+class VerifyDetailsDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ explicit VerifyDetailsDialog(QWidget *parent, GpgME::GpgContext* ctx, KeyList* mKeyList, QByteArray* inputData, QByteArray* inputSignature = 0);
+
+private slots:
+ void slotRefresh();
+
+private:
+ GpgME::GpgContext *mCtx;
+ KeyList *mKeyList;
+ QHBoxLayout *mainLayout;
+ QWidget *mVbox;
+ QByteArray* mInputData; /** Data to be verified */
+ QByteArray* mInputSignature; /** Data to be verified */
+ QDialogButtonBox* buttonBox;
+};
+
+#endif // __VERIFYDETAILSDIALOG_H__
diff --git a/include/verifykeydetailbox.h b/include/verifykeydetailbox.h
new file mode 100644
index 00000000..29d198e3
--- /dev/null
+++ b/include/verifykeydetailbox.h
@@ -0,0 +1,47 @@
+/*
+ * verifydetailbox.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __VERIFYKEYDETAILBOX_H__
+#define __VERIFYKEYDETAILBOX_H__
+
+#include "keylist.h"
+#include "keyserverimportdialog.h"
+#include <QDialog>
+#include <QGroupBox>
+
+class VerifyKeyDetailBox: public QGroupBox
+{
+ Q_OBJECT
+public:
+ explicit VerifyKeyDetailBox(QWidget *parent, GpgME::GpgContext* ctx, KeyList* mKeyList, gpgme_signature_t signature);
+
+private slots:
+ void slotImportFormKeyserver();
+
+private:
+ GpgME::GpgContext* mCtx;
+ KeyList* mKeyList;
+ QString beautifyFingerprint(QString fingerprint);
+ QString fpr;
+};
+
+#endif // __VERIFYKEYDETAILBOX_H__
+
diff --git a/include/verifynotification.h b/include/verifynotification.h
new file mode 100644
index 00000000..60e55f91
--- /dev/null
+++ b/include/verifynotification.h
@@ -0,0 +1,109 @@
+/*
+ * verifynotification.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __VERIFYNOTIFICATION_H__
+#define __VERIFYNOTIFICATION_H__
+
+#include "editorpage.h"
+#include "verifydetailsdialog.h"
+#include <gpgme.h>
+#include <QWidget>
+
+QT_BEGIN_NAMESPACE
+class QLabel;
+class QHBoxLayout;
+class QMenu;
+class QPushButton;
+QT_END_NAMESPACE
+
+/**
+ * @details Enumeration for the status of Verifylabel
+ */
+typedef enum
+{
+ VERIFY_ERROR_OK = 0,
+ VERIFY_ERROR_WARN = 1,
+ VERIFY_ERROR_CRITICAL = 2,
+ VERIFY_ERROR_NEUTRAL =3,
+} verify_label_status;
+
+/**
+ * @brief Class for handling the verifylabel shown at buttom of a textedit-page
+ */
+class VerifyNotification : public QWidget
+{
+ Q_OBJECT
+public:
+ /**
+ * @brief
+ *
+ * @param ctx The GPGme-Context
+ * @param parent The parent widget
+ */
+ explicit VerifyNotification(QWidget *parent, GpgME::GpgContext *ctx, KeyList *keyList,QTextEdit *edit);
+ /**
+ * @details Set the text and background-color of verify notification.
+ *
+ * @param text The text to be set.
+ * @param verifyLabelStatus The status of label to set the specified color.
+ */
+ void setVerifyLabel(QString text, verify_label_status verifyLabelStatus);
+
+ /**
+ * @details Show the import from keyserver-action in detailsmenu.
+ * @param visible show the action, if visible is true, otherwise hide it.
+ */
+ void showImportAction(bool visible);
+
+ QStringList *keysNotInList; /** List with keys, which are in signature but not in keylist */
+
+
+public slots:
+ /**
+ * @details Import the keys contained in keysNotInList from keyserver
+ *
+ */
+ void slotImportFromKeyserver();
+
+ /**
+ * @details Show a dialog with signing details.
+ */
+ void slotShowVerifyDetails();
+
+ /**
+ * @details Refresh the contents of dialog.
+ */
+ bool slotRefresh();
+
+private:
+ QMenu *detailMenu; /** Menu for te Button in verfiyNotification */
+ QAction *importFromKeyserverAct; /** Action for importing keys from keyserver which are notin keylist */
+ QAction *showVerifyDetailsAct; /** Action for showing verify detail dialog */
+ QPushButton *detailsButton; /** Button shown in verifynotification */
+ QLabel *verifyLabel; /** Label holding the text shown in verifyNotification */
+ GpgME::GpgContext *mCtx; /** GpgME Context */
+ KeyList *mKeyList; /** Table holding the keys */
+ QTextEdit *mTextpage; /** Textedit associated to the notification */
+ QVector<QString> verifyDetailStringVector; /** Vector containing the text for labels in verifydetaildialog */
+ QVector<verify_label_status> verifyDetailStatusVector; /** Vector containing the status for labels in verifydetaildialog */
+
+};
+#endif // __VERIFYNOTIFICATION_H__
diff --git a/include/wizard.h b/include/wizard.h
new file mode 100644
index 00000000..4ed34c19
--- /dev/null
+++ b/include/wizard.h
@@ -0,0 +1,167 @@
+/*
+ * wizard.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+
+#ifndef WIZARD_H
+#define WIZARD_H
+
+#include <QWizard>
+#include "keygendialog.h"
+#include "keymgmt.h"
+#include "gpgconstants.h"
+#include "settingsdialog.h"
+
+class QCheckBox;
+class QLabel;
+class QLineEdit;
+class QRadioButton;
+
+class Wizard : public QWizard
+{
+ Q_OBJECT
+ Q_ENUMS(WizardPages)
+
+public:
+ enum WizardPages { Page_Intro, Page_Choose, Page_ImportFromGpg4usb, Page_ImportFromGnupg, Page_GenKey,
+ Page_Conclusion };
+
+ Wizard(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent = 0);
+ static bool importPubAndSecKeysFromDir(const QString dir, KeyMgmt *keyMgmt);
+
+private:
+ GpgME::GpgContext *mCtx;
+ KeyMgmt *mKeyMgmt;
+
+private slots:
+ void slotWizardAccepted();
+
+signals:
+ void signalOpenHelp(QString page);
+};
+
+class IntroPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ IntroPage(QWidget *parent = 0);
+ QHash<QString,QString> languages;
+ int nextId() const;
+
+private slots:
+ void slotLangChange(QString lang);
+};
+
+class ChoosePage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ChoosePage(QWidget *parent = 0);
+
+private slots:
+ void slotJumpPage(const QString& page);
+
+private:
+ int nextId() const;
+ int nextPage;
+};
+
+class ImportFromGpg4usbPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ImportFromGpg4usbPage(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent = 0);
+
+private slots:
+ /**
+ * @details Import keys from gnupg-homedir, private or/and public depend on the checked boxes
+ */
+ void slotImportFromOlderGpg4usb();
+ bool slotImportConfFromGpg4usb(QString dir);
+
+private:
+ int nextId() const;
+
+ KeyMgmt *mKeyMgmt;
+ GpgME::GpgContext *mCtx;
+ QCheckBox *gpg4usbKeyCheckBox;
+ QCheckBox *gpg4usbConfigCheckBox;
+};
+
+class ImportFromGnupgPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ImportFromGnupgPage(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent = 0);
+
+private slots:
+ /**
+ * @details Import keys from gnupg-homedir, private or/and public depend on the checked boxes
+ */
+ void slotrImportKeysFromGnupg();
+
+private:
+ KeyMgmt *mKeyMgmt;
+ int nextId() const;
+
+ /**
+ * @details String containing the gnupg-homedir
+ * @returns String containg the gnupg-homedir, but NULL, if the in windows registry entry
+ * doesn't exist or in linux ~/.gnupg doesn't exist
+ */
+ QString getGnuPGHome();
+
+ GpgME::GpgContext *mCtx;
+ QPushButton *importFromGnupgButton;
+};
+
+class KeyGenPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ KeyGenPage(GpgME::GpgContext *ctx, QWidget *parent = 0);
+ int nextId() const;
+
+private slots:
+ void slotGenerateKeyDialog();
+
+private:
+ GpgME::GpgContext *mCtx;
+};
+
+class ConclusionPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ConclusionPage(QWidget *parent = 0);
+ int nextId() const;
+
+private:
+ QCheckBox *dontShowWizardCheckBox;
+ QCheckBox *openHelpCheckBox;
+};
+
+#endif
diff --git a/qmake-linux-glibc2.3.sh b/qmake-linux-glibc2.3.sh
new file mode 100755
index 00000000..c3c0b70e
--- /dev/null
+++ b/qmake-linux-glibc2.3.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# libstdc++.a -> /usr/lib/gcc-lib/i486-linux/3.3.5/libstdc++.a
+
+qtwind="$(pwd)/winbuild/qt4.5"
+qtx11d="$(pwd)/linbuild/qt4.5"
+
+$qtx11d/bin/qmake -spec $qtx11d/mkspecs/linux-g++-32 "TARGET=start_linux" "LIBS +=./linbuild/lib/libgpgme.a ./linbuild/lib/libgpg-error.a -static-libgcc -L./linbuild/lib -lX11 -lXrender -lfontconfig -lXext -lrt -L/usr/X11R6/lib -L./linbuild/lib" "DEFINES += STATICLINUX" "QMAKE_INCDIR_QT = $qtx11d/include" "QMAKE_LIBDIR_QT = $qtx11d/lib" "QMAKE_QMAKE = $qtx11d/bin/qmake" "QMAKE_MOC = $qtx11d/bin/moc" "QMAKE_UIC = $qtx11d/bin/uic" "QMAKE_RCC = $qtx11d/bin/rcc" "$@"
+
diff --git a/qmake-linux.sh b/qmake-linux.sh
new file mode 100755
index 00000000..1ea68d7f
--- /dev/null
+++ b/qmake-linux.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+qtwind="$(pwd)/winbuild/qt4.7"
+qtx11d="$(pwd)/linbuild/qt4.7"
+
+$qtx11d/bin/qmake -spec $qtx11d/mkspecs/linux-g++-32 "TARGET=start_linux" \
+ "LIBS +=./linbuild/lib/libgpgme.a ./linbuild/lib/libgpg-error.a -L./linbuild/lib -static-libgcc" \
+ "DEFINES += STATICLINUX" "QMAKE_INCDIR_QT = $qtx11d/include" "QMAKE_LIBDIR_QT = $qtx11d/lib" \
+ "QMAKE_QMAKE = $qtx11d/bin/qmake" "QMAKE_MOC = $qtx11d/bin/moc" "QMAKE_UIC = $qtx11d/bin/uic" \
+ "QMAKE_RCC = $qtx11d/bin/rcc" "$@"
+
diff --git a/qmake-linux64.sh b/qmake-linux64.sh
new file mode 100755
index 00000000..ca253f3c
--- /dev/null
+++ b/qmake-linux64.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+qtwind="$(pwd)/winbuild/qt4.8"
+qtx11d="$(pwd)/linbuild/qt4.8"
+
+$qtx11d/bin/qmake -spec $qtx11d/mkspecs/linux-g++-64 "TARGET=start_linux" "INCLUDEPATH += ./linbuild/include" \
+ "LIBS +=./linbuild/lib64/libgpgme.a ./linbuild/lib64/libgpg-error.a -L./linbuild/lib64 -static-libgcc" \
+ "DEFINES += STATICLINUX" "QMAKE_INCDIR_QT = $qtx11d/include" "QMAKE_LIBDIR_QT = $qtx11d/lib" \
+ "QMAKE_QMAKE = $qtx11d/bin/qmake" "QMAKE_MOC = $qtx11d/bin/moc" "QMAKE_UIC = $qtx11d/bin/uic" \
+ "QMAKE_RCC = $qtx11d/bin/rcc" "$@"
+
diff --git a/qmake-windows.sh b/qmake-windows.sh
new file mode 100755
index 00000000..95a45a9e
--- /dev/null
+++ b/qmake-windows.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+qtwind="$(pwd)/winbuild/qt4.5"
+qtx11d="$(pwd)/linbuild/qt4.5"
+#mingwb="$(ls /usr/ | grep mingw32 | head --lines 1)"
+mingwb=i586-mingw32msvc
+
+$qtx11d/bin/qmake -spec $qtx11d/mkspecs/win32-g++ "TARGET=start_windows" "INCLUDEPATH += ./winbuild/include" "LIBS +=./winbuild/lib/libgpgme.a ./winbuild/lib/libgpg-error.a" "DEFINES += STATICWINDOWS" "QMAKE_CC = $mingwb-gcc -m32" "QMAKE_CXX = $mingwb-g++ -m32" "QMAKE_INCDIR_QT = $qtwind/include" "QMAKE_LIBDIR_QT = $qtwind/lib" "QMAKE_LINK = $mingwb-g++" "QMAKE_COPY_DIR = cp -r" "QMAKE_COPY = cp" "QMAKE_COPY_DIR = cp -r" "QMAKE_MOVE = mv" "QMAKE_DEL_FILE = rm" "QMAKE_CHK_DIR_EXISTS = test -d" "QMAKE_QMAKE = $qtx11d/bin/qmake" "QMAKE_MOC = $qtx11d/bin/moc" "QMAKE_UIC = $qtx11d/bin/uic" "QMAKE_RCC = $qtx11d/bin/rcc" "QMAKE_RC = $mingwb-windres" "QMAKE_LFLAGS += -Wl,-subsystem,windows" "$@"
+
diff --git a/release/COPYING b/release/COPYING
new file mode 100644
index 00000000..b4e13b15
--- /dev/null
+++ b/release/COPYING
@@ -0,0 +1,676 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
+
diff --git a/release/README b/release/README
new file mode 100644
index 00000000..ac1ed34b
--- /dev/null
+++ b/release/README
@@ -0,0 +1,49 @@
+ABOUT
+-----
+gpg4usb is an easy to use, small portable editor with the possibility
+to encrypt and decrypt any text-message or -file you want. For encryption it acts as
+a gpg-frontend (http://gnupg.org/). Its intend is to be used from an usb-stick,
+running on Windows(TM) and Linux. Providing a mac-binary is on our TODO-list.
+
+Our aim is, to give anyone the possibility to send and receive secure encrypted
+messages anywhere - on any computer out there, no matter if Microsoft Windows(TM)
+or Linux is running on it. Therefore it's usage should be self-describing, and the
+user-interface is kept as simple as possible.
+
+Of course gpg4usb is open source, as are included libs and binaries.
+
+OBTAINING
+---------
+You can get prepacked zip-files from http://gpg4usb.cpunk.de/download.html .
+For retrieving the source checkout http://cpunk.de/svn/src/ .
+
+HOWTO USE
+---------
+1. Unzip gpg4usb.zip on your usb-stick.
+2. start programm with start_windows.exe or start_linux (depending on your os)
+3. import your private key and some public keys
+4. enjoy portable encryption ;-)
+
+CONTACT
+-------
+If you have any questions and/or suggestions contact us at
[email protected] - or feel free to meet us at [email protected]
+
+Our homepage is located at http://gpg4usb.cpunk.de .
+
+LICENSES
+--------
+gpg4usb itself is licensed under the GPLv3 (see COPYING).
+
+There are some libraries and the gpg-binary included in the zip-file / a static
+gpg-build which (may) have different licenses, for more information check
+their homepages. You can also obtain the sources from there.
+
+GPG: http://gnupg.org/
+QT: http://trolltech.no/ , http://trolltech.no/downloads/opensource
+
+Iconset used is Nuvola (http://icon-king.com/?p=15), which has a LGPL License
+
+The key image in the wizard (keys12.jpg) is a croped version of
+http://www.flickr.com/photos/laureenp/6141822934/, which is licensed cc by-nc-sa.
+Our derived work is also cc by-nc-sa
diff --git a/release/TRANSLATORS b/release/TRANSLATORS
new file mode 100644
index 00000000..ec4a869d
--- /dev/null
+++ b/release/TRANSLATORS
@@ -0,0 +1,11 @@
+Viriato/Phol (es)
+Russell (my)
+Alessandro (pt_br)
+Kirill (ru)
+Tom (vi)
+Jedi (zh_tw)
+Åke (sv)
+Bogaczm (pl)
+Ahmad (ar)
+Elad (he)
+Chen (zh)
diff --git a/release/bin/COPYING.txt b/release/bin/COPYING.txt
new file mode 100644
index 00000000..44325404
--- /dev/null
+++ b/release/bin/COPYING.txt
@@ -0,0 +1,676 @@
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
diff --git a/release/bin/README.txt b/release/bin/README.txt
new file mode 100644
index 00000000..a690f3f5
--- /dev/null
+++ b/release/bin/README.txt
@@ -0,0 +1,822 @@
+
+ GnuPG - The GNU Privacy Guard
+ -------------------------------
+ Version 1.4.9
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+ This file is free software; as a special exception the author
+ gives unlimited permission to copy and/or distribute it, with or
+ without modifications, as long as this notice is preserved.
+
+ This file is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, to the extent permitted by law; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE.
+
+
+ Intro
+ -----
+
+ GnuPG is GNU's tool for secure communication and data storage.
+ It can be used to encrypt data and to create digital signatures.
+ It includes an advanced key management facility and is compliant
+ with the proposed OpenPGP Internet standard as described in RFC2440.
+
+ GnuPG works best on GNU/Linux or *BSD systems. Most other Unices
+ are also supported but are not as well tested as the Free Unices.
+ See http://www.gnupg.org/download/supported_systems.html for a
+ list of systems which are known to work.
+
+ See the file COPYING for copyright and warranty information.
+
+ Because GnuPG does not use use any patented algorithms it is not
+ by default fully compatible with PGP 2.x, which uses the patented
+ IDEA algorithm. See http://www.gnupg.org/why-not-idea.html for
+ more information on this subject, including what to do if you are
+ legally entitled to use IDEA.
+
+ The default public key algorithms are DSA and Elgamal, but RSA is
+ also supported. Symmetric algorithms available are AES (with 128,
+ 192, and 256 bit keys), 3DES, Blowfish, CAST5 and Twofish. Digest
+ algorithms available are MD5, RIPEMD/160, SHA-1, SHA-256, SHA-384,
+ and SHA-512. Compression algorithms available are ZIP, ZLIB, and
+ BZIP2 (with libbz2 installed).
+
+
+ Installation
+ ------------
+
+ Please read the file INSTALL and the sections in this file
+ related to the installation. Here is a quick summary:
+
+ 1) Check that you have unmodified sources. See below on how to do
+ this. Don't skip it - this is an important step!
+
+ 2) Unpack the tarball. With GNU tar you can do it this way:
+ "tar xzvf gnupg-x.y.z.tar.gz". If got a bzip2 compressed
+ tarball you need to use: "tar xjvf gnupg-x.y.z.tar.bz2".
+
+ 3) "cd gnupg-x.y.z"
+
+ 4) "./configure"
+
+ 5) "make"
+
+ 6) "make install"
+
+ 7) You end up with a "gpg" binary in /usr/local/bin.
+
+ 8) To avoid swapping out of sensitive data, you can install "gpg"
+ setuid root. If you don't do so, you may want to add the
+ option "no-secmem-warning" to ~/.gnupg/gpg.conf
+
+
+ How to Verify the Source
+ ------------------------
+
+ In order to check that the version of GnuPG which you are going to
+ install is an original and unmodified one, you can do it in one of
+ the following ways:
+
+ a) If you already have a trusted Version of GnuPG installed, you
+ can simply check the supplied signature:
+
+ $ gpg --verify gnupg-x.y.z.tar.gz.sig
+
+ This checks that the detached signature gnupg-x.y.z.tar.gz.sig
+ is indeed a signature of gnupg-x.y.z.tar.gz. The key currently
+ used to create this signature is:
+
+ "pub 1024R/1CE0C630 2006-01-01 Werner Koch (dist sig) <[email protected]>"
+
+ If you do not have this key, you can get it from the source in
+ the file doc/samplekeys.asc (use "gpg --import doc/samplekeys.asc"
+ to add it to the keyring) or from any keyserver. You have to
+ make sure that this is really the key and not a faked one. You
+ can do this by comparing the output of:
+
+ $ gpg --fingerprint 0x1CE0C630
+
+ with the fingerprint published elsewhere.
+
+ Please note, that you have to use an old version of GnuPG to
+ do all this stuff. *Never* use the version which you are going
+ to check!
+
+
+ b) If you don't have any of the above programs, you have to verify
+ the SHA1 checksum:
+
+ $ sha1sum gnupg-x.y.z.tar.gz
+
+ This should yield an output _similar_ to this:
+
+ fd9351b26b3189c1d577f0970f9dcadc1234abcd gnupg-x.y.z.tar.gz
+
+ Now check that this checksum is _exactly_ the same as the one
+ published via the announcement list and probably via Usenet.
+
+
+ Documentation
+ -------------
+
+ The manual will be distributed separately under the name "gph".
+ An online version of the latest manual draft is available at the
+ GnuPG web pages:
+
+ http://www.gnupg.org/documentation/
+
+ A list of frequently asked questions is available in the GnuPG
+ distribution in the file doc/FAQ and online as:
+
+ http://www.gnupg.org/documentation/faqs.html
+
+ A couple of HOWTO documents are available online; for a listing see:
+
+ http://www.gnupg.org/documentation/howtos.html
+
+ A man page with a description of all commands and options gets installed
+ along with the program.
+
+
+ Introduction
+ ------------
+
+ Here is a brief overview on how to use GnuPG - it is strongly suggested
+ that you read the manual and other information about the use of
+ cryptography. GnuPG is only a tool, secure usage requires that
+ YOU KNOW WHAT YOU ARE DOING.
+
+ The first time you run gpg, it will create a .gnupg directory in
+ your home directory and populate it with a default configuration
+ file. Once this is done, you may create a new key, or if you
+ already have keyrings from PGP, you can import them into GnuPG
+ with:
+
+ gpg --import path/to/pgp/keyring/pubring.pkr
+ and
+ gpg --import path/to/pgp/keyring/secring.skr
+
+ The normal way to create a key is
+
+ gpg --gen-key
+
+ This asks some questions and then starts key generation. To create
+ good random numbers for the key parameters, GnuPG needs to gather
+ enough noise (entropy) from your system. If you see no progress
+ during key generation you should start some other activities such
+ as moving the mouse or hitting the CTRL and SHIFT keys.
+
+ Generate a key ONLY on a machine where you have direct physical
+ access - don't do it over the network or on a machine also used
+ by others, especially if you have no access to the root account.
+
+ When you are asked for a passphrase use a good one which you can
+ easily remember. Don't make the passphrase too long because you
+ have to type it for every decryption or signing; but, - AND THIS
+ IS VERY IMPORTANT - use a good one that is not easily to guess
+ because the security of the whole system relies on your secret key
+ and the passphrase that protects it when someone gains access to
+ your secret keyring. One good way to select a passphrase is to
+ figure out a short nonsense sentence which makes some sense for
+ you and modify it by inserting extra spaces, non-letters and
+ changing the case of some characters - this is really easy to
+ remember especially if you associate some pictures with it.
+
+ Next, you should create a revocation certificate in case someone
+ gets knowledge of your secret key or you forgot your passphrase
+
+ gpg --gen-revoke your_user_id
+
+ Run this command and store the revocation certificate away. The output
+ is always ASCII armored, so that you can print it and (hopefully
+ never) re-create it if your electronic media fails.
+
+ Now you can use your key to create digital signatures
+
+ gpg -s file
+
+ This creates a file "file.gpg" which is compressed and has a
+ signature attached.
+
+ gpg -sa file
+
+ Same as above, but creates a file "file.asc" which is ASCII armored
+ and and ready for sending by mail. It is better to use your
+ mailers features to create signatures (The mailer uses GnuPG to do
+ this) because the mailer has the ability to MIME encode such
+ signatures - but this is not a security issue.
+
+ gpg -s -o out file
+
+ Creates a signature of "file", but writes the output to the file
+ "out".
+
+ Everyone who knows your public key (you can and should publish
+ your key by putting it on a key server, a web page or in your .plan
+ file) is now able to check whether you really signed this text
+
+ gpg --verify file
+
+ GnuPG now checks whether the signature is valid and prints an
+ appropriate message. If the signature is good, you know at least
+ that the person (or machine) has access to the secret key which
+ corresponds to the published public key.
+
+ If you run gpg without an option it will verify the signature and
+ create a new file that is identical to the original. gpg can also
+ run as a filter, so that you can pipe data to verify trough it
+
+ cat signed-file | gpg | wc -l
+
+ which will check the signature of signed-file and then display the
+ number of lines in the original file.
+
+ To send a message encrypted to someone you can use
+
+ gpg -e -r heine file
+
+ This encrypts "file" with the public key of the user "heine" and
+ writes it to "file.gpg"
+
+ echo "hello" | gpg -ea -r heine | mail heine
+
+ Ditto, but encrypts "hello\n" and mails it as ASCII armored message
+ to the user with the mail address heine.
+
+ gpg -se -r heine file
+
+ This encrypts "file" with the public key of "heine" and writes it
+ to "file.gpg" after signing it with your user id.
+
+ gpg -se -r heine -u Suttner file
+
+ Ditto, but sign the file with your alternative user id "Suttner"
+
+
+ GnuPG has some options to help you publish public keys. This is
+ called "exporting" a key, thus
+
+ gpg --export >all-my-keys
+
+ exports all the keys in the keyring and writes them (in a binary
+ format) to "all-my-keys". You may then mail "all-my-keys" as an
+ MIME attachment to someone else or put it on an FTP server. To
+ export only some user IDs, you give them as arguments on the command
+ line.
+
+ To mail a public key or put it on a web page you have to create
+ the key in ASCII armored format
+
+ gpg --export --armor | mail [email protected]
+
+ This will send all your public keys to your friend panther.
+
+ If you have received a key from someone else you can put it
+ into your public keyring. This is called "importing"
+
+ gpg --import [filenames]
+
+ New keys are appended to your keyring and already existing
+ keys are updated. Note that GnuPG does not import keys that
+ are not self-signed.
+
+ Because anyone can claim that a public key belongs to her
+ we must have some way to check that a public key really belongs
+ to the owner. This can be achieved by comparing the key during
+ a phone call. Sure, it is not very easy to compare a binary file
+ by reading the complete hex dump of the file - GnuPG (and nearly
+ every other program used for management of cryptographic keys)
+ provides other solutions.
+
+ gpg --fingerprint <username>
+
+ prints the so called "fingerprint" of the given username which
+ is a sequence of hex bytes (which you may have noticed in mail
+ sigs or on business cards) that uniquely identifies the public
+ key - different keys will always have different fingerprints.
+ It is easy to compare fingerprints by phone and I suggest
+ that you print your fingerprint on the back of your business
+ card. To see the fingerprints of the secondary keys, you can
+ give the command twice; but this is normally not needed.
+
+ If you don't know the owner of the public key you are in trouble.
+ Suppose however that friend of yours knows someone who knows someone
+ who has met the owner of the public key at some computer conference.
+ Suppose that all the people between you and the public key holder
+ may now act as introducers to you. Introducers signing keys thereby
+ certify that they know the owner of the keys they sign. If you then
+ trust all the introducers to have correctly signed other keys, you
+ can be be sure that the other key really belongs to the one who
+ claims to own it.
+
+ There are 2 steps to validate a key:
+ 1. First check that there is a complete chain
+ of signed keys from the public key you want to use
+ and your key and verify each signature.
+ 2. Make sure that you have full trust in the certificates
+ of all the introduces between the public key holder and
+ you.
+ Step 2 is the more complicated part because there is no easy way
+ for a computer to decide who is trustworthy and who is not. GnuPG
+ leaves this decision to you and will ask you for a trust value
+ (here also referenced as the owner-trust of a key) for every key
+ needed to check the chain of certificates. You may choose from:
+ a) "I don't know" - then it is not possible to use any
+ of the chains of certificates, in which this key is used
+ as an introducer, to validate the target key. Use this if
+ you don't know the introducer.
+ b) "I do not trust" - Use this if you know that the introducer
+ does not do a good job in certifying other keys. The effect
+ is the same as with a) but for a) you may later want to
+ change the value because you got new information about this
+ introducer.
+ c) "I trust marginally" - Use this if you assume that the
+ introducer knows what he is doing. Together with some
+ other marginally trusted keys, GnuPG validates the target
+ key then as good.
+ d) "I fully trust" - Use this if you really know that this
+ introducer does a good job when certifying other keys.
+ If all the introducer are of this trust value, GnuPG
+ normally needs only one chain of signatures to validate
+ a target key okay. (But this may be adjusted with the help
+ of some options).
+ This information is confidential because it gives your personal
+ opinion on the trustworthiness of someone else. Therefore this data
+ is not stored in the keyring but in the "trustdb"
+ (~/.gnupg/trustdb.gpg). Do not assign a high trust value just
+ because the introducer is a friend of yours - decide how well she
+ understands the implications of key signatures and you may want to
+ tell her more about public key cryptography so you can later change
+ the trust value you assigned.
+
+ Okay, here is how GnuPG helps you with key management. Most stuff
+ is done with the --edit-key command
+
+ gpg --edit-key <keyid or username>
+
+ GnuPG displays some information about the key and then prompts
+ for a command (enter "help" to see a list of commands and see
+ the man page for a more detailed explanation). To sign a key
+ you select the user ID you want to sign by entering the number
+ that is displayed in the leftmost column (or do nothing if the
+ key has only one user ID) and then enter the command "sign" and
+ follow all the prompts. When you are ready, give the command
+ "save" (or use "quit" to cancel your actions).
+
+ If you want to sign the key with another of your user IDs, you
+ must give an "-u" option on the command line together with the
+ "--edit-key".
+
+ Normally you want to sign only one user ID because GnuPG
+ uses only one and this keeps the public key certificate
+ small. Because such key signatures are very important you
+ should make sure that the signatories of your key sign a user ID
+ which is very likely to stay for a long time - choose one with an
+ email address you have full control of or do not enter an email
+ address at all. In future GnuPG will have a way to tell which
+ user ID is the one with an email address you prefer - because
+ you have no signatures on this email address it is easy to change
+ this address. Remember, your signatories sign your public key (the
+ primary one) together with one of your user IDs - so it is not possible
+ to change the user ID later without voiding all the signatures.
+
+ Tip: If you hear about a key signing party on a computer conference
+ join it because this is a very convenient way to get your key
+ certified (But remember that signatures have nothing to to with the
+ trust you assign to a key).
+
+
+ 8 Ways to Specify a User ID
+ ---------=-----------------
+
+ There are several ways to specify a user ID, here are some examples.
+
+ * Only by the short keyid (prepend a zero if it begins with A..F):
+
+ "234567C4"
+ "0F34E556E"
+ "01347A56A"
+ "0xAB123456
+
+ * By a complete keyid:
+
+ "234AABBCC34567C4"
+ "0F323456784E56EAB"
+ "01AB3FED1347A5612"
+ "0x234AABBCC34567C4"
+
+ * By a fingerprint:
+
+ "1234343434343434C434343434343434"
+ "123434343434343C3434343434343734349A3434"
+ "0E12343434343434343434EAB3484343434343434"
+
+ The first one is a short fingerprint for PGP 2.x style keys.
+ The others are long fingerprints for OpenPGP keys.
+
+ * By an exact string:
+
+ "=Heinrich Heine <[email protected]>"
+
+ * By an email address:
+
+
+ * By word match
+
+ "+Heinrich Heine duesseldorf"
+
+ All words must match exactly (not case sensitive) and appear in
+ any order in the user ID. Words are any sequences of letters,
+ digits, the underscore and characters with bit 7 set.
+
+ * Or by the usual substring:
+
+ "Heine"
+ "*Heine"
+
+ The '*' indicates substring search explicitly.
+
+
+ Batch mode
+ ----------
+
+ If you use the option "--batch", GnuPG runs in non-interactive mode and
+ never prompts for input data. This does not even allow entering the
+ passphrase. Until we have a better solution (something like ssh-agent),
+ you can use the option "--passphrase-fd n", which works like PGP's
+ PGPPASSFD.
+
+ Batch mode also causes GnuPG to terminate as soon as a BAD signature is
+ detected.
+
+
+ Exit status
+ -----------
+
+ GnuPG returns with an exit status of 1 if in batch mode and a bad signature
+ has been detected or 2 or higher for all other errors. You should parse
+ stderr or, better, the output of the fd specified with --status-fd to get
+ detailed information about the errors.
+
+
+ Configure options
+ -----------------
+
+ Here is a list of configure options which are sometime useful
+ for installation.
+
+ --enable-static-rnd=<name>
+ Force the use of the random byte gathering
+ module <name>. Default is either to use /dev/random
+ or the auto mode. Value for name:
+ egd - Use the module which accesses the
+ Entropy Gathering Daemon. See the webpages
+ for more information about it.
+ unix - Use the standard Unix module which does not
+ have a very good performance.
+ linux - Use the module which accesses /dev/random.
+ This is the first choice and the default one
+ for GNU/Linux or *BSD.
+ auto - Compile linux, egd and unix in and
+ automagically select at runtime.
+
+ --with-egd-socket=<name>
+ This is only used when EGD is used as random
+ gatherer. GnuPG uses by default "~/.gnupg/entropy"
+ as the socket to connect EGD. Using this option the
+ socket name can be changed. You may use any filename
+ here with 2 exceptions: a filename starting with
+ "~/" uses the socket in the home directory of the user
+ and one starting with a "=" uses a socket in the
+ GnuPG home directory which is "~/.gnupg" by default.
+
+ --without-readline
+ Do not include support for the readline library
+ even if it is available. The default is to check
+ whether the readline library is a available and
+ use it to allow fancy command line editing.
+
+ --with-included-zlib
+ Forces usage of the local zlib sources. Default is
+ to use the (shared) library of the system.
+
+ --with-zlib=<DIR>
+ Look for the system zlib in DIR.
+
+ --with-bzip2=<DIR>
+ Look for the system libbz2 in DIR.
+
+ --without-bzip2
+ Disable the BZIP2 compression algorithm.
+
+ --with-included-gettext
+ Forces usage of the local gettext sources instead of
+ the one provided by your system.
+
+ --disable-nls
+ Disable NLS support (See the file ABOUT-NLS)
+
+ --enable-m-guard
+ Enable the integrated malloc checking code. Please
+ note that this feature does not work on all CPUs
+ (e.g. SunOS 5.7 on UltraSparc-2) and might give
+ you a bus error.
+
+ --disable-dynload
+ If you have problems with dynamic loading, this
+ option disables all dynamic loading stuff. Note
+ that the use of dynamic linking is very limited.
+
+ --disable-asm
+ Do not use assembler modules. It is not possible
+ to use this on some CPU types.
+
+ --disable-exec
+ Disable all remote program execution. This
+ disables photo ID viewing as well as all keyserver
+ access.
+
+ --disable-photo-viewers
+ Disable only photo ID viewing.
+
+ --disable-keyserver-helpers
+ Disable only keyserver helpers.
+
+ --disable-keyserver-path
+ Disables the user's ability to use the exec-path
+ feature to add additional search directories when
+ executing a keyserver helper.
+
+ --with-photo-viewer=FIXED_VIEWER
+ Force the photo viewer to be FIXED_VIEWER and
+ disable any ability for the user to change it in
+ their options file.
+
+ --disable-rsa
+ Removes support for the RSA public key algorithm.
+ This can give a smaller gpg binary for places
+ where space is tight.
+
+ --disable-idea
+ --disable-cast5
+ --disable-blowfish
+ --disable-aes
+ --disable-twofish
+ --disable-sha256
+ --disable-sha512
+ Removes support for the selected symmetric or hash
+ algorithm. This can give a smaller gpg binary for
+ places where space is tight.
+
+ **** Note that if there are existing keys that
+ have one of these algorithms as a preference,
+ messages may be received that use one of these
+ algorithms and you will not be able to decrypt the
+ message! ****
+
+ The public key preference list can be updated to
+ match the list of available algorithms by using
+ "gpg --edit-key (thekey)", and running the
+ "setpref" command.
+
+ --enable-minimal
+ Build the smallest gpg binary possible (disables
+ all optional algorithms, disables keyserver
+ access, and disables photo IDs). Specifically,
+ this means --disable-rsa --disable-idea,
+ --disable-cast5, --disable-blowfish,
+ --disable-aes, --disable-twofish,
+ --disable-sha256, --disable-sha512,
+ --without-bzip2, --disable-exec,
+ --disable-card-support and
+ --disable-agent-support.
+ Configure command lines are read from left to
+ right, so if you want to have an "almost minimal"
+ configuration, you can do (for example)
+ "--enable-minimal --enable-rsa" to have RSA added
+ to the minimal build.
+
+ --enable-key-cache=SIZE
+ Set the internal key and UID cache size. This has
+ a significant impact on performance with large
+ keyrings. The default is 4096, but for use on
+ platforms where memory is an issue, it can be set
+ as low as 5.
+
+ --disable-card-support
+ Do not include smartcard support. The default is
+ to include support if all required libraries are
+ available.
+
+ --disable-agent-support
+ Do not include support for the gpg-agent. The
+ default is to include support.
+
+ --enable-selinux-support
+ This prevents access to certain files and won't
+ allow import or export of secret keys.
+
+ --enable-noexecstack
+ Pass option --noexecstack to as. Autdetect wether
+ the tool chain actually support this.
+
+ --disable-gnupg-iconv
+ If iconv is available it is used to convert
+ between utf-8 and the system character set. This
+ is in general the preferable solution. However
+ the code is new and under some cirumstances it may
+ give different output than with the limited old
+ support. This option allows to explicity disable
+ the use of iconv. Note, that iconv is also
+ disabled if gettext has been disabled.
+
+
+ Installation Problems
+ ---------------------
+
+ If you get unresolved externals "gettext" you should run configure
+ again with the option "--with-included-gettext"; this is version
+ 0.12.1 which is available at ftp.gnu.org.
+
+ If you have other compile problems, try the configure options
+ "--with-included-zlib" or "--disable-nls" (See ABOUT-NLS) or
+ --disable-dynload.
+
+ We can't check all assembler files, so if you have problems
+ assembling them (or the program crashes) use --disable-asm with
+ ./configure. If you opt to delete individual replacement files in
+ hopes of using the remaining ones, be aware that the configure
+ scripts may consider several subdirectories to get all available
+ assembler files; be sure to delete the correct ones. The assembler
+ replacements are in C and in mpi/generic; never delete
+ udiv-qrnnd.S in any CPU directory, because there may be no C
+ substitute. Don't forget to delete "config.cache" and run
+ "./config.status --recheck". We have also heard reports of
+ problems when using versions of gcc earlier than 2.96 along with a
+ non-GNU assembler (as). If this applies to your platform, you can
+ either upgrade gcc to a more recent version, or use the GNU
+ assembler.
+
+ Some make tools are broken - the best solution is to use GNU's
+ make. Try gmake or grab the sources from a GNU archive and
+ install them.
+
+ On some OSF systems you may get unresolved externals. This is a
+ libtool problem and the workaround is to manually remove all the
+ "-lc -lz" but the last one from the linker line and execute them
+ manually.
+
+ On some architectures you see warnings like:
+ longlong.h:175: warning: function declaration isn't a prototype
+ or
+ http.c:647: warning: cast increases required alignment of target type
+ This doesn't matter and we know about it (actually it is due to
+ some warning options which we have enabled for gcc)
+
+ If you are cross-compiling and you get an error either building a
+ tool called "yat2m" or running that tool, the problem is most
+ likely a bad or missing native compiler. We require a standard
+ C-89 compiler to produce an executable to be run on the build
+ platform. You can explicitly set such a compiler with configure
+ arguments. On HP/UX you might want to try: "CC_FOR_BUILD=c89".
+
+
+
+ Specific problems on some machines
+ ----------------------------------
+
+ * Apple Darwin 6.1:
+
+ ./configure --with-libiconv-prefix=/sw
+
+ * IBM RS/6000 running AIX:
+
+ Due to a change in gcc (since version 2.8) the MPI stuff may
+ not build. In this case try to run configure using:
+ CFLAGS="-g -O2 -mcpu=powerpc" ./configure
+
+ * SVR4.2 (ESIX V4.2 cc)
+
+ Due to problems with the ESIX as, you probably want to do
+ CFLAGS="-O -K pentium" ./configure --disable-asm
+
+ * SunOS 4.1.4
+
+ ./configure ac_cv_sys_symbol_underscore=yes
+
+
+ The Random Device
+ -----------------
+
+ Random devices are available in Linux, FreeBSD and OpenBSD.
+ Operating systems without a random devices must use another
+ entropy collector.
+
+ This collector works by running a lot of commands that yield more
+ or less unpredictable output and feds this as entropy into the
+ random generator - It should work reliably but you should check
+ whether it produces good output for your version of Unix. There
+ are some debug options to help you (see cipher/rndunix.c).
+
+
+ Creating an RPM package
+ -----------------------
+
+ The file scripts/gnupg.spec is used to build a RPM package (both
+ binary and src):
+ 1. copy the spec file into /usr/src/redhat/SPECS
+ 2. copy the tar file into /usr/src/redhat/SOURCES
+ 3. type: rpm -ba SPECS/gnupg.spec
+
+ Or use the -t (--tarbuild) option of rpm:
+ 1. rpm -ta gnupg-x.x.x.tar.gz
+
+ The binary rpm file can now be found in /usr/src/redhat/RPMS, source
+ rpm in /usr/src/redhat/SRPMS
+
+
+ Building Universal Binaries on Apple OS X
+ -----------------------------------------
+
+ You can build a universal ("fat") binary that will work on both
+ PPC and Intel Macs with something like:
+
+ ./configure CFLAGS="-arch ppc -arch i386" --disable-endian-check \
+ --disable-dependency-tracking --disable-asm
+
+ If you are doing the build on a OS X 10.4 (Tiger) PPC machine you
+ may need to add "-isysroot /Developer/SDKs/MacOSX10.4u.sdk" to
+ those CFLAGS. This additional isysroot is not necessary on Intel
+ Tiger boxes, or any OS X 10.5 (Leopard) or later boxes.
+
+ Note that when building a universal binary, any third-party
+ libraries you may link with need to be universal as well. All
+ Apple-supplied libraries (even libraries not originally written by
+ Apple like curl, zip, and BZ2) are universal.
+
+
+ GnuPG 1.4 and GnuPG 2.0
+ -----------------------
+
+ GnuPG 2.0 is a newer version of GnuPG with additional support for
+ S/MIME. It has a different design philosophy that splits
+ functionality up into several modules. Both versions may be
+ installed simultaneously without any conflict (gpg is called gpg2
+ in GnuPG 2). In fact, the gpg version from GnuPG 1.4 is able to
+ make use of the gpg-agent as included in GnuPG 2 and allows for
+ seamless passphrase caching. The advantage of GnupG 1.4 is its
+ smaller size and no dependency on other modules at run and build
+ time.
+
+
+ How to Get More Information
+ ---------------------------
+
+ The primary WWW page is "http://www.gnupg.org"
+ The primary FTP site is "ftp://ftp.gnupg.org/gcrypt/"
+
+ See http://www.gnupg.org/download/mirrors.html for a list of
+ mirrors and use them if possible. You may also find GnuPG
+ mirrored on some of the regular GNU mirrors.
+
+ We have some mailing lists dedicated to GnuPG:
+
+ [email protected] For important announcements like
+ new versions and such stuff.
+ This is a moderated list and has
+ very low traffic. Do not post to
+ this list.
+
+ [email protected] For general user discussion and
+ help (English).
+
+ [email protected] German speaking counterpart of
+ gnupg-users.
+
+ [email protected] Russian speaking counterpart of
+ gnupg-users.
+
+ [email protected] GnuPG developers main forum.
+
+ You subscribe to one of the list by sending mail with a subject
+ of "subscribe" to [email protected], where x is the name of the
+ mailing list (gnupg-announce, gnupg-users, etc.). An archive of
+ the mailing lists are available at
+ http://www.gnupg.org/documentation/mailing-lists.html
+
+ Please direct bug reports to http://bugs.gnupg.org or post
+ them direct to the mailing list <[email protected]>.
+
+ Please direct questions about GnuPG to the users mailing list or
+ one of the pgp newsgroups; please do not direct questions to one
+ of the authors directly as we are busy working on improvements and
+ bug fixes. The English and German mailing lists are watched by
+ the authors and we try to answer questions when time allows us to
+ do so.
+
+ Commercial grade support for GnuPG is available; please see
+ http://www.gnupg.org/service.html .
diff --git a/release/css/default.css b/release/css/default.css
new file mode 100644
index 00000000..c839b799
--- /dev/null
+++ b/release/css/default.css
@@ -0,0 +1,15 @@
+/* CSS for GUI, look e.g. at http://doc.qt.nokia.com/latest/stylesheet-examples.html */
+
+
+/*
+ QLabel, QAbstractButton {
+ font: bold;
+}
+*/
+
+*[keyNotFound="true"] { background-color: yellow }
+*[keyFound="true"] { background-color: green }
+QLabel#warning { background-color: #ececba }
+QLabel#ok { background-color: #ccffcc }
+QLabel#critical { background-color: #ff8080 }
+
diff --git a/release/help/css/style.css b/release/help/css/style.css
new file mode 100644
index 00000000..2f120f03
--- /dev/null
+++ b/release/help/css/style.css
@@ -0,0 +1,127 @@
+#menu {
+ list-style-type: none;
+ float: left;
+ border-right: 1px dotted #aaa;
+ background-color: #fff;
+ padding: 1.2em 0.5em;
+ width: 10em;
+ margin-left: 0.2em;
+ text-align:center;
+ height: 30em;
+}
+
+#menu li {
+ margin: 0.3em 0.2em;
+ padding: 0.2em;
+ /*border-top: 1px dotted;
+ border-bottom: 1px dotted;*/
+ background-color: #d9dfe8;
+ cursor: pointer;
+}
+
+#menu li:hover {
+ background-color: #b9c4d5;
+}
+
+#menu a {
+ font-family: arial, helvetica, sans-serif;
+ text-decoration: none;
+ color: #000;
+ width: 9em;
+}
+
+#menu li.active {
+ background-color: #7b90af;
+}
+
+#menu li.submenu {
+ margin: 0.2em 0.2em 0.2em 1.5em;
+ padding: 0.1em 0.4em;
+ text-align:right;
+ font-size: 0.9em;
+}
+
+#content {
+ font-family: arial, helvetica, sans-serif;
+ font-size: 1em;
+ margin-left: 0em;
+}
+
+#content li {
+ text-align:left;
+}
+
+#logo {
+ margin-left: 0.7em;
+}
+
+p {
+ text-align:justify;
+}
+
+h1 {
+ font-size:1.2em;
+}
+
+h2 {
+ font-size:1.0em;
+}
+
+h3 {
+ font-size:0.8em;
+ font-weight:normal;
+}
+
+h4 {
+ font-size:0.95em;
+}
+
+a {color:#214478; text-decoration:none;}
+a:hover {text-decoration:underline;}
+
+#lightbox{
+ background-color:#eee;
+ padding: 10px;
+ border-bottom: 2px solid #666;
+ border-right: 2px solid #666;
+ }
+#lightboxDetails{
+ font-size: 0.8em;
+ padding-top: 0.4em;
+ }
+#lightboxCaption{ float: left; }
+#keyboardMsg{ float: right; }
+
+#lightbox img{ border: none; }
+#overlay img{ border: none; }
+
+#overlay{ background-image: url(overlay.png); }
+
+.downloadTable { font-size: 0.95em; }
+.downloadTable th {
+ border-bottom: 1px solid #000;
+ border-left: 2em solid #fff;
+ border-right: 2em solid #fff;}
+.downloadTable td { padding: 0.1em 0.5em; text-align: left;}
+.downloadTable tr:hover td { background-color: #eef; }
+
+.code {
+ font-family: monospace;
+}
+
+p.code {
+ border: 1px dashed;
+ margin: 0.5em;
+ padding: 0.5em;
+ background-color: #d9dfe8;
+ }
+
+.newsentry {
+ /* background: #f2f4f7; */
+ /*padding: 0.2em;*/
+ margin: 0.5em 0em;
+ padding: 0 0.5em;
+ border: 1px dotted #aaa;
+ background-color: #d9dfe8;
+}
+
diff --git a/release/help/docu.es.html b/release/help/docu.es.html
new file mode 100644
index 00000000..7772f38f
--- /dev/null
+++ b/release/help/docu.es.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpgusb-team - documentación</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="author" content="gpgusb-team">
+<meta name="keywords" content="gpgusb, gnupg, gpg, encryption, decryption, portable, usb, documentation">
+<meta name="description" content="gpg4usb is a very easy to use and small portable editor to encrypt and decrypt any text-message or -file you want.">
+<meta name="robots" content="follow">
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+
+<div id="content">
+<h1>Documentación</h1>
+
+<p>Aqui usten encontrará algunas guías de principiantes para el gpg4usb.</p>
+<h4>Usando gpg4usb</h4>
+<ul>
+ <li><a href="docu_concepts.html">Conceptos de GPG</a></li>
+ <li><a href="docu_keygen.html">Generando una Llave</a></li>
+ <li><a href="docu_encrypt.html">Cifrando Texto</a></li>
+ <li><a href="docu_decrypt.html">Descifrando Texto</a></li>
+ <li><a href="docu_sign.html">Firmando Texto</a></li>
+ <li><a href="docu_verify.html">Verificando Texto</a></li>
+ <li><a href="docu_encrypt_file.html">Cifrando un Archivo</a></li>
+ <li><a href="docu_decrypt_file.html">Descifrando un Archivo</a></li>
+ <li><a href="docu_import_key.html">Importando LLaves</a></li>
+ <li><a href="docu_export_key.html">Exportando LLaves Públicas</a></li>
+ <li><a href="docu_export_key_private.html">Exportando Llaves Privadas</a></li>
+</ul>
+
+</div>
+</div>
+</body>
+</html>
diff --git a/release/help/docu.html b/release/help/docu.html
new file mode 100644
index 00000000..ceef1de4
--- /dev/null
+++ b/release/help/docu.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpgusb-team - documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="author" content="gpgusb-team">
+<meta name="keywords" content="gpgusb, gnupg, gpg, encryption, decryption, portable, usb, documentation">
+<meta name="description" content="gpg4usb is a very easy to use and small portable editor to encrypt and decrypt any text-message or -file you want.">
+<meta name="robots" content="follow">
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+
+<div id="content">
+<h1>Documentation</h1>
+
+<p>Here you find some beginner guides to gpg4usb.</p>
+<h4>Using gpg4usb</h4>
+<ul>
+ <li><a href="docu_concepts.html">Concepts of GPG</a></li>
+ <li><a href="docu_keygen.html">Generating A Key</a></li>
+ <li><a href="docu_encrypt.html">Encrypting Text</a></li>
+ <li><a href="docu_decrypt.html">Decrypting Text</a></li>
+ <li><a href="docu_sign.html">Sign Text</a></li>
+ <li><a href="docu_verify.html">Verify Text</a></li>
+ <li><a href="docu_encrypt_file.html">Encrypting A File</a></li>
+ <li><a href="docu_decrypt_file.html">Decrypting A File</a></li>
+ <li><a href="docu_import_key.html">Importing Keys</a></li>
+ <li><a href="docu_export_key.html">Exporting Public Keys</a></li>
+ <li><a href="docu_export_key_private.html">Exporting Private Keys</a></li>
+</ul>
+
+</div>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_concepts.es.html b/release/help/docu_concepts.es.html
new file mode 100644
index 00000000..5657e90c
--- /dev/null
+++ b/release/help/docu_concepts.es.html
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentacion</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+<a href="docu.html">Principal</a> | Siguiente: <a href="docu_keygen.html">Generando una Llave</a>
+<hr/>
+
+<div id="content">
+
+<H2><A NAME="GPG-Minihowto-Concept"></A> <A NAME="s1">1.</A>Conceptos</H2>
+<H2><A NAME="ss1.1">1.1</A> Cifrado con LLave Publica
+</H2>
+<P>Los metodos clasicos de cifrado solo usan una llave para el cifrado. El
+remitente cifra el mensaje con esa llave. Para poder descifrarlo, el destinatario
+necesita tener esa misma llave. Esta llave se le debe dar al destinatario de forma
+que otras personas no puedan conseguirla. Si alguien consigue la llave, este metodo
+de cifrado es inutil.</P>
+<P>El uso de las llamadas LLaves Publicas puede resolver este problema. La LLave Publica
+es un concepto que utiliza dos llaves. Una llave es una LLave Publica que se puede
+difundir a traves de cualquier medio y que puede ser conseguida por cualquiera. La
+otra llave es la LLave Privada. Esta llave es secreta y no puede ser difundida. Esta
+llave solo esta disponible para el propietario que la ha creado. Cuando el sistema esta
+bien implementado, la llave secreta no puede averiguar desde la llave publica. Ahora,
+el remitente cifrara el mensaje con la llave publica del destinatario.
+El descifrado se hara con la llave secreta del destinatario.</P>
+<P>En este concepto, es crucial que la llave secreta permanezca secreta y no deberia
+darse o estar disponible para nadie, salvo el propietario de esta llave. NO ENVIE ESTA
+LLAVA POR INTERNET. También es muy aconsejable usar GnuPG con <CODE>telnet</CODE>
+(usted deberia considerar no usar nunca telnet debido a los altos riesgos de seguridadad).</P>
+<H2><A NAME="ss1.2">1.2</A> Firmas Digitales
+</H2>
+<P>Con el fin de probar que un mensaje ha sido realmente enviado por su remitente, se
+invento el concepto de Firmas Digitales. Como el nombre dice, un mensaje es firmado
+digitalmente por el remitente. Con esta firma, usted puede comprobar la autenticidad de
+un mensaje. Usando esto se reducira el riesgo de "Caballos de Troya" (un mensaje que dice ser
+un parche para un cierto problema pero que realmente contiene un virus o hace algo perjudicial
+para los datos en su computador). Tambien se pueden verificar informaciones o datos como
+procedentes de una fuente legitima y, de esta forma, pueden ser considerados como verdaderos.
+</P>
+<P>Una firma digital se hace a traves de una combinacion de la llave secreta y el texto. Usando
+la llave publica del remitente, se puede verificar el mensaje. No solo se podra comprobar si
+procede del remitente correcto sino tambien el texto enviado. Asi, usted sabe que el mensaje
+viene de su remitente y que no ha sido modificado durante el proceso de envio.
+</P>
+<H2><A NAME="ss1.3">1.3</A> Red de Confianza
+</H2>
+<P>Un punto debil de los algoritmos tipo Llave Publica es la difusion de las llaves publicas.
+Un usuario podria poner en circulacion una llave publica con una falsa ID de usuario. Si se
+escriben mensajes con esta llave particular, el intruso puede descifrar y leer esos mensajes.
+Si el intruso pasa despues ese mensaje codificado con una llave publica genuina al destinatario
+real, este ataque pasaria desapercibido.</P>
+<P>La solucion PGP (y por tanto la solucion GnuPG) estriba en firmar las llaves. Una llave
+publica puede ser firmada por otra persona. Esta firma asegura que la llave usada por el UID
+(Identificacion de Usuario) realmente pertenece a la persona que dice ser. Le corresponde
+entonces al usuario del GnuPG establecer en que medida confia en esa firma. Usted puede
+considerar una llave totalmente fiable cuando usted confia en el remitente de la llave y sabe con
+seguridad que la llave realmente pertenece a esa persona. Solo cuando usted confia en la llave
+del firmante, usted puede confiar en la firma. Para estar absolutamente seguros de que la llave
+es correcta, usted tiene que comparar la huella digital por medio de canales seguros antes de
+otorgar una certeza absoluta..</P>
+<H2><A NAME="ss1.4">1.4</A> Limites de la Seguridad
+</H2>
+<P>Si usted tiene datos que le gustaria que permanecieran confidenciales, esto es algo mas que
+simplemente determinar que algoritmo de cifrado hay que usar. Usted deberia pensar en su sistema
+de seguridad en general. Basicamente, consideramos que el PGP es seguro y, cuando escribo este
+documento, no se conocen casos de ruptura del PGP. Pero eso no significa que todo su cifrado
+sea seguro (por ejemplo, la NSA no me notificaria si ellos han crakeado alguna vez el PGP, ni
+tampoco otras personas que lo hayan hecho por motivos maliciosos). Pero, aun en el caso de que
+el PGP sea totalmente "inhackeable", se pueden usar otros medios para atacar la seguridad. A
+primeros de Febrero de 1999, se habia encontrado un "Caballo de Troya" que buscaba llaves secretas
+PGP en el disco duro y las enviaba fuera por FTP. Si la password se ha escogido mal, la llave
+secreta se puede descifrar facilmente.</P>
+<P>Otra posibilidad tecnica (aunque mas dificil) de ruptura PGP es un "Caballo de Troya" que copie
+las pulsaciones del teclado. Tambien es posible (pero muy dificil) copiar el contenido de una
+pantalla. En estos casos, no es necesario romper el codigo de mensajes cifrados. Por todos estos
+riesgos, se necesita tener un buen y bien pensado plan de seguridad que se ponga en practica..</P>
+<P>No se trata de crear una paranoia entre la gente, sino mostrar que hay que hacer mucho para
+ser mas seguro. Lo mas importante es darse cuenta de que el cifrado es solo un paso de seguridad y
+no la solucion total. Los "Caballos de Troya" que aparecieron en 1999 en los virus "Melissa"
+demostraron que la mayoria de las empresas no estaban preparadas para esto.</P>
+
+<hr>
+
+<p>
+Renuncia de responsabilidad: el original de este capitulo esta en <a href="http://www.gnupg.org/documentation/howtos.html">GnuPG MiniHOWTO</a>
+</p>
+<p>
+Copyright © 1999 Brenno J.S.A.A.F. de Winter (version inglesa) Copyright © 1999
+Michael Fischer v. Mollard (version original alemana) Copyright © 2002 Arjen Baart
+(version holandesa) Copyright © 2004 Baris Cicek (version turca)
+</p><p>
+Este documento es una documentacion libre y usted puede distribuirla y/o modificarla bajo
+los terminos de la GNU Library General Public License, tal como la publica la Free Software
+Foundation; tanto en su version 2 de Licencia o (en su opinion) cualquier version
+posterior.
+</p><p>
+Esta libreria se distribuye con la esperanza de que sera util, pero SIN NINGUNA GARANTIA;
+incluso sin la garantia implicita de COMERCIALIZACION o IDONEIDAD PARA UN PROPOSITO PARTICULAR.
+Vea la GNU Library General Public License para mas detalles.
+</p><p>
+Usted deberia haber recibido una copia de la GNU Library General Public License junto con esta
+libreria; si no la tiene, escriba a la Free Software Foundation, Inc., 59 Temple Place
+- Suite 330, Boston, MA 02111-1307, USA.
+</p>
+</hr>
+
+</div>
+<hr/>
+<a href="docu.html">Principal</a> | Siguiente: <a href="docu_keygen.html">Generando una Llave</a>
+</div>
+</body>
+</html>
+
diff --git a/release/help/docu_concepts.html b/release/help/docu_concepts.html
new file mode 100644
index 00000000..fbfe8cad
--- /dev/null
+++ b/release/help/docu_concepts.html
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+<a href="docu.html">Main</a> | Next: <a href="docu_keygen.html">Generating A Key</a>
+<hr/>
+
+<div id="content">
+
+<H2><A NAME="GPG-Minihowto-Concept"></A> <A NAME="s1">1.</A>Concepts</H2>
+<H2><A NAME="ss1.1">1.1</A> Public Key Encryption
+</H2>
+<P>Classic methods for encryption only use one key for encryption. The sender
+encrypts the message with this key. To be able to decrypt this the receiver
+needs to have this very same key. This key must have been given to the
+receiver in a way, that others won't have had the opportunity to obtain this
+key. If somebody else does have the key, this method of encryption is useless.</P>
+<P>The use of so-called Public Keys can solve this problem. Public Keys is a
+concept where two keys are involved. One key is a Public Key that can be
+spread through all sorts of media and may be obtained by anyone. The other
+key is the Private Key. This key is secret and cannot be spread. This key is
+only available to the owner. When the system is well implemented the secret
+key cannot be derived from the public key. Now the sender will crypt the
+message with the public key belonging to the receiver.
+Then decryption will be done with the secret key of the
+receiver.</P>
+<P>Crucial in this concept is that the secret key remains a secret and should
+not be given away or become available to anyone else but the owner of this
+key. YOU CANNOT SEND THIS KEY OVER THE INTERNET. Also it is very unwise to
+use GnuPG over <CODE>telnet</CODE> (you might consider never to use telnet based
+on the high security risks).</P>
+<H2><A NAME="ss1.2">1.2</A> Digital Signatures
+</H2>
+<P>In order to prove that a message was really sent by the alleged sender the
+concept of Digital Signatures was invented. As the name says a message is
+digitally signed by the sender. By using this signature you can check the
+authenticity of a message. Using this will reduce the risk for Trojan horses
+(a message that claims to be a patch to a certain problem but actually contains
+a virus or does something bad with data on your computer). Also information or
+data can be verified as coming from a legitimate source and thus be regarded
+as real.</P>
+<P>A digital signature is made through a combination of the secret key and the
+text. Using the senders public key the message can be verified. Not only will
+be checked if the correct sender is involved, also the content will be checked.
+So you know that the message comes from the sender and has not been changed
+during the transportation process.</P>
+<H2><A NAME="ss1.3">1.3</A> Web of trust
+</H2>
+<P>A weak point of the Public key algorithms is the spreading of the public keys.
+A user could bring a public key with false user ID in circulation. If with
+this particular key messages are made, the intruder can decode and read the
+messages. If the intruder passes it on then still with a genuine public key coded to the
+actual recipient, this attack is not noticeable.</P>
+<P>The PGP solution (and because of that automatically the GnuPG solution)
+exists in signing codes. A public key can be signed by other people. This
+signature acknowledges that the key used by the UID (User Identification)
+actually belongs to the person it claims to be. It is then up to the user of
+GnuPG how far the trust in the signature goes. You can consider a key as
+trustworthy when you trust the sender of the key and you know for sure that
+the key really belongs to that person. Only when you can trust the key of the
+signer, you can trust the signature. To be absolutely positive that the key is
+correct you have to compare the finger print over reliable channels before
+giving absolute trust.</P>
+<H2><A NAME="ss1.4">1.4</A> Boundaries to security
+</H2>
+<P>If you have data that you would like to remain confidential, there is more to
+it than just determining which encoding algorithm to use. You should be thinking
+about your system security in general. Basically we consider PGP to be secure
+and as I write this documents no incidents of PGP being cracked are known to me.
+But that doesn't mean that all encoding must be safe then (for instance the NSA
+wouldn't notify me if they cracked PGP somehow, neither would other people who
+crack for real malicious grounds). But even if the PGP is fully 'unhackable',
+other means can be used to attack the security. Early February 1999 a Trojan Horse had
+been found that searched for secret PGP keys on the hard disk and FTP-ed them
+away. If the password has been chosen badly the secret key can easily be
+cracked.</P>
+<P>Another technical possibility (although more difficult) is a Trojan Horse that
+broadcasts keyboard entries. Also possible (but very difficult) is to pass
+the content of a screen along. Then no cracking of scrambled messages needs to
+be done. For all these risks there need to be a good, well-thought security plan
+that is actually deployed.</P>
+<P>It is not a goal to create paranoia among people, but to point out that a lot
+needs to be done to be more secure. The most important thing is to realize that
+encryption is just one step to security and is not a total solution. Trojan
+horses as they appeared in the Melissa virus in March 1999 proved that many
+companies are not prepared for that.</P>
+
+
+<hr>
+
+<p>
+Disclaimer: this chapter originates from the <a href="http://www.gnupg.org/documentation/howtos.html">GnuPG MiniHOWTO</a>
+</p>
+<p>
+Copyright © 1999 Brenno J.S.A.A.F. de Winter (English version) Copyright © 1999
+Michael Fischer v. Mollard (original German version) Copyright © 2002 Arjen Baart
+(Dutch version) Copyright © 2004 Baris Cicek (Turkish version)
+</p><p>
+This document is free documentation you can redistribute it and/or modify it under
+the terms of the GNU Library General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option) any
+later version.
+</p><p>
+This library is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
+</p><p>
+You should have received a copy of the GNU Library General Public License along
+with this library; if not, write to the Free Software Foundation, Inc., 59 Temple
+Place - Suite 330, Boston, MA 02111-1307, USA.
+</p>
+</hr>
+
+</div>
+<hr/>
+<a href="docu.html">Main</a> | Next: <a href="docu_keygen.html">Generating A Key</a>
+</div>
+</body>
+</html>
+
diff --git a/release/help/docu_decrypt.es.html b/release/help/docu_decrypt.es.html
new file mode 100644
index 00000000..f66337ec
--- /dev/null
+++ b/release/help/docu_decrypt.es.html
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_decry~waWhO.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_encrypt.html">Cifrar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_sign.html">Firmar
+ un mensaje</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ descifrar un texto</h1>
+<p><b>NOTA:</b> Usted
+ sólo puede descifrar textos si tiene una llave privada y el texto está cifrado con
+ ella. Usted puede identificar las llaves privadas por la imagen 'manojo de llaves'
+ que está delante del nombre en el listado de llaves (en este ejemplo es Bobby):</p>
+<p>
+<IMG SRC="img/docu/private_key_note.jpg" alt="Llave privada: consejo" width="152" height="92"/></p>
+
+<p>
+Hay
+ cinco pasos para descifrar un texto. Suponemos que Bobby quiere descifrar un texto
+ que está cifrado con su llave pública. </p>
+<h4>PASO
+ 1: Copie el texto en la caja de edición de texto</h4>
+<p>
+Primero
+ Boby copia el texto en la caja de edición de texto. </p>
+
+<p>
+<IMG SRC="img/docu/decrypt_step1.jpg" alt="copiar a la caja de edición de texto" width="455" height="266"/></p>
+<p>Hay veces que, al copiar el mensaje cifrado de un correo electrónico, las líneas de texto aparecen separadas por líneas en blanco. Si se intenta descifrar el texto tal como está nos saldrá un error. Para evitar esto, primero pulsar el botón 'Retirar espaciamiento' de la barra de herramientas y después seguir el Paso 2.</p>
+<p><img src="img/Retirar_doble_espacios.jpg" width="500" height="267" border="1" /></p>
+<h4>PASO
+ 2: Escoger la llave(s)</h4>
+<p>
+Segundo,
+ escoge su propia llave. </p>
+<p>
+<IMG SRC="img/docu/decrypt_step2.jpg" alt="escoger llave" width="405" height="239"/></p>
+
+
+<h4>PASO
+ 3: Descifrar el mensaje</h4>
+<p>
+Ahora,
+ Bobby pulsa el botón 'Descifrar' para descifrar el texto. Alternativamente, el podría
+ usar el atajo 'Ctrl+D' o usar el menú 'Cifrar - Descifrar'.<br/>
+<b>NOTA:</b> Usted
+ sólo puede descifrar textos para los cuales tiene la llave privada. Las llaves privadas
+ son aquellas que tienen un icono 'llave' delante de su nombre en el listado de llaves. </p>
+<p>
+<IMG SRC="img/docu/decrypt_step3.jpg" alt="descifrar mensaje" width="413" height="241"/></p>
+
+<h4>PASO
+ 4: Entre la contraseña</h4>
+<p>
+Ahora
+ Bobby introduce la contraseña de su llave. </p>
+<p>
+<IMG SRC="img/docu/decrypt_step4.jpg" alt="introducir contraseña"/>
+</p>
+
+
+<h4>PASO
+ 5: Leer el texto</h4>
+<p>
+Ahora
+ Bobby puede leer el texto cifrado. </p>
+<p>
+<IMG SRC="img/docu/decrypt_step5.jpg" alt="leer texto cifrado"/>
+</p>
+
+
+</div>
+<hr/>
+Previo: <a href="docu_encrypt.html">Cifrar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_sign.html">Firmar
+ un mensaje</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_decrypt.html b/release/help/docu_decrypt.html
new file mode 100644
index 00000000..d8b91589
--- /dev/null
+++ b/release/help/docu_decrypt.html
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_encrypt.html">Encrypt a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_sign.html">Sign a message</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto decrypt a text</h1>
+<p><b>NOTE:</b> You can only decrypt files, if you have one private key, the file is encrypted for. You can identify the private keys by the "bunch of keys"-image in front of the name in the keylist (in this case Bobby):</p>
+<p>
+<IMG SRC="img/docu/private_key_note.jpg" alt="private key hint"/>
+</p>
+
+<p>
+There are five steps for encrypting a text. We assume, that Bobby wants to decrypt a text, which is encrypted with his public key.
+</p>
+<h4>STEP 1: Copy the text to the textedit-field</h4>
+<p>
+First Bobby copies the text to the textedit-field.
+</p>
+
+<p>
+<IMG SRC="img/docu/decrypt_step1.jpg" alt="copy to textedit-field"/>
+</p>
+
+<h4>STEP 2: Choose key(s)</h4>
+<p>
+Secondly he chooses his own key.
+</p>
+<p>
+<IMG SRC="img/docu/decrypt_step2.jpg" alt="choose key"/>
+</p>
+
+
+<h4>STEP 3: Decrypt message</h4>
+<p>
+Now Bobby hits the decrypt button to decrypt the text. Alternatively he could use the shortcut Ctrl+D or use the menu crypto->decrypt.<br/>
+<b>NOTE:</b> You can only decrypt texts, for which you have the private key. The private keys are those, with the key-icon in front of the Name in the keylist.
+</p>
+<p>
+<IMG SRC="img/docu/decrypt_step3.jpg" alt="decrypt message"/>
+</p>
+
+<h4>STEP 4: Enter passphrase</h4>
+<p>
+Now Bobby enters the passphrase of his key.
+</p>
+<p>
+<IMG SRC="img/docu/decrypt_step4.jpg" alt="enter passphrase"/>
+</p>
+
+
+<h4>STEP 5: Read the text</h4>
+<p>
+Now Bobby can read the encrypted text.
+</p>
+<p>
+<IMG SRC="img/docu/decrypt_step5.jpg" alt="read encrypted text"/>
+</p>
+
+
+</div>
+<hr/>
+Previous: <a href="docu_encrypt.html">Encrypt a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_sign.html">Sign a message</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_decrypt_file.es.html b/release/help/docu_decrypt_file.es.html
new file mode 100644
index 00000000..61b21458
--- /dev/null
+++ b/release/help/docu_decrypt_file.es.html
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_decry~ufigg.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_encrypt_file.html">Cifrar
+ un archivo</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_import_key.html">Importar
+ una llave</a>
+<hr/>
+
+
+
+
+<div id="content">
+
+<h1>Cómo
+ descifrar un archivo</h1>
+<p><b>NOTA:</b> Usted
+ sólo puede descifrar archivos si tiene una llave privada y el archivo está cifrado
+ con ella. Usted puede identificar las llaves privadas por la imagen 'manojo de llaves'
+ que está enfrente del nombre en el listado de llaves (en este ejemplo es Bobby):</p>
+<p>
+<IMG SRC="img/docu/private_key_note.jpg" alt="llave privada consejo"/>
+</p>
+<p>
+Hay
+ cinco pasos para descifrar un archivo. Supongamos que Alice quiere descifrar un archivo
+ que ha sido cifrado para ella (es decir, se escogió su llave cuando se cifró). </p>
+<h4>PASO
+ 1: Abrir el menú 'Cifrar' </h4>
+<p>
+ </p>
+<p>
+<IMG SRC="img/docu/cryptfile_menu.jpg" alt="abrir menu cifrar"/>
+</p>
+
+<h4>PASO
+ 2: Escoger descifrar archivo</h4>
+<p>
+Segundo,
+ ella escoge 'Descifrar archivo'. </p>
+<p>
+<IMG SRC="img/docu/decryptfile_choose_decrypt.jpg" alt="escoger descifrar"/>
+</p>
+
+
+<h4>PASO
+ 3: Escoger el archivo de entrada/salida </h4>
+<p>
+Ahora,
+ ella escoge el archivo de entrada/salida. El archivo de entrada ha de ser el archivo
+ cifrado. </p>
+<p>
+<IMG SRC="img/docu/decryptfile_input_outputfile.jpg" alt="escoger archivo entrada/salida"/>
+</p>
+
+<h4>PASO
+ 4: Pulsar OK</h4>
+<p>
+Ahora
+ ella pulsa en botón 'OK'. </p>
+<p>
+<IMG SRC="img/docu/decryptfile_hit_ok.jpg" alt="pulsar ok"/>
+</p>
+
+<h4>PASO
+ 5: Introducir la contraseña</h4>
+<p>
+Ella
+ introduce la contraseña de su llave y pulsa el botón 'OK'. </p>
+<p>
+<IMG SRC="img/docu/decryptfile_password.jpg" alt="introducir contraseña"/>
+</p>
+<p>
+Después
+ aparece un mensaje 'ok' </p>
+<p>
+<IMG SRC="img/docu/decryptfile_okmessage.jpg" alt="mensaje ok"/>
+</p>
+
+</div>
+<hr/>
+Previo: <a href="docu_encrypt_file.html">Cifrar
+ un archivo</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_import_key.html">Importar
+ una llave</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_decrypt_file.html b/release/help/docu_decrypt_file.html
new file mode 100644
index 00000000..4516f12c
--- /dev/null
+++ b/release/help/docu_decrypt_file.html
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_encrypt_file.html">Encrypt a file</a> | <a href="docu.html">Main</a> | Next: <a href="docu_import_key.html">Import a key</a>
+<hr/>
+
+
+
+
+<div id="content">
+
+<h1>Howto decrypt a file</h1>
+<p><b>NOTE:</b> You can only decrypt files, if you have one private key, the file is encrypted for. You can identify the private keys by the "bunch of keys"-image in front of the name in the keylist (in this case Bobby):</p>
+<p>
+<IMG SRC="img/docu/private_key_note.jpg" alt="private key hint"/>
+</p>
+<p>
+There are five steps to decrypt a file. We assume, that Alice wants to decrypt a file, which is encrypted for her (that is, while encrytion her key was chosen).
+</p>
+<h4>STEP 1: Open file en-/decryption dialog </h4>
+<p>
+First Alice chooses the file cryption dialog in the menu. Alternatively, she could just hit the "File-Cryption"-button in the toolbar.
+</p>
+<p>
+<IMG SRC="img/docu/cryptfile_menu.jpg" alt="open file cryption dialog"/>
+</p>
+
+<h4>STEP 2: Choose decrypt</h4>
+<p>
+Secondly she chooses decrypt.
+</p>
+<p>
+<IMG SRC="img/docu/decryptfile_choose_decrypt.jpg" alt="choose decrypt"/>
+</p>
+
+
+<h4>STEP 3: Choose input-/outputfile</h4>
+<p>
+Now she chooses the input- and outputfile. The inputfile has to be the encrypted file
+</p>
+<p>
+<IMG SRC="img/docu/decryptfile_input_outputfile.jpg" alt="choose the input- and outputfile"/>
+</p>
+
+<h4>STEP 4: Hit ok</h4>
+<p>
+Now she hits the ok-button
+</p>
+<p>
+<IMG SRC="img/docu/decryptfile_hit_ok.jpg" alt="hit ok"/>
+</p>
+
+<h4>STEP 5: Enter passphrase</h4>
+<p>
+Now she enters the passphrase of her key and hits the ok-button.
+</p>
+<p>
+<IMG SRC="img/docu/decryptfile_password.jpg" alt="enter passphrase"/>
+</p>
+<p>
+Afterwards the ok-message is displayed.
+</p>
+<p>
+<IMG SRC="img/docu/decryptfile_okmessage.jpg" alt="ok message"/>
+</p>
+
+</div>
+<hr/>
+Previous: <a href="docu_encrypt_file.html">Encrypt a file</a> | <a href="docu.html">Main</a> | Next: <a href="docu_import_key.html">Import a key</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_encrypt.es.html b/release/help/docu_encrypt.es.html
new file mode 100644
index 00000000..0511c6c3
--- /dev/null
+++ b/release/help/docu_encrypt.es.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_encry~KjmTI.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_keygen.html">Generar
+ una llave</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_decrypt.html">Descifrar
+ un mensaje</a>
+<hr/>
+
+<div id="content">
+<h1>Cómo
+ cifrar un texto</h1>
+<p>
+Hay
+ tres pasos para cifrar un texto. Vamos a suponer que Alice quiere cifrar un texto
+ para Bobby. </p>
+<h4>PASO
+ 1: Escribir el texto</h4>
+<p>
+Primero,
+ Alice escribe su texto (se recomienda no usar tildes). </p>
+<p>
+<IMG SRC="img/docu/encrypt_step1.jpg" alt="escribir el texto"/>
+</p>
+
+<h4>PASO
+ 2: Escoger la llave(s)</h4>
+<p>
+Segundo,
+ ella escoje la llave de Bobby. <b>NOTA:</b> Usted
+ también puede escoger múltiples llaves, de manera que el texto se cifrará para más
+ de una persona. Así, por ejemplo, usted podría seleccionar siempre su propia llave,
+ de este modo puede cifrar/descifrar sus propios textos más tarde. </p>
+<p>
+<IMG SRC="img/docu/encrypt_step2.jpg" alt="escoger las llaves"/>
+</p>
+
+
+<h4>PASO
+ 3: Cifrar el mensaje</h4>
+<p>
+Finalmente,
+ Alice pulsa el botón 'Cifrar' para cifrar el texto. Alternativamente, ella podría
+ haber usado el atajo 'Ctrl+E' o usar el menú 'Cifrar -&gt; Cifrar'. </p>
+<p>
+<IMG SRC="img/docu/encrypt_step3.jpg" alt="cifrar el mensaje"/>
+</p>
+
+
+</div>
+<hr/>
+Previo: <a href="docu_keygen.html">Generar
+ una llave</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_decrypt.html">Descifrar
+ un mensaje</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_encrypt.html b/release/help/docu_encrypt.html
new file mode 100644
index 00000000..99788fe4
--- /dev/null
+++ b/release/help/docu_encrypt.html
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_keygen.html">Generate a key</a> | <a href="docu.html">Main</a> | Next: <a href="docu_decrypt.html">Decrypt a message</a>
+<hr/>
+
+<div id="content">
+<h1>Howto encrypt a text</h1>
+<p>
+There are three steps for encrypting a text. We assume, that Alice wants to encrypt a text for Bobby.
+</p>
+<h4>STEP 1: Write the text</h4>
+<p>
+First Alice writes her text.
+</p>
+<p>
+<IMG SRC="img/docu/encrypt_step1.jpg" alt="write the text"/>
+</p>
+
+<h4>STEP 2: Choose key(s)</h4>
+<p>
+Secondly she chooses Bobbies key.
+<b>NOTE:</b> You can also choose mutiple keys, so that the text is encrypted for more than one person. So e.g. you should always select your own key, so that you can encrypt your own texts later.
+</p>
+<p>
+<IMG SRC="img/docu/encrypt_step2.jpg" alt="choose the keys"/>
+</p>
+
+
+<h4>STEP 3: Encrypt message</h4>
+<p>
+Finally Alice hits the encrypt button to encrypt the text. Alternatively she could use the shortcut Ctrl+E or use the menu crypto->encrypt
+</p>
+<p>
+<IMG SRC="img/docu/encrypt_step3.jpg" alt="encrypt the message"/>
+</p>
+
+
+</div>
+<hr/>
+Previous: <a href="docu_keygen.html">Generate a key</a> | <a href="docu.html">Main</a> | Next: <a href="docu_decrypt.html">Decrypt a message</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_encrypt_file.es.html b/release/help/docu_encrypt_file.es.html
new file mode 100644
index 00000000..6ba34901
--- /dev/null
+++ b/release/help/docu_encrypt_file.es.html
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_encry~UzYAh.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_verify.html">Verificar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_decrypt_file.html">Descifrar
+ un archivo</a>
+<hr/>
+
+
+
+<div id="content">
+
+<h1>Cómo
+ cifrar un archivo</h1>
+<p>
+Hay
+ cinco pasos para cifrar un archivo. Supongamos que Bobby quiere cifrar un archivo
+ para Alice y para él mismo (esto significa que tanto él como Alice pueden descifrar
+ el archivo, cada uno con su propia llave privada). Él tiene que tener la llave pública
+ de Alice y la suya propia. </p>
+<h4>PASO
+ 1: Abrir menú 'Cifrar' </h4>
+<p>
+Primero,
+ Bobby abre el menú 'Cifrar'. Alternativamente, él puede presionar el botón 'Archivo'
+ en la barra de herramientas. </p>
+<p>
+<IMG SRC="img/docu/cryptfile_menu2.jpg" alt="abrir menú cifrar archivo"/>
+</p>
+
+<h4>PASO
+ 2: Escoger cifrar</h4>
+<p>
+Segundo,
+ él escoge 'Cifrar archivo'. </p>
+<p>
+<IMG SRC="img/docu/encryptfile_choose_encrypt.jpg" alt="escoher cifrar"/>
+</p>
+
+
+<h4>PASO
+ 3: Escoger archivo entrada/salida</h4>
+<p>
+Ahora
+ escoge el archivo de entrada/salida. Cuando escoge el archivo de entrada (el que
+ se va a cifrar), se recomienda que se dé el mismo nombre con el apéndice .asc para
+ el archivo de salida (el archivo ya cifrado). </p>
+<p>
+<IMG SRC="img/docu/encryptfile_choose_input_outputfile.jpg" alt="escoger archivo de entrada y salida"/>
+</p>
+
+<h4>PASO
+ 4: Escoger las llaves</h4>
+<p>
+Ahora,
+ Bobby escoge las llaves de las personas para las que el archivo se va a cifrar. Dése
+ cuenta de que él también tiene que seleccionar su propia llave si quiere ser capaz
+ de poder descifrar este archivo más tarde. </p>
+<p>
+<IMG SRC="img/docu/encryptfile_choose_keys.jpg" alt="escoger llaves"/>
+</p>
+
+<h4>PASO
+ 5: Pulsar 'OK'</h4>
+<p>
+Ahora
+ él pulsa el botón 'OK'. </p>
+<p>
+<IMG SRC="img/docu/encryptfile_hit_ok.jpg" alt="pulsar botón ok"/>
+</p>
+
+
+<p>Después
+ de esto, aparece el mensaje 'OK'. </p>
+<p>
+<IMG SRC="img/docu/decryptfile_okmessage.jpg" alt="mensaje ok"/>
+</p>
+
+
+</div>
+<hr/>
+Previo: <a href="docu_verify.html">Verificar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_decrypt_file.html">Descifrar
+ un archivo</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_encrypt_file.html b/release/help/docu_encrypt_file.html
new file mode 100644
index 00000000..ab699d0b
--- /dev/null
+++ b/release/help/docu_encrypt_file.html
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_verify.html">Verify a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_decrypt_file.html">Decrypt a file</a>
+<hr/>
+
+
+
+<div id="content">
+
+<h1>Howto encrypt a file</h1>
+<p>
+There are five steps to encrypt a file. We assume, that Bobby wants to encrypt a file for Alice and for himself (means, that he and Alice can decrypt the file, both of them with their own private key). So he has to have Alice's and his own public key.
+</p>
+<h4>STEP 1: Open file en-/decryption dialog </h4>
+<p>
+First Bobby opens the file cryption dialog through the menu. Alternatively, she could just hit the "File-Cryption"-button in the toolbar.
+</p>
+<p>
+<IMG SRC="img/docu/cryptfile_menu2.jpg" alt="open file-cryption dialog"/>
+</p>
+
+<h4>STEP 2: Choose encrypt</h4>
+<p>
+Secondly he chooses encrypt.
+</p>
+<p>
+<IMG SRC="img/docu/encryptfile_choose_encrypt.jpg" alt="choose encrypt"/>
+</p>
+
+
+<h4>STEP 3: Choose input-/outputfile</h4>
+<p>
+Now he chooses the input- and outputfile. When he chooses the inputfile, the same name with an appended .asc is made as suggestion for the output-file.
+</p>
+<p>
+<IMG SRC="img/docu/encryptfile_choose_input_outputfile.jpg" alt="choose input- and outputfile"/>
+</p>
+
+<h4>STEP 4: Choose the keys</h4>
+<p>
+Now he chooses the users' keys, the file should be encrypted for. Be aware, that he also has to choose his own key, if he wants to be able to decrypt the file afterwards.
+</p>
+<p>
+<IMG SRC="img/docu/encryptfile_choose_keys.jpg" alt="choose keys"/>
+</p>
+
+<h4>STEP 5: Hit ok</h4>
+<p>
+Now he hits the ok-button
+</p>
+<p>
+<IMG SRC="img/docu/encryptfile_hit_ok.jpg" alt="hit ok button"/>
+</p>
+
+
+<p>After this the ok-message is displayed.
+</p>
+<p>
+<IMG SRC="img/docu/decryptfile_okmessage.jpg" alt="ok-message"/>
+</p>
+
+
+</div>
+<hr/>
+Previous: <a href="docu_verify.html">Verify a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_decrypt_file.html">Decrypt a file</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_export_key.es.html b/release/help/docu_export_key.es.html
new file mode 100644
index 00000000..0631df1f
--- /dev/null
+++ b/release/help/docu_export_key.es.html
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_expor~jCnxV.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_import_key.html">Importar
+ una llave</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_export_key_private.html">Exportar
+ una llave privada</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ exportar llaves públicas</h1>
+<p>
+Hay
+ cuatro pasos para exportar llaves públicas. Supongamos que Bobby quiere exportar
+ la llave de Alice y la suya propia para darselas a Charly, de manera que él pueda
+ cifrar mensajes y archivos para ellos. </p>
+<h4>PASO
+ 1: Abrir el administrador de llaves</h4>
+<p>
+Primero,
+ Bobby abre el administrador de llaves a través del botón de la barra de herramientas. </p>
+<p>
+<IMG SRC="img/docu/exportkey_open_keymgmt.jpg" alt="abrir el administrador de llaves"/>
+</p>
+
+<h4>PASO
+ 2: Escoger llaves</h4>
+<p>
+Segundo,
+ escoge la llave de Alice y la suya propia. </p>
+<p>
+<IMG SRC="img/docu/exportkey_choose_keys.jpg" alt="escoger llaves"/>
+</p>
+
+
+<h4>PASO
+ 3: Escoger exportar llave</h4>
+<p>
+Ahora
+ navega por el menú 'Llave' -&gt; 'Exportar a archivo' (otra opción es 'Llave' -&gt; 'Exportar
+ a portapapeles'). Si escoge exportar archivo a portapapeles, se termina ahora.
+ De lo contrario, vamos al siguiente paso. Alternativamente, se puede escoger 'Exportar
+ a archivo' desde la barra de herramientas. </p>
+<p>
+<IMG SRC="img/docu/exportkey_menu_selection.jpg" alt="escoger exportar archivo"/>
+</p>
+
+<h4>PASO
+ 4: Seleccionar el archivo</h4>
+<p>
+Ahora
+ se escoge el archivo para guardar la llave en él. </p>
+<p>
+<IMG SRC="img/docu/exportkey_file_selection.jpg" alt="escoger archivo"/>
+</p>
+<p>
+<b>NOTA:</b> Para
+ dar su llave pública a alguien, también puede usted añadirla al texto en la caja
+ del editor de texto mediante el menú contextual del listado de llaves (clic derecho en la llave selecionada).. </p>
+</div>
+<hr/>
+Previo: <a href="docu_import_key.html">Importar
+ una llave</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_export_key_private.html">Exportar
+ una llave privada</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_export_key.html b/release/help/docu_export_key.html
new file mode 100644
index 00000000..0dfb422b
--- /dev/null
+++ b/release/help/docu_export_key.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_import_key.html">Import a key</a> | <a href="docu.html">Main</a> | Next: <a href="docu_export_key_private.html">Export a private key</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto export public keys</h1>
+<p>
+There are three respectively four steps for exporting public keys. We assume, that Bobby wants to export Alice's and his key to give it to Charly, so that he can encrypt messages and files to them.
+</p>
+<h4>STEP 1: Open the key management</h4>
+<p>
+First Bobby opens the key management through the toolbar.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_open_keymgmt.jpg" alt="open key management"/>
+</p>
+
+<h4>STEP 2: Choose keys</h4>
+<p>
+Secondly he checks Alice's and his own key.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_choose_keys.jpg" alt="choose the keys"/>
+</p>
+
+
+<h4>STEP 3: Choose export key</h4>
+<p>
+Now he browses through the menu key -> export to file (respectively key -> export to clipboard). If he chooses to export the files to clipboard, he's finished now. Otherwise the next step follows. Alternatively he can choose the export through the toolbar.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_menu_selection.jpg" alt="choose export to file"/>
+</p>
+
+<h4>STEP 4: Select the file</h4>
+<p>
+Now he chooses the file to store the keys to.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_file_selection.jpg" alt="choose file"/>
+</p>
+<p>
+<b>NOTE:</b> To give your public key to someone else, you also can append the key to the text in the editor-field through the context menu in the keylist.
+</p>
+</div>
+<hr/>
+Previous: <a href="docu_import_key.html">Import a key</a> | <a href="docu.html">Main</a> | Next: <a href="docu_export_key_private.html">Export a private key</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_export_key_private.es.html b/release/help/docu_export_key_private.es.html
new file mode 100644
index 00000000..2dfa8d9f
--- /dev/null
+++ b/release/help/docu_export_key_private.es.html
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_expor~VBJBW.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_export_key.html">Exportar
+ una llave pública</a> | <a href="docu.html">Principal</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ exportar una llave privada</h1>
+<p>
+Hay
+ cinco pasos simples para exportar llaves privadas Vamos a suponer que Bobby quiere
+ exportar su llave privada para guardarla en un disco y ponerla en un lugar bien seguro.<br/>
+<b>NOTA:</b> Usted
+ deberia ser realmente muy cuidadoso con su llave privada porque cualquiera que la
+ tenga puede cifrar todos los mensajes y textos con esta llave, si sabe la contraseña. </p>
+<h4>PASO
+ 1: Abrir el administrador de llaves</h4>
+<p>
+Primero,
+ Bobby abre el administrador de llaves a través de la barra de herramientas. </p>
+<p>
+<IMG SRC="img/docu/exportkey_open_keymgmt.jpg" alt="abrir administrador de llaves"/>
+</p>
+
+<h4>PASO
+ 2: Abrir el menú de propiedades de la llave</h4>
+<p>
+Segundo,
+ selecciona su llave y abre el menú de propiedades de la llave a través del menú contextual (clic derecho -&gt; 'Mostrar detalles de la llave'). </p>
+<p>
+<IMG SRC="img/docu/exportkey_show_keydetails.jpg" alt="seleccionar detalles de la llave"/>
+</p>
+
+
+<h4>PASO
+ 3: Pulsar el botón 'exportar llave privada' </h4>
+<p>
+Ahora
+ él pulsa el botón 'Exportar llave privada.'</p>
+<p>
+<IMG SRC="img/docu/exportkey_hit_export_private_key.jpg" alt="pulsar botón exportar llave privada"/>
+</p>
+
+<h4>PASO
+ 4: Confirmar mensaje de alerta</h4>
+<p>
+Ahora
+ Bobby confirma el mensaje de alerta que sale. </p>
+<p>
+<IMG SRC="img/docu/exportkey_warn_message.jpg" alt="confirmar mensaje de alerta"/>
+</p>
+<h4>PASO
+ 5: Escoger archivo</h4>
+<p>
+Finalmente,
+ se escoge un archivo donde quiere guardar la llave privada. </p>
+
+</div>
+<hr/>
+Previo: <a href="docu_export_key.html">Exportar
+ una llave pública</a> | <a href="docu.html">Principal</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_export_key_private.html b/release/help/docu_export_key_private.html
new file mode 100644
index 00000000..9d5c18f6
--- /dev/null
+++ b/release/help/docu_export_key_private.html
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_export_key.html">Export a public key</a> | <a href="docu.html">Main</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto export a private key</h1>
+<p>
+There are five simple steps for exporting a private keys. We assume, that Bobby wants to export his private key to save it to disk and put it in an fireproofed tresor.<br/>
+<b>NOTE:</b> You should really be careful with your private key, because everyone, who has this key, can encrypt all messages and texts encrypted for this key, if he also has your keys passphrase.
+
+</p>
+<h4>STEP 1: Open the key management</h4>
+<p>
+First Bobby opens the key management through the toolbar.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_open_keymgmt.jpg" alt="open key management"/>
+</p>
+
+<h4>STEP 2: Open key property dialog</h4>
+<p>
+Secondly he opens the key property dialog of his key through the context menu.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_show_keydetails.jpg" alt="select show key details"/>
+</p>
+
+
+<h4>STEP 3: Hit the "export private key"-button</h4>
+<p>
+Now he hits the "export private key"-button</p>
+<p>
+<IMG SRC="img/docu/exportkey_hit_export_private_key.jpg" alt="hit the export private key button"/>
+</p>
+
+<h4>STEP 4: Confirm warn message</h4>
+<p>
+Now he confirms the warn message.
+</p>
+<p>
+<IMG SRC="img/docu/exportkey_warn_message.jpg" alt="confirm warn message"/>
+</p>
+<h4>STEP 5: Choose file</h4>
+<p>
+Finally he chooses a file, where he wants to save the key.
+</p>
+
+</div>
+<hr/>
+Previous: <a href="docu_export_key.html">Export a public key</a> | <a href="docu.html">Main</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_import_key.es.html b/release/help/docu_import_key.es.html
new file mode 100644
index 00000000..cb4a62da
--- /dev/null
+++ b/release/help/docu_import_key.es.html
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_impor~sUFMy.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_decrypt_file.html">Descifrar
+ un archivo</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_export_key.html">Exportar
+ una llave pública</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ importar llaves públicas</h1>
+<p>
+Hay
+ tres pasos para importar llaves públicas Se supone que Bobby quiere importar la llave
+ de Alice, de manera que pueda cifrar mensajes para ella. <br/>
+Cuando
+ Bobby quiere importar una llave desde la caja del editor de texto o desde el portapapeles,
+ primero tiene que copiar la llave en él. </p>
+<h4>PASO
+ 1: Abrir el menú importar llave</h4>
+<p>
+Primero,
+ Bobby abre el menú 'Importar llave' a través del botón de la barra de herramientas. </p>
+<p>
+<IMG SRC="img/docu/importkey_menu.jpg" alt="abrir menú importar llave"/>
+</p>
+
+<h4>PASO
+ 2: Escoger llaves</h4>
+<p>
+Segundo,
+ hacer la selección adecuada Si él quiere importar una llave desde la caja del editor
+ de texto, tiene antes que poner la llave en esa caja. Sólo si quiere importar llaves
+ desde un archivo tiene que ir al próximo paso, de lo contario ya está todo hecho. </p>
+<p>
+<IMG SRC="img/docu/importkey_dialog.jpg" alt="escoger archivo"/>
+</p>
+
+
+<h4>PASO
+ 3: Escoger archivo</h4>
+<p>
+Ahora
+ tiene que escoger la llave a importar. Después de hacerlo, la llave importada aparece en el
+ listado de llaves. </p>
+<p>
+<IMG SRC="img/docu/importkey_keylist.jpg" alt="listado de llaves"/>
+</p>
+</div>
+<hr/>
+Previo: <a href="docu_decrypt_file.html">Descifrar
+ un archivo</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_export_key.html">Exportar
+ una llave pública</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_import_key.html b/release/help/docu_import_key.html
new file mode 100644
index 00000000..c7a7f054
--- /dev/null
+++ b/release/help/docu_import_key.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_decrypt_file.html">Decrypt a file</a> | <a href="docu.html">Main</a> | Next: <a href="docu_export_key.html">Export a public key</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto import keys</h1>
+<p>
+There are second respectively three steps for importing public keys. We assume, that Bobby wants to import Alice's key, so that he is able to encrypt messages to her.
+<br/>
+When Bobby wants to import a key from text-edit field or from clipboard, he first has to copy the key to it.
+</p>
+<h4>STEP 1: Open key import dialog</h4>
+<p>
+First Bobby opens the import key dialog through the toolbar.
+</p>
+<p>
+<IMG SRC="img/docu/importkey_menu.jpg" alt="open import key dialog"/>
+</p>
+
+<h4>STEP 2: Choose keys</h4>
+<p>
+Secondly makes the appropriate selection. If he wants to import a key from editor, he has to paste the key to the text-edit field before. Only if he wants to import keys from file, he has to do the next step, otherwise he's done.
+</p>
+<p>
+<IMG SRC="img/docu/importkey_dialog.jpg" alt="choose file"/>
+</p>
+
+
+<h4>STEP 3: Choose file</h4>
+<p>
+Now he chooses the key-file. Afterwards the key appears in the keylist.
+</p>
+<p>
+<IMG SRC="img/docu/importkey_keylist.jpg" alt="key list"/>
+</p>
+</div>
+<hr/>
+Previous: <a href="docu_decrypt_file.html">Decrypt a file</a> | <a href="docu.html">Main</a> | Next: <a href="docu_export_key.html">Export a public key</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_keygen.es.html b/release/help/docu_keygen.es.html
new file mode 100644
index 00000000..fc4d76d9
--- /dev/null
+++ b/release/help/docu_keygen.es.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_keyge~oxZbV.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_concepts.html">Conceptos
+ del GPG</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_encrypt.html">Cifrar
+ un mensaje</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ generar un par de llaves GPG</h1>
+<p>
+Hay
+ cuatro pasos para generar un par de llaves (pública y privada). Supondremos que Alice quiere crear un
+ par de llaves, de manera que pueda descifrar los textos que han sido cifrados para
+ ella. </p>
+
+<h4>PASO
+ 1: Abrir el administrador de llaves</h4>
+
+<p>
+Primero,
+ Alice abre el administrador de llaves a través de la barra de herramientas. </p>
+
+<p>
+<IMG SRC="img/docu/genkey_step1.jpg" alt="abrir administrador de llaves"/>
+</p>
+<br/>
+<h4>PASO
+ 2: Abrir el menú de crear llaves</h4>
+<p>
+Segundo,
+ ella selecciona 'Llave' en el menú superior y escoge la opción 'Crear llave'. </p>
+<p>
+<IMG SRC="img/docu/genkey_step2.jpg" alt="abrir menú crear llave"/>
+</p>
+<br/>
+
+<h4>PASO
+ 3: Rellenar el cuestionario</h4>
+<p>
+Ahora
+ ella rellena el custionario que sale. Se recomienda escoger un bitrate de 4096 bits
+ como mínimo.</p>
+
+<p><b>NOTA:</b> Una
+ llave con un bitrate muy alto es más segura pero necesitará más tiempo para cifrar
+ y descifrar textos. Para crear una llave sólo tiene que proporcionar un nombre. Incluso
+ la contraseña podría estar vacía (lo que desde luego crearía un agujero de seguridad). </p>
+<p>
+<IMG SRC="img/docu/genkey_step3.jpg" alt="rellenar cuestionario"/>
+</p>
+<br/>
+<h4>PASO
+ 4: Esperar mientras se crea la llave</h4>
+<p>
+Ahora
+ Alice tiene que esperar. El proceso de crear una llave se hace más rápido si Alice
+ usa su PC para algo, por ejemplo, navegar por Internet, escuchar música, etc. Se creará una llave GPG que se compone de dos partes: una pública (para todo el mundo) y otra privada (sólo para nosotros). </p>
+<p>
+<IMG SRC="img/docu/genkey_step4.jpg" alt="esperar a terminar creacion llave"/>
+</p>
+
+<div align="justify">
+ <p>Cuando
+ la caja de crear llave desaparece, ya se ha creado. Saldrá un aviso diciendo que
+ se ha tenido éxito en la operación. Pulsar 'Aceptar'. </p>
+ <p><img src="img/Nueva_llave_creada.jpg" width="179" height="115" /></p>
+</div>
+</div>
+<hr/>
+Previo: <a href="docu_concepts.html">Conceptos
+ de GPG</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_encrypt.html">Cifrar
+ un mensaje</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_keygen.html b/release/help/docu_keygen.html
new file mode 100644
index 00000000..b285b12a
--- /dev/null
+++ b/release/help/docu_keygen.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_concepts.html">Concepts of GPG</a> | <a href="docu.html">Main</a> | Next: <a href="docu_encrypt.html">Encrypt a message</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto generate a GPG-keypair</h1>
+<p>
+There are four steps for generating a keypair. We assume, that Alice wants to generate a keypair, so she can decrypt texts, which are encrypted for her.
+</p>
+
+<h4>STEP 1: Open keymanagement</h4>
+
+<p>
+First Alice opens the keymanagement through the toolbar.
+</p>
+
+<p>
+<IMG SRC="img/docu/genkey_step1.jpg" alt="open keymanagement"/>
+</p>
+<br/>
+<h4>STEP 2: Open generate key dialog</h4>
+<p>
+Secondly she opens the generate key dialog through the "key"-menu
+</p>
+<p>
+<IMG SRC="img/docu/genkey_step2.jpg" alt="open generate key dialog"/>
+</p>
+<br/>
+
+<h4>STEP 3: Fill in the form</h4>
+<p>
+Now she fills in the forms.</p>
+
+<p><b>NOTE:</b> A key with a higher bitrate is more secure, but also needs a more time to encrypt and decrypt texts. To generate a key, you only have to provide a name. Even the passphrase could be empty (which of course lags of security).
+</p>
+<p>
+<IMG SRC="img/docu/genkey_step3.jpg" alt="fill in the forms"/>
+</p>
+<br/>
+<h4>STEP 4: Wait while key is generated</h4>
+<p>
+Now Alice has just to wait. The process of the key generation is faster, when Alice does something on her PC, so that the randomdevice gets more input and so more entropy.
+</p>
+<p>
+<IMG SRC="img/docu/genkey_step4.jpg" alt="wait for end of key generation"/>
+</p>
+
+When the generation dialog box disappears, the key generation is finished.
+</div>
+<hr/>
+Previous: <a href="docu_concepts.html">Concepts of GPG</a> | <a href="docu.html">Main</a> | Next: <a href="docu_encrypt.html">Encrypt a message</a>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_sign.es.html b/release/help/docu_sign.es.html
new file mode 100644
index 00000000..9b2c0d1b
--- /dev/null
+++ b/release/help/docu_sign.es.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_sign~Qkpxkx.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+
+Previo: <a href="docu_decrypt.html">Descifrar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente <a href="docu_verify.html">Verificar
+ un mensaje</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ firmar un mensaje</h1>
+<p><b>NOTA:</b> Usted
+ sólo puede firmar mensajes si tiene una llave privada. Usted puede identificar las
+ llaves privadas por el icono 'manojo de llaves' que está delante del nombre en la
+ lista de llaves (en este caso Bobby).</p>
+<p>
+<IMG SRC="img/docu/private_key_note.jpg" alt="pulsar llave privada"/>
+</p>
+
+<p>
+Hay
+ cuatro pasos para firmar un texto. Supongamos que Bobby quiere firmar un mensaje.
+ Después de esto, cualquiera que tenga su llave pública puede verificar el mensaje
+ y asegurarse que el mensaje no ha sido modificado. </p>
+<h4>PASO
+ 1/2: Escribir el mensaje y comprobar la llave</h4>
+<p>
+Primero,
+ Bobby escribe el mensaje en la caja del editor de texto. Después selecciona su llave
+ privada en el listado de llaves de la derecha. </p>
+
+<p>
+<IMG SRC="img/docu/sign_choose_key.jpg" alt="Escoger llave"/>
+</p>
+
+<h4>PASO
+ 3: Clic en el botón 'Firmar'</h4>
+<p>
+A
+ continuación, Bobby pulsa el botón 'Firmar'. </p>
+<p>
+<IMG SRC="img/docu/sign_click_verify.jpg" alt="clic verificar"/>
+</p>
+
+
+<h4>PASO
+ 4: Introducir contraseña</h4>
+<p>
+Ahora
+ Bobby introduce la contraseña de su llave privada.<br/>
+<b>NOTA:</b> Usted
+ sólo puede firmar mensajes si tiene una llave privada. Las llaves privadas son aquellas
+ con un icono 'manojo de llaves' delante de su nombre en el listado de llaves. </p>
+<p>
+<IMG SRC="img/docu/sign_enter_passphrase.jpg" alt="entrar contraseña"/>
+</p>
+<p>
+Después
+ de esto, se muestra el mensaje firmado. </p>
+<hr/>
+Previo: <a href="docu_decrypt.html">Descifrar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_verify.html">Verificar
+ un mensaje</a>
+</div>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_sign.html b/release/help/docu_sign.html
new file mode 100644
index 00000000..46a20953
--- /dev/null
+++ b/release/help/docu_sign.html
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+
+Previous: <a href="docu_decrypt.html">Decrypt a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_verify.html">Verify a message</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto sign a message</h1>
+<p><b>NOTE:</b> You can only sign messages, if you have one private key, the file is encrypted for. You can identify the private keys by the "bunch of keys"-image in front of the name in the keylist (in this case Bobby):</p>
+<p>
+<IMG SRC="img/docu/private_key_note.jpg" alt="private key hint"/>
+</p>
+
+<p>
+There are three four for encrypting a text. We assume, that Bobby wants to sign a message.
+After this everyone who has his public key can verify the message and ensure, that the message wasn't modified.
+</p>
+<h4>STEP 1/2: Write the message and check key</h4>
+<p>
+First Bobby writes the message to the textedit-field. Then he checks his private key in the keylist.
+</p>
+
+<p>
+<IMG SRC="img/docu/sign_choose_key.jpg" alt="choose the key"/>
+</p>
+
+<h4>STEP 3: Click sign button</h4>
+<p>
+Then Bobby clicks the sign button.
+</p>
+<p>
+<IMG SRC="img/docu/sign_click_verify.jpg" alt="click verify"/>
+</p>
+
+
+<h4>STEP 4: Enter passphrase</h4>
+<p>
+Now Bobby enters the passphrase of his private key.<br/>
+<b>NOTE:</b> You can only sign messages, if you have a private key. The private keys are those, with the key-icon in front of the Name in the keylist.
+</p>
+<p>
+<IMG SRC="img/docu/sign_enter_passphrase.jpg" alt="enter passphrase"/>
+</p>
+<p>
+Afterwards the signed message is shown.
+</p>
+<hr/>
+Previous: <a href="docu_decrypt.html">Decrypt a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_verify.html">Verify a message</a>
+</div>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_verify.es.html b/release/help/docu_verify.es.html
new file mode 100644
index 00000000..b975c9c4
--- /dev/null
+++ b/release/help/docu_verify.es.html
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<!--Translated using CatsCradle 3.91 [SourceID:docu_verif~cdxic.html] //-->
+<title>gpg4usb
+ - Documentación</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previo: <a href="docu_sign.html">Firmar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_encrypt_file.html">Cifrar
+ un archivo</a>
+<hr/>
+
+<div id="content">
+
+<h1>Cómo
+ verificar un mensaje</h1>
+
+<p>
+Hay
+ tres pasos para verificar un mensaje Vamos a suponer que Alice quiere verificar un
+ mensaje firmado que le ha llegado. </p>
+<h4>PASO
+ 1: Copiar el texto a la caja del editor de textos.</h4>
+<p>
+Primero,
+ Alice copia el texto en la caja del editor de texto. </p>
+
+<p>
+<IMG SRC="img/docu/verify_paste_message.jpg" alt="copiar a la caja del editor de textos"/>
+</p>
+
+<h4>PASO 2:
+ Clic en 'Verificar'</h4>
+<p>
+Segundo,
+ ella hace clic en el botón 'Verificar' de la barra de herramientas. </p>
+<p>
+<IMG SRC="img/docu/verify_click_verify.jpg" alt="clic verificar"/>
+</p>
+
+<h4>PASO
+ 3: Leer el mensaje verificado</h4>
+<p>
+Ahora
+ Alice lee la información de verificación que aparece en la parte de abajo. Para obtener
+ una información más detallada, hacer clic en el botón 'Detalles' en la parte inferior
+ y escoger la opción deseada. </p>
+<p>
+<IMG SRC="img/docu/verify_message_shown.jpg" alt="mostrar mensaje"/>
+</p>
+<p>
+<b>NOTA:</b> Si
+ la llave no está presente en su listado de llaves, entonces aparece el ID (identificador
+ digital) de la llave. </p>
+<p>
+<IMG SRC="img/docu/verify_key_not_present.jpg" alt="llave no presente"/>
+</p>
+
+<p>
+Si
+ la llave no está presente, puede intentar importarla desde el servidor de llaves
+ por defecto (el que usted puso en el menú 'Configuración'). </p>
+<p>
+<IMG SRC="img/docu/verify_import_from_keyserver.jpg" alt="importar desde servidor de llaves"/>
+</p>
+
+
+<hr/>
+Previo: <a href="docu_sign.html">Firmar
+ un mensaje</a> | <a href="docu.html">Principal</a> |
+ Siguiente: <a href="docu_encrypt_file.html">Cifrar
+ un archivo</a>
+</div>
+</div>
+</body>
+</html>
diff --git a/release/help/docu_verify.html b/release/help/docu_verify.html
new file mode 100644
index 00000000..718dc5dc
--- /dev/null
+++ b/release/help/docu_verify.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
+
+<head>
+<title>gpg4usb - Documentation</title>
+<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
+<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
+</head>
+
+<body>
+
+<div style="width:800px;text-align:center;float:center">
+Previous: <a href="docu_sign.html">Sign a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_encrypt_file.html">Encrypt a file</a>
+<hr/>
+
+<div id="content">
+
+<h1>Howto verify a message</h1>
+
+<p>
+There are three steps to verify a message. We assume, that Alice wants to verify a signed message.
+</p>
+<h4>STEP 1: Copy the text to the textedit-field</h4>
+<p>
+First Alice copies the text to the textedit-field.
+</p>
+
+<p>
+<IMG SRC="img/docu/verify_paste_message.jpg" alt="copy to textedit-field"/>
+</p>
+
+<h4>STEP 2: Click verify</h4>
+<p>
+Secondly she clicks on the verify button.
+</p>
+<p>
+<IMG SRC="img/docu/verify_click_verify.jpg" alt="click verify"/>
+</p>
+
+<h4>STEP 3: Read verify message</h4>
+<p>
+Now Alice reads the verify information shown at the bottom a the tab. To get more detailed information,
+she can click the details button in the verify messagebox and then choose .
+</p>
+<p>
+<IMG SRC="img/docu/verify_message_shown.jpg" alt="message shown"/>
+</p>
+<p>
+<b>NOTE:</b> If the key is not present in your keylist, then the signers keyid is shown.
+</p>
+<p>
+<IMG SRC="img/docu/verify_key_not_present.jpg" alt="key not present"/>
+</p>
+
+<p>
+If the key is not present, you can try to import the key from the default keyserver (which you can set in the settings dialog).
+</p>
+<p>
+<IMG SRC="img/docu/verify_import_from_keyserver.jpg" alt="import from keyserver"/>
+</p>
+
+
+<hr/>
+Previous: <a href="docu_sign.html">Sign a message</a> | <a href="docu.html">Main</a> | Next: <a href="docu_encrypt_file.html">Encrypt a file</a>
+</div>
+</div>
+</body>
+</html>
diff --git a/release/help/img/docu/cryptfile_menu.jpg b/release/help/img/docu/cryptfile_menu.jpg
new file mode 100644
index 00000000..92b58ef5
--- /dev/null
+++ b/release/help/img/docu/cryptfile_menu.jpg
Binary files differ
diff --git a/release/help/img/docu/cryptfile_menu2.jpg b/release/help/img/docu/cryptfile_menu2.jpg
new file mode 100644
index 00000000..020968c9
--- /dev/null
+++ b/release/help/img/docu/cryptfile_menu2.jpg
Binary files differ
diff --git a/release/help/img/docu/decrypt_step1.jpg b/release/help/img/docu/decrypt_step1.jpg
new file mode 100644
index 00000000..eef2bfbe
--- /dev/null
+++ b/release/help/img/docu/decrypt_step1.jpg
Binary files differ
diff --git a/release/help/img/docu/decrypt_step2.jpg b/release/help/img/docu/decrypt_step2.jpg
new file mode 100644
index 00000000..45b35fc6
--- /dev/null
+++ b/release/help/img/docu/decrypt_step2.jpg
Binary files differ
diff --git a/release/help/img/docu/decrypt_step3.jpg b/release/help/img/docu/decrypt_step3.jpg
new file mode 100644
index 00000000..71b61c92
--- /dev/null
+++ b/release/help/img/docu/decrypt_step3.jpg
Binary files differ
diff --git a/release/help/img/docu/decrypt_step4.jpg b/release/help/img/docu/decrypt_step4.jpg
new file mode 100644
index 00000000..56a9d8f3
--- /dev/null
+++ b/release/help/img/docu/decrypt_step4.jpg
Binary files differ
diff --git a/release/help/img/docu/decrypt_step5.jpg b/release/help/img/docu/decrypt_step5.jpg
new file mode 100644
index 00000000..fe60bab1
--- /dev/null
+++ b/release/help/img/docu/decrypt_step5.jpg
Binary files differ
diff --git a/release/help/img/docu/decryptfile_choose_decrypt.jpg b/release/help/img/docu/decryptfile_choose_decrypt.jpg
new file mode 100644
index 00000000..c2960948
--- /dev/null
+++ b/release/help/img/docu/decryptfile_choose_decrypt.jpg
Binary files differ
diff --git a/release/help/img/docu/decryptfile_hit_ok.jpg b/release/help/img/docu/decryptfile_hit_ok.jpg
new file mode 100644
index 00000000..1be2fb25
--- /dev/null
+++ b/release/help/img/docu/decryptfile_hit_ok.jpg
Binary files differ
diff --git a/release/help/img/docu/decryptfile_input_outputfile.jpg b/release/help/img/docu/decryptfile_input_outputfile.jpg
new file mode 100644
index 00000000..4f659f25
--- /dev/null
+++ b/release/help/img/docu/decryptfile_input_outputfile.jpg
Binary files differ
diff --git a/release/help/img/docu/decryptfile_okmessage.jpg b/release/help/img/docu/decryptfile_okmessage.jpg
new file mode 100644
index 00000000..c7503fd3
--- /dev/null
+++ b/release/help/img/docu/decryptfile_okmessage.jpg
Binary files differ
diff --git a/release/help/img/docu/decryptfile_password.jpg b/release/help/img/docu/decryptfile_password.jpg
new file mode 100644
index 00000000..4fef0dd3
--- /dev/null
+++ b/release/help/img/docu/decryptfile_password.jpg
Binary files differ
diff --git a/release/help/img/docu/encrypt_step1.jpg b/release/help/img/docu/encrypt_step1.jpg
new file mode 100644
index 00000000..4c22264f
--- /dev/null
+++ b/release/help/img/docu/encrypt_step1.jpg
Binary files differ
diff --git a/release/help/img/docu/encrypt_step2.jpg b/release/help/img/docu/encrypt_step2.jpg
new file mode 100644
index 00000000..0fbd3909
--- /dev/null
+++ b/release/help/img/docu/encrypt_step2.jpg
Binary files differ
diff --git a/release/help/img/docu/encrypt_step3.jpg b/release/help/img/docu/encrypt_step3.jpg
new file mode 100644
index 00000000..aff09ed6
--- /dev/null
+++ b/release/help/img/docu/encrypt_step3.jpg
Binary files differ
diff --git a/release/help/img/docu/encryptfile_choose_encrypt.jpg b/release/help/img/docu/encryptfile_choose_encrypt.jpg
new file mode 100644
index 00000000..ed6e1d99
--- /dev/null
+++ b/release/help/img/docu/encryptfile_choose_encrypt.jpg
Binary files differ
diff --git a/release/help/img/docu/encryptfile_choose_input_outputfile.jpg b/release/help/img/docu/encryptfile_choose_input_outputfile.jpg
new file mode 100644
index 00000000..65ccad1a
--- /dev/null
+++ b/release/help/img/docu/encryptfile_choose_input_outputfile.jpg
Binary files differ
diff --git a/release/help/img/docu/encryptfile_choose_keys.jpg b/release/help/img/docu/encryptfile_choose_keys.jpg
new file mode 100644
index 00000000..7b60f34a
--- /dev/null
+++ b/release/help/img/docu/encryptfile_choose_keys.jpg
Binary files differ
diff --git a/release/help/img/docu/encryptfile_hit_ok.jpg b/release/help/img/docu/encryptfile_hit_ok.jpg
new file mode 100644
index 00000000..04122bd1
--- /dev/null
+++ b/release/help/img/docu/encryptfile_hit_ok.jpg
Binary files differ
diff --git a/release/help/img/docu/encryptfile_okmessage.jpg b/release/help/img/docu/encryptfile_okmessage.jpg
new file mode 100644
index 00000000..4231e4d0
--- /dev/null
+++ b/release/help/img/docu/encryptfile_okmessage.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_choose_keys.jpg b/release/help/img/docu/exportkey_choose_keys.jpg
new file mode 100644
index 00000000..4f82ae0d
--- /dev/null
+++ b/release/help/img/docu/exportkey_choose_keys.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_file_selection.jpg b/release/help/img/docu/exportkey_file_selection.jpg
new file mode 100644
index 00000000..1b60fece
--- /dev/null
+++ b/release/help/img/docu/exportkey_file_selection.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_hit_export_private_key.jpg b/release/help/img/docu/exportkey_hit_export_private_key.jpg
new file mode 100644
index 00000000..a7b3b6c2
--- /dev/null
+++ b/release/help/img/docu/exportkey_hit_export_private_key.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_menu_selection.jpg b/release/help/img/docu/exportkey_menu_selection.jpg
new file mode 100644
index 00000000..65e50026
--- /dev/null
+++ b/release/help/img/docu/exportkey_menu_selection.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_open_keymgmt.jpg b/release/help/img/docu/exportkey_open_keymgmt.jpg
new file mode 100644
index 00000000..3e79accd
--- /dev/null
+++ b/release/help/img/docu/exportkey_open_keymgmt.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_show_keydetails.jpg b/release/help/img/docu/exportkey_show_keydetails.jpg
new file mode 100644
index 00000000..e9eb50d8
--- /dev/null
+++ b/release/help/img/docu/exportkey_show_keydetails.jpg
Binary files differ
diff --git a/release/help/img/docu/exportkey_warn_message.jpg b/release/help/img/docu/exportkey_warn_message.jpg
new file mode 100644
index 00000000..e8198884
--- /dev/null
+++ b/release/help/img/docu/exportkey_warn_message.jpg
Binary files differ
diff --git a/release/help/img/docu/genkey_step1.jpg b/release/help/img/docu/genkey_step1.jpg
new file mode 100644
index 00000000..5ce02b16
--- /dev/null
+++ b/release/help/img/docu/genkey_step1.jpg
Binary files differ
diff --git a/release/help/img/docu/genkey_step2.jpg b/release/help/img/docu/genkey_step2.jpg
new file mode 100644
index 00000000..11080248
--- /dev/null
+++ b/release/help/img/docu/genkey_step2.jpg
Binary files differ
diff --git a/release/help/img/docu/genkey_step3.jpg b/release/help/img/docu/genkey_step3.jpg
new file mode 100644
index 00000000..cc922d6d
--- /dev/null
+++ b/release/help/img/docu/genkey_step3.jpg
Binary files differ
diff --git a/release/help/img/docu/genkey_step4.jpg b/release/help/img/docu/genkey_step4.jpg
new file mode 100644
index 00000000..dfd32f7f
--- /dev/null
+++ b/release/help/img/docu/genkey_step4.jpg
Binary files differ
diff --git a/release/help/img/docu/importkey_dialog.jpg b/release/help/img/docu/importkey_dialog.jpg
new file mode 100644
index 00000000..426f4b8e
--- /dev/null
+++ b/release/help/img/docu/importkey_dialog.jpg
Binary files differ
diff --git a/release/help/img/docu/importkey_keylist.jpg b/release/help/img/docu/importkey_keylist.jpg
new file mode 100644
index 00000000..77b93226
--- /dev/null
+++ b/release/help/img/docu/importkey_keylist.jpg
Binary files differ
diff --git a/release/help/img/docu/importkey_menu.jpg b/release/help/img/docu/importkey_menu.jpg
new file mode 100644
index 00000000..2ef2d24a
--- /dev/null
+++ b/release/help/img/docu/importkey_menu.jpg
Binary files differ
diff --git a/release/help/img/docu/private_key_note.jpg b/release/help/img/docu/private_key_note.jpg
new file mode 100644
index 00000000..a352bf5f
--- /dev/null
+++ b/release/help/img/docu/private_key_note.jpg
Binary files differ
diff --git a/release/help/img/docu/sign_choose_key.jpg b/release/help/img/docu/sign_choose_key.jpg
new file mode 100644
index 00000000..be3950c8
--- /dev/null
+++ b/release/help/img/docu/sign_choose_key.jpg
Binary files differ
diff --git a/release/help/img/docu/sign_click_verify.jpg b/release/help/img/docu/sign_click_verify.jpg
new file mode 100644
index 00000000..012d7108
--- /dev/null
+++ b/release/help/img/docu/sign_click_verify.jpg
Binary files differ
diff --git a/release/help/img/docu/sign_enter_passphrase.jpg b/release/help/img/docu/sign_enter_passphrase.jpg
new file mode 100644
index 00000000..67c3fd8d
--- /dev/null
+++ b/release/help/img/docu/sign_enter_passphrase.jpg
Binary files differ
diff --git a/release/help/img/docu/sign_show_message.jpg b/release/help/img/docu/sign_show_message.jpg
new file mode 100644
index 00000000..ee725e36
--- /dev/null
+++ b/release/help/img/docu/sign_show_message.jpg
Binary files differ
diff --git a/release/help/img/docu/translate_context.jpg b/release/help/img/docu/translate_context.jpg
new file mode 100644
index 00000000..af59cd21
--- /dev/null
+++ b/release/help/img/docu/translate_context.jpg
Binary files differ
diff --git a/release/help/img/docu/translate_src_transl.jpg b/release/help/img/docu/translate_src_transl.jpg
new file mode 100644
index 00000000..432607b1
--- /dev/null
+++ b/release/help/img/docu/translate_src_transl.jpg
Binary files differ
diff --git a/release/help/img/docu/verify_click_verify.jpg b/release/help/img/docu/verify_click_verify.jpg
new file mode 100644
index 00000000..79d22e71
--- /dev/null
+++ b/release/help/img/docu/verify_click_verify.jpg
Binary files differ
diff --git a/release/help/img/docu/verify_import_from_keyserver.jpg b/release/help/img/docu/verify_import_from_keyserver.jpg
new file mode 100644
index 00000000..8139bfc8
--- /dev/null
+++ b/release/help/img/docu/verify_import_from_keyserver.jpg
Binary files differ
diff --git a/release/help/img/docu/verify_key_not_present.jpg b/release/help/img/docu/verify_key_not_present.jpg
new file mode 100644
index 00000000..7d3fcdfd
--- /dev/null
+++ b/release/help/img/docu/verify_key_not_present.jpg
Binary files differ
diff --git a/release/help/img/docu/verify_message_shown.jpg b/release/help/img/docu/verify_message_shown.jpg
new file mode 100644
index 00000000..efbccb68
--- /dev/null
+++ b/release/help/img/docu/verify_message_shown.jpg
Binary files differ
diff --git a/release/help/img/docu/verify_paste_message.jpg b/release/help/img/docu/verify_paste_message.jpg
new file mode 100644
index 00000000..a9a89dad
--- /dev/null
+++ b/release/help/img/docu/verify_paste_message.jpg
Binary files differ
diff --git a/release/help/img/weblogo.png b/release/help/img/weblogo.png
new file mode 100644
index 00000000..5618624d
--- /dev/null
+++ b/release/help/img/weblogo.png
Binary files differ
diff --git a/release/icons/button_cancel.png b/release/icons/button_cancel.png
new file mode 100644
index 00000000..75980de0
--- /dev/null
+++ b/release/icons/button_cancel.png
Binary files differ
diff --git a/release/icons/button_copy.png b/release/icons/button_copy.png
new file mode 100644
index 00000000..a04d2f7f
--- /dev/null
+++ b/release/icons/button_copy.png
Binary files differ
diff --git a/release/icons/button_cut.png b/release/icons/button_cut.png
new file mode 100644
index 00000000..57c4711c
--- /dev/null
+++ b/release/icons/button_cut.png
Binary files differ
diff --git a/release/icons/button_next.png b/release/icons/button_next.png
new file mode 100644
index 00000000..3a84a546
--- /dev/null
+++ b/release/icons/button_next.png
Binary files differ
diff --git a/release/icons/button_ok.png b/release/icons/button_ok.png
new file mode 100644
index 00000000..94aac4b2
--- /dev/null
+++ b/release/icons/button_ok.png
Binary files differ
diff --git a/release/icons/button_paste.png b/release/icons/button_paste.png
new file mode 100644
index 00000000..099c51ff
--- /dev/null
+++ b/release/icons/button_paste.png
Binary files differ
diff --git a/release/icons/button_previous.png b/release/icons/button_previous.png
new file mode 100644
index 00000000..41bf3aac
--- /dev/null
+++ b/release/icons/button_previous.png
Binary files differ
diff --git a/release/icons/configure.png b/release/icons/configure.png
new file mode 100644
index 00000000..2bf463be
--- /dev/null
+++ b/release/icons/configure.png
Binary files differ
diff --git a/release/icons/decrypted.png b/release/icons/decrypted.png
new file mode 100644
index 00000000..2b49969a
--- /dev/null
+++ b/release/icons/decrypted.png
Binary files differ
diff --git a/release/icons/edit.png b/release/icons/edit.png
new file mode 100644
index 00000000..bee26454
--- /dev/null
+++ b/release/icons/edit.png
Binary files differ
diff --git a/release/icons/encrypted.png b/release/icons/encrypted.png
new file mode 100644
index 00000000..4ae41eee
--- /dev/null
+++ b/release/icons/encrypted.png
Binary files differ
diff --git a/release/icons/error.png b/release/icons/error.png
new file mode 100755
index 00000000..d64c533f
--- /dev/null
+++ b/release/icons/error.png
Binary files differ
diff --git a/release/icons/exit.png b/release/icons/exit.png
new file mode 100644
index 00000000..08e97b40
--- /dev/null
+++ b/release/icons/exit.png
Binary files differ
diff --git a/release/icons/export_key_to_clipboard.png b/release/icons/export_key_to_clipboard.png
new file mode 100644
index 00000000..9dbeb7a3
--- /dev/null
+++ b/release/icons/export_key_to_clipboard.png
Binary files differ
diff --git a/release/icons/export_key_to_file.png b/release/icons/export_key_to_file.png
new file mode 100644
index 00000000..c1ccf8d2
--- /dev/null
+++ b/release/icons/export_key_to_file.png
Binary files differ
diff --git a/release/icons/fileencrytion.png b/release/icons/fileencrytion.png
new file mode 100644
index 00000000..36adbc8e
--- /dev/null
+++ b/release/icons/fileencrytion.png
Binary files differ
diff --git a/release/icons/fileopen.png b/release/icons/fileopen.png
new file mode 100644
index 00000000..73419296
--- /dev/null
+++ b/release/icons/fileopen.png
Binary files differ
diff --git a/release/icons/fileprint.png b/release/icons/fileprint.png
new file mode 100644
index 00000000..05e15987
--- /dev/null
+++ b/release/icons/fileprint.png
Binary files differ
diff --git a/release/icons/filesave.png b/release/icons/filesave.png
new file mode 100644
index 00000000..0006ad42
--- /dev/null
+++ b/release/icons/filesave.png
Binary files differ
diff --git a/release/icons/filesaveas.png b/release/icons/filesaveas.png
new file mode 100644
index 00000000..2be6df25
--- /dev/null
+++ b/release/icons/filesaveas.png
Binary files differ
diff --git a/release/icons/format-line-spacing-double.png b/release/icons/format-line-spacing-double.png
new file mode 100644
index 00000000..a131803a
--- /dev/null
+++ b/release/icons/format-line-spacing-double.png
Binary files differ
diff --git a/release/icons/format-line-spacing-normal.png b/release/icons/format-line-spacing-normal.png
new file mode 100644
index 00000000..debc26bb
--- /dev/null
+++ b/release/icons/format-line-spacing-normal.png
Binary files differ
diff --git a/release/icons/format-line-spacing-triple.png b/release/icons/format-line-spacing-triple.png
new file mode 100644
index 00000000..3ef2e484
--- /dev/null
+++ b/release/icons/format-line-spacing-triple.png
Binary files differ
diff --git a/release/icons/gpg4usb-logo.png b/release/icons/gpg4usb-logo.png
new file mode 100644
index 00000000..3783dfd0
--- /dev/null
+++ b/release/icons/gpg4usb-logo.png
Binary files differ
diff --git a/release/icons/gpg4usb-logo_small.png b/release/icons/gpg4usb-logo_small.png
new file mode 100644
index 00000000..6242ac5c
--- /dev/null
+++ b/release/icons/gpg4usb-logo_small.png
Binary files differ
diff --git a/release/icons/help.png b/release/icons/help.png
new file mode 100644
index 00000000..915f9fd6
--- /dev/null
+++ b/release/icons/help.png
Binary files differ
diff --git a/release/icons/import_key_from_clipboard.png b/release/icons/import_key_from_clipboard.png
new file mode 100644
index 00000000..d06fb26e
--- /dev/null
+++ b/release/icons/import_key_from_clipboard.png
Binary files differ
diff --git a/release/icons/import_key_from_file.png b/release/icons/import_key_from_file.png
new file mode 100755
index 00000000..621c4e29
--- /dev/null
+++ b/release/icons/import_key_from_file.png
Binary files differ
diff --git a/release/icons/import_key_from_server.png b/release/icons/import_key_from_server.png
new file mode 100644
index 00000000..5d88ab58
--- /dev/null
+++ b/release/icons/import_key_from_server.png
Binary files differ
diff --git a/release/icons/importkey_editor.png b/release/icons/importkey_editor.png
new file mode 100644
index 00000000..4fa7e01a
--- /dev/null
+++ b/release/icons/importkey_editor.png
Binary files differ
diff --git a/release/icons/key_export.png b/release/icons/key_export.png
new file mode 100755
index 00000000..ba72a3d4
--- /dev/null
+++ b/release/icons/key_export.png
Binary files differ
diff --git a/release/icons/key_generate.png b/release/icons/key_generate.png
new file mode 100644
index 00000000..78a644be
--- /dev/null
+++ b/release/icons/key_generate.png
Binary files differ
diff --git a/release/icons/key_import.png b/release/icons/key_import.png
new file mode 100755
index 00000000..0226c2f3
--- /dev/null
+++ b/release/icons/key_import.png
Binary files differ
diff --git a/release/icons/keymgmt.png b/release/icons/keymgmt.png
new file mode 100644
index 00000000..42b6ec07
--- /dev/null
+++ b/release/icons/keymgmt.png
Binary files differ
diff --git a/release/icons/keys12.jpg b/release/icons/keys12.jpg
new file mode 100644
index 00000000..acf8f8d0
--- /dev/null
+++ b/release/icons/keys12.jpg
Binary files differ
diff --git a/release/icons/keys13.jpg b/release/icons/keys13.jpg
new file mode 100644
index 00000000..0b76c5c6
--- /dev/null
+++ b/release/icons/keys13.jpg
Binary files differ
diff --git a/release/icons/kgpg_key2.png b/release/icons/kgpg_key2.png
new file mode 100755
index 00000000..43e5a521
--- /dev/null
+++ b/release/icons/kgpg_key2.png
Binary files differ
diff --git a/release/icons/mimetypes/application-pdf.png b/release/icons/mimetypes/application-pdf.png
new file mode 100644
index 00000000..c78b86c5
--- /dev/null
+++ b/release/icons/mimetypes/application-pdf.png
Binary files differ
diff --git a/release/icons/mimetypes/image-x-generic.png b/release/icons/mimetypes/image-x-generic.png
new file mode 100644
index 00000000..b0c9a3c9
--- /dev/null
+++ b/release/icons/mimetypes/image-x-generic.png
Binary files differ
diff --git a/release/icons/mimetypes/text-plain.png b/release/icons/mimetypes/text-plain.png
new file mode 100644
index 00000000..adc28836
--- /dev/null
+++ b/release/icons/mimetypes/text-plain.png
Binary files differ
diff --git a/release/icons/mimetypes/unknown.png b/release/icons/mimetypes/unknown.png
new file mode 100644
index 00000000..6a84b799
--- /dev/null
+++ b/release/icons/mimetypes/unknown.png
Binary files differ
diff --git a/release/icons/misc_doc.png b/release/icons/misc_doc.png
new file mode 100644
index 00000000..78851f36
--- /dev/null
+++ b/release/icons/misc_doc.png
Binary files differ
diff --git a/release/icons/quote.png b/release/icons/quote.png
new file mode 100644
index 00000000..ceadaad2
--- /dev/null
+++ b/release/icons/quote.png
Binary files differ
diff --git a/release/icons/signature.png b/release/icons/signature.png
new file mode 100755
index 00000000..015e5cc3
--- /dev/null
+++ b/release/icons/signature.png
Binary files differ
diff --git a/release/icons/statusbar_icon.png b/release/icons/statusbar_icon.png
new file mode 100644
index 00000000..6bb93bb8
--- /dev/null
+++ b/release/icons/statusbar_icon.png
Binary files differ
diff --git a/release/icons/txt.png b/release/icons/txt.png
new file mode 100644
index 00000000..8db7ba45
--- /dev/null
+++ b/release/icons/txt.png
Binary files differ
diff --git a/release/icons/undo.png b/release/icons/undo.png
new file mode 100644
index 00000000..5cbf37d0
--- /dev/null
+++ b/release/icons/undo.png
Binary files differ
diff --git a/release/icons/verify.png b/release/icons/verify.png
new file mode 100644
index 00000000..c6075d82
--- /dev/null
+++ b/release/icons/verify.png
Binary files differ
diff --git a/release/icons/wizard_banner.png b/release/icons/wizard_banner.png
new file mode 100644
index 00000000..7e19aeab
--- /dev/null
+++ b/release/icons/wizard_banner.png
Binary files differ
diff --git a/release/keydb/gpg.conf b/release/keydb/gpg.conf
new file mode 100755
index 00000000..e7c3ce17
--- /dev/null
+++ b/release/keydb/gpg.conf
@@ -0,0 +1,4 @@
+lock-never
+personal-digest-preferences SHA512
+cert-digest-algo SHA512
+default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB ZIP Uncompressed
diff --git a/release/keydb/secring.gpg b/release/keydb/secring.gpg
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/release/keydb/secring.gpg
diff --git a/release/ts/gpg4usb_ar.ts b/release/ts/gpg4usb_ar.ts
new file mode 100644
index 00000000..9d258ece
--- /dev/null
+++ b/release/ts/gpg4usb_ar.ts
@@ -0,0 +1,2480 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ar" sourcelanguage="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>أظهر خيارات الاستغانوغرافيا [متقدمة]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>أظهر خيارات الاستغانوغرافيا.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>أيقونة</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>صغير</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>وسط</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>كبير</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>طراز الأيقونة</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>نصّ و حسب</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>أيقونات و حسب</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>نصّ و أيقونات</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>حالة النفاذة</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>احفظ حجم و موضع النافذة عند غلق البرمجية.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>اسم الملف</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>نوع المحتوى</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>احفظ الملف</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>احفظ هذا الملف</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>افتح ملفًا</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>افتح هذا الملف</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>ملف</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>تعذّرت كتابة الملف %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>اختر فعلا...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...بالنقر على الرابط الملائم.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>إن كنت لم تستخدم gpg4usb أبدا من قبل لكنك ليس لديك مفتاح GPG فلربما تريد </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>توليد زوج مفاتيح جديد</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>إن كنت حدّثت إصدارة gpg4usb من إصدارة أقدم فلربما تريد</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>استيراد التضبيطات و/أو المفاتيح من gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>إن كنت تستخدم GnuPG من قبل فلربما أردت </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>استيراد المفاتيح من GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>جاهز.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>استمتع باستخدام gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>أنت الآن جاهز لاستخدام gpg4usb.&lt;br /&gt;
+&lt;br /&gt;
+دليل المساعدة سييسر عليك البدء باستخدام gpg4usb؛ و سيظهر في النافذة الرئيسية.&lt;br /&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>افتح دليل المساعدة.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>لا تظهر هذا المُرشد مُجددًا.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>عمِّ \ ظهِّر الملف</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>ملف</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>فعل</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>تظهير ملف</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>تعمية ملف</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>دخل</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>خرج</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;عمِّ</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;ظهِّر</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>افتح ملفا</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>حفظ الملف</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>تعذَّر فتح الملف: </translation>
+ </message>
+ <message>
+ <source>couldn&apos;t open file: </source>
+ <translation type="obsolete">تعذّر فتح الملف:</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>تعذّرت كتابة الملف %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>يوجد ملف بالاسم ذاته! أتريد الكتابة فوقه؟</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>تذكّر عبارة السرّ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>تذكّر عبارة السرّ حتى إنهاء gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>احفظ المفاتيح المؤشر عليها</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>عند الخروج احفظ المفاتيح السرية المؤشر عليها و استرجعها عند التشغيل التالي.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>وكّد استيراد المفاتيح بالسحب و الإسقاط</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>استورد المفاتيح المُسقطة على حلقة المفاتيح بلا توكيد.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>اللغة</translation>
+ </message>
+ <message>
+ <source>Language change is applied after restarting program.</source>
+ <translation type="obsolete">تغيير اللغة يُطبّق بعد إعادة تشغيل البرمجية.</translation>
+ </message>
+ <message>
+ <source>System Default</source>
+ <translation type="obsolete">مبدئيات النظام</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::Context</name>
+ <message>
+ <source>No Key Selected</source>
+ <translation type="obsolete">لا مفاتيح مُختارة</translation>
+ </message>
+ <message>
+ <source>Unsupported algorithm</source>
+ <translation type="obsolete">خوارزميّة غير مدعومة</translation>
+ </message>
+ <message>
+ <source>Error decrypting:</source>
+ <translation type="obsolete">خطأ عند تظهير:</translation>
+ </message>
+ <message>
+ <source>Wrong password</source>
+ <translation type="obsolete">عبارة سرّ غير صحيحة</translation>
+ </message>
+ <message>
+ <source>Enter Password</source>
+ <translation type="obsolete">أدخل عبارة السرّ</translation>
+ </message>
+ <message>
+ <source>Key Selection</source>
+ <translation type="obsolete">اختيار المفاتيح</translation>
+ </message>
+ <message>
+ <source>No Private Key Selected</source>
+ <translation type="obsolete">لا مفاتيح سرية مُختارة</translation>
+ </message>
+ <message>
+ <source>Error signing:</source>
+ <translation type="obsolete">خطأ عند توقيع:</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>لا مفاتيح مُختارة</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;ليس في حلقة المفاتيح مفتاحٌ بالمعرِّف %1</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>خوارميّة غير مدعومة</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>خطأ عند تظهير:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>عبارة سرّ غير صحيحة</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>أدخل عبارة سرِّ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>أدخل عبارة السرّ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>اختيار المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>لا مفاتيح سرية مُختارة</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>خطأ عند توقيع:</translation>
+ </message>
+</context>
+<context>
+ <name>GpgWin</name>
+ <message>
+ <source>&amp;Open...</source>
+ <translation type="obsolete">ا&amp;فتح...</translation>
+ </message>
+ <message>
+ <source>Open an existing file</source>
+ <translation type="obsolete">يفتح ملفا موجودا</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation type="obsolete">ا&amp;حفظ</translation>
+ </message>
+ <message>
+ <source>Save the current File</source>
+ <translation type="obsolete">يحفظ الملف الحالي</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation type="obsolete">احفظ با&amp;سم</translation>
+ </message>
+ <message>
+ <source>Save the current File as...</source>
+ <translation type="obsolete">يحفظ نسخة من الملف الحالي باسم معيّن</translation>
+ </message>
+ <message>
+ <source>&amp;Print</source>
+ <translation type="obsolete">ا&amp;طبع</translation>
+ </message>
+ <message>
+ <source>Print Document</source>
+ <translation type="obsolete">يطبع الوثيقة</translation>
+ </message>
+ <message>
+ <source>&amp;Close</source>
+ <translation type="obsolete">أ&amp;غلق</translation>
+ </message>
+ <message>
+ <source>Close file</source>
+ <translation type="obsolete">يغلق الملف</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation type="obsolete">أ&amp;نهِ</translation>
+ </message>
+ <message>
+ <source>Quit Program</source>
+ <translation type="obsolete">ينهي عمل البرمجية</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation type="obsolete">&amp;تراجع</translation>
+ </message>
+ <message>
+ <source>Undo Last Edit Action</source>
+ <translation type="obsolete">يتراجع عن آخر فعل تحرير</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation type="obsolete">أعِ&amp;د</translation>
+ </message>
+ <message>
+ <source>Redo Last Edit Action</source>
+ <translation type="obsolete">يعيد آخر فعل تحرير</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation type="obsolete">أل&amp;صق</translation>
+ </message>
+ <message>
+ <source>Paste Text From Clipboard</source>
+ <translation type="obsolete">يلصق من حافظة القصاصات</translation>
+ </message>
+ <message>
+ <source>Cu&amp;t</source>
+ <translation type="obsolete">ق&amp;ص</translation>
+ </message>
+ <message>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation type="obsolete">يقصّ الاختيار الحالي إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation type="obsolete">انس&amp;خ</translation>
+ </message>
+ <message>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation type="obsolete">ينسخ الاختيار الحالي إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <source>&amp;Quote</source>
+ <translation type="obsolete">ا&amp;قتبس</translation>
+ </message>
+ <message>
+ <source>Quote whole text</source>
+ <translation type="obsolete">يقتبس النصّ كلّه</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation type="obsolete">اخ&amp;تر الكلّ</translation>
+ </message>
+ <message>
+ <source>Select the whole text</source>
+ <translation type="obsolete">يختار النصّ كلَه</translation>
+ </message>
+ <message>
+ <source>Remove double &amp;Linebreaks</source>
+ <translation type="obsolete">احذف الفراغات المز&amp;دوجة بين الأسطر</translation>
+ </message>
+ <message>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation type="obsolete">يزيل الأسطر الخاوية بين أسطر النصّ، مثل التي تطرأ عند اللصق من خدمات بريد الوِب</translation>
+ </message>
+ <message>
+ <source>Open settings dialog</source>
+ <translation type="obsolete">يفتح تحكُّمات الضبط</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt</source>
+ <translation type="obsolete">&amp;عمِّ</translation>
+ </message>
+ <message>
+ <source>Encrypt Message</source>
+ <translation type="obsolete">يعمّي الرسالة</translation>
+ </message>
+ <message>
+ <source>&amp;Decrypt</source>
+ <translation type="obsolete">&amp;ظهِّر</translation>
+ </message>
+ <message>
+ <source>Decrypt Message</source>
+ <translation type="obsolete">يُظهِّر الرسالة</translation>
+ </message>
+ <message>
+ <source>&amp;File Encryption</source>
+ <translation type="obsolete">تعمية ال&amp;ملفات</translation>
+ </message>
+ <message>
+ <source>Encrypt/Decrypt File</source>
+ <translation type="obsolete">عمِّ \ ظهِّر ملفا</translation>
+ </message>
+ <message>
+ <source>&amp;Sign</source>
+ <translation type="obsolete">و&amp;قِّع</translation>
+ </message>
+ <message>
+ <source>Sign Message</source>
+ <translation type="obsolete">يوقّع الرسالة</translation>
+ </message>
+ <message>
+ <source>&amp;Verify</source>
+ <translation type="obsolete">ت&amp;حقّق</translation>
+ </message>
+ <message>
+ <source>Verify Message</source>
+ <translation type="obsolete">يتحقق من توقيع على الرسالة</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br/&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Alessandro (pt_br), Kirill (ru), Phol (es), Viriato (es), Serse (it), Tom (vi) &lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;تتيح هذه الأداة التعمية و التظهير اليسيرين للرسائل النصية و الملفات&lt;br/&gt;
+و هي منشورة بالإصدارة الثالثة من رخصة GPL&lt;br/&gt;&lt;br/&gt;
+&lt;b&gt;المُطوِّرون:&lt;/b&gt;
+Bene و Heimer و Juergen و Nils و Ubbo&lt;br/&gt;
+&lt;br/&gt;
+&lt;b&gt;المترجمون:&lt;/b&gt;&lt;br/&gt; أحمد غربية (ar) و Alessandro (pt_br) و Åke (sv) و&lt;br/&gt;Elad (he) و George (el) و Jedi Lin (zh_tw) و&lt;br/&gt;Kirill (ru) و Marek Bogacz (pl) و Phol (es) و&lt;br/&gt;Russell (my) و Serse (it) و Tom (vi) و&lt;br/&gt;Toughworm(zh) و Viriato (es)&lt;br/&gt;
+&lt;br/&gt;
+تواصل معنا عبر &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;صفحة الاتصال&lt;/a&gt; إن كانت لديك اقتراحات أو أرسل إلى القائمة البريدية &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <source>&amp;Keyserver</source>
+ <translation type="obsolete">&amp;خادوم المفاتيح</translation>
+ </message>
+ <message>
+ <source>Import New Key From Editor</source>
+ <translation type="obsolete">استورد مفتاحا من المحرر</translation>
+ </message>
+ <message>
+ <source>Key Management</source>
+ <translation type="obsolete">إدارة المفاتيح</translation>
+ </message>
+ <message>
+ <source>Open Keymanagement</source>
+ <translation type="obsolete">يفتح تحكُّمات إدارة المفاتيح</translation>
+ </message>
+ <message>
+ <source>Open Import New Key Dialog</source>
+ <translation type="obsolete">يفتح تحكُّمات استيراد مفتاح جديد</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;عن الأداة</translation>
+ </message>
+ <message>
+ <source>Show the application&apos;s About box</source>
+ <translation type="obsolete">يظهر صفحة معلومات عن الأداة</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="obsolete">&amp;ملف</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="obsolete">&amp;حرّر</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation type="obsolete">م&amp;ساعدة</translation>
+ </message>
+ <message>
+ <source>Append Selected Key(s) To Text</source>
+ <translation type="obsolete">ألحِق بالنصّ المفاتيح المختارة</translation>
+ </message>
+ <message>
+ <source>Se&amp;ttings</source>
+ <translation type="obsolete">ت&amp;ضبيطات</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;جديد</translation>
+ </message>
+ <message>
+ <source>Open a new file</source>
+ <translation type="obsolete">ينشئ ملفا جديدا</translation>
+ </message>
+ <message>
+ <source>Online &amp;Tutorial</source>
+ <translation type="obsolete">&amp;شرح على الخطّ</translation>
+ </message>
+ <message>
+ <source>Open Online Tutorial</source>
+ <translation type="obsolete">يفتح صفحة على الوِب فيها شرح استخدام الأداة</translation>
+ </message>
+ <message>
+ <source>Translate gpg4usb</source>
+ <translation type="obsolete">ترجِم gpg4usb</translation>
+ </message>
+ <message>
+ <source>Translate gpg4usb yourself</source>
+ <translation type="obsolete">ساهم بترجمة gpg4usb</translation>
+ </message>
+ <message>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation type="obsolete">يلحق بالنصّ في المحرر المفاتيح المختارة</translation>
+ </message>
+ <message>
+ <source>Copy EMail-address</source>
+ <translation type="obsolete">انسخ عنوان البريد</translation>
+ </message>
+ <message>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation type="obsolete">ينسخ عنوان البريد الإلكتروني إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <source>Show Keydetails</source>
+ <translation type="obsolete">أظهر بيانات المفتاح</translation>
+ </message>
+ <message>
+ <source>Show Details for this Key</source>
+ <translation type="obsolete">يُظهر بيانات هذا المفتاح</translation>
+ </message>
+ <message>
+ <source>&amp;Keys</source>
+ <translation type="obsolete">الم&amp;فاتيح</translation>
+ </message>
+ <message>
+ <source>&amp;Import Key From...</source>
+ <translation type="obsolete">ا&amp;ستورد مفتاحا من...</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation type="obsolete">&amp;عرض</translation>
+ </message>
+ <message>
+ <source>Ready</source>
+ <translation type="obsolete">جاهز</translation>
+ </message>
+ <message>
+ <source>Encrypt for:</source>
+ <translation type="obsolete">عمّ لأجل:</translation>
+ </message>
+ <message>
+ <source>Attached files:</source>
+ <translation type="obsolete">ملفات مُرفقة:</translation>
+ </message>
+ <message>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation type="obsolete">يوجد ملف غير معمّى في دليل المُرفقات</translation>
+ </message>
+ <message>
+ <source>There are </source>
+ <translation type="obsolete">توجد</translation>
+ </message>
+ <message>
+ <source> unencrypted files in attachment folder</source>
+ <translation type="obsolete">ملفات غير مُعمّاة في دليل المرفقات</translation>
+ </message>
+ <message>
+ <source>&amp;Editor</source>
+ <translation type="obsolete">الم&amp;حرر</translation>
+ </message>
+ <message>
+ <source>&amp;Clipboard</source>
+ <translation type="obsolete">حافظة ال&amp;قصاصات</translation>
+ </message>
+ <message>
+ <source>Import Key</source>
+ <translation type="obsolete">استورد مفتاحا</translation>
+ </message>
+ <message>
+ <source>&amp;Crypt</source>
+ <translation type="obsolete">&amp;عمِّ</translation>
+ </message>
+ <message>
+ <source>Crypt</source>
+ <translation type="obsolete">عمّ</translation>
+ </message>
+ <message>
+ <source>Key</source>
+ <translation type="obsolete">مفتاح</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation type="obsolete">حرّر</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">عن الأداة</translation>
+ </message>
+ <message>
+ <source>Import Key From...</source>
+ <translation type="obsolete">استورد مفتاحا من...</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>استورد مفاتيح...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...من تنصيبة GnuPG قامة</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>يمكنك استيراد مفاتيح من تنصيبة GnuPG محلية.&lt;br /&gt;
+&lt;br /&gt;
+موقع حفظ الملفات يُعرفُ من سجِّل تضبيطات وِندوز أو دليل ‭.gnupg‬ في الدليل المَنزِل في لينُكس.&lt;br /&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>استورد المفاتيح من GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>خطأ في الاستيراد</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>تعذَّر إيجاد الدليل المَنزِل لأداة GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>استورد من...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...تنصيبة gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>يمكنك استيراد المفاتيح و التضبيطات من تنصيبة gpg4usb قائمة.&lt;br /&gt;
+&lt;br /&gt;
+أشِّر على ما تريد استيراده، ثم اضغط زرّ الاستيراد و في صندوق الحوار اختر الدليل المنصبة فيه gpg4usb.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>التضبيطات</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>استورد من gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>من دليل gpg4usb آخر</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>تم بنجاح استيراد التضبيطات</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>تم بنجاح استيراد التضبيطات من تنصيبة gpg4usb سابقة.&lt;br /&gt;
+ستجري إعادة التشغيل لتفعيل التضبيطات.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>البدء باستخدام...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>‎...gpg4usb‬</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>لاستخدام gpg4usb لتعمية و توقيع الرسائل يجب أن يكون لديك زوج مفاتيح. الصفحة التالية ستساعدك في توليد أو استيراد المفاتيح.&lt;br /&gt;
+&lt;br /&gt;
+لمزيد من المعلومات طالع وثيقة &lt;a href=&quot;docu_concepts.html&quot;&gt;المفاهيم&lt;/a&gt; (بالنقر على الرابط فإن الصفحة ستفتح في نافذة جديدة).&lt;br /&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>اختَر لغة</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>بيانات صاحب المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>بيانات المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>البصمة</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>هويّات إضافية</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>الاسم:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>عنوان البريد:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>تعليق:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>ينتهي في:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>وُلِّد في:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>مُعرِّف المفتاح:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>انسخ البصمةإلى لوح القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>تحذير: المفتاح منته</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>تحذير: المفتاح منقوض</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>بيانات المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>أنت بصدد تصدير مفتاحك السريّ الذي تُظهّر به و توقّع.
+هذا ليس مفتاحك العلنيّ الذي.تشاركه مع الآخرين ليُراسلوك.
+إن صدّرته فاحرص على حفظه في أمان. أتريد حقا تصدير مفتاحك السريّ؟</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>ملفات المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>خطأ في التصدير</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>تعذَّر فتح %1 للكتابة</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>طول المفتاح:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>الخوارزمية:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>أبدا</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation>\ أبدا</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>مفتاح سريّ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>صدّر المفتاح السريّ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>يجري تصدير المفتاح السريّ</translation>
+ </message>
+ <message>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.</source>
+ <translation type="obsolete">أنت بصدد تصدير مفتاحك السريّ.
+هذا *ليس* مفتاحك العلني فلا تعطه لأحد.
+احرص على حفظه بأمان.</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>يصدّر المفتاح إلى ملف</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>ولِّد زوج مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>قوة عبارة السرّ</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>الاسم:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>عنوان البريد:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>تعليق:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>تاريخ الانتهاء:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>لا ينتهي أبدا</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>طول المفتاح (بالبِتّة):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>عبارة السرّ:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>عبارة السرّ: قوتها ضعيفة -&gt; قوية</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>وكّد عبارة السرّ:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation>يجب أن يحوي الاسم على الأقل خمسة محارف.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation>عبارة السر و تكرارها لا يتطابقان.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>يجري توليد زوج مفاتيح...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>يجري جمع بيانات عشوائية لتوليد المفاتيح.
+قد يستغرق هذا بعض الوقت.
+لتسريع الصيرورة استخدم الحاسوب في أغراض أخرى</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>تم بنجاح</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>تم توليد زوج مفاتيح جديد</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>ولِّد زوج مفاتيح...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>..لتظهير و توقيع الرسائل</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translatorcomment>To be more informative, I phrased the second sentence as &quot;Uses of tools ompatible with the GPG system can use your public key for you [...]&quot;</translatorcomment>
+ <translation>ينبغي عليك توليد زوج مفاتيح يتألف من مفتاح علنيّ و آخر سريّ.&lt;br /&gt;
+يمكن لمن يستخدمون أدوات متوافقةمع نظام التعمية PGP استخدام مفتاحك العلنيّ لتعمية الرسائل لك و للتحقق من توقيعك على الرسائل التي وقّعتها. بينما تستخدم أنت مفتاحك السريّ لتظهير الرسائل المعماة لك و لتوقيع الرسائل.&lt;br /&gt;
+لمزيد من المعلومات طالع الشرح (الذي سيظهر في النافذة الرئيسية):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>وثيقة شرح</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>ولِّد زوج مفاتيح</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>بيانات استيراد مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>لم يُعثر على مفاتيح لاستيرادها</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>معلومات استيراد مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>عولجت:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>علنيّة لم تتغيّر:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>استورِدَت:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>لم تُستورد:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>سرية عولجت:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>سرية استورِدَت:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>سريّة لم تتغيذر:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>الاسم</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>عنوان البريد</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>الحالة</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>البصمة</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>سريّ</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>علنيّ</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>لم يتغيّر</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>مفتاح جديد</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>مفاتيح فرعية جديدة</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>توقيعات جديدة</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>هويّات جديدة</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>الاسم</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>عنوان البريد</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>استورد المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>لقد أسقطت شيئا على حلقة المفاتيح.
+gpg4usb سيحاول الآن استيراد مفاتيح.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>استورد دوما بلا تنويه.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>تعذّر فتح الملف:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>إدارة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>أ&amp;غلق إدارة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>يغلق إدارة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>يستورد مفتاحا من ملف</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>يستورد مفتاحا من حافظة القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;خادوم مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>يستورد مفتاحا من خادوم مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>صدّر إلى حافظة ال&amp;قصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>يصدّر المفاتيح المختارة إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>صدّر إلى &amp;ملف</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>يصدّر المفاتيح المختارة إلى ملف</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>احذف الملفات المختارة</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>يحذف الملفات المختارة من حلقة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>احذف المفاتيح المؤشر أمامها</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>يحذف الملفات المؤشر أمامها من حلقة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>ولِّد زوج مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>يولّد زوج مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>أظهر بيانات المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>يظهر بيانات هذا المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>مفاتيح تم استيرادها</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;ملف</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>حافظة ال&amp;قصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>م&amp;فتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>ا&amp;ستورد مفتاحا من...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>مفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>يستورد مفتاحا</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>استورد مفتاحا من</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translatorcomment>Should better be &quot;Open key file&quot;</translatorcomment>
+ <translation>فتح ملف مفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>ملفات المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>ملفات حلقات المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>تعذّر فتح الملف:</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>يجري حذف مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;أمتأكد أنّك تريد حذف المفاتيح التالية؟&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;‭</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>‬&lt;br/&gt;هذا الفعل لا يُمكن تداركه.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>تصدير المفتاح إلى ملف</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation type="obsolete">الاسم:</translation>
+ </message>
+ <message>
+ <source>E-Mailaddress::</source>
+ <translation type="obsolete">عنوان البريد:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation type="obsolete">نعليق:</translation>
+ </message>
+ <message>
+ <source>KeySize (in Bit):</source>
+ <translation type="obsolete">طول المفتاح (بالبِتّة):</translation>
+ </message>
+ <message>
+ <source>Expiration Date:</source>
+ <translation type="obsolete">تاريخ الانتهاء:</translation>
+ </message>
+ <message>
+ <source>Password:</source>
+ <translation type="obsolete">عبارة السرّ:</translation>
+ </message>
+ <message>
+ <source>Repeat Password:</source>
+ <translation type="obsolete">كرر عبارة السرّ:</translation>
+ </message>
+ <message>
+ <source>Never Expire</source>
+ <translation type="obsolete">لا ينتهي أبدا</translation>
+ </message>
+ <message>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation type="obsolete">عبارة السرّ: قوتها ضعيفة -&gt; قوية</translation>
+ </message>
+ <message>
+ <source>Password Strength</source>
+ <translation type="obsolete">قوة عبارة السرّ</translation>
+ </message>
+ <message>
+ <source> Name must contain at least five characters.
+</source>
+ <translation type="obsolete">يجب أن يحوي الاسم على الأقل خمسة محارف.</translation>
+ </message>
+ <message>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation type="obsolete">عبارة السر و تكرارها لا يتطابقان.</translation>
+ </message>
+ <message>
+ <source>Generating Key...</source>
+ <translation type="obsolete">يجري توليد زوج مفاتيح...</translation>
+ </message>
+ <message>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation type="obsolete">يجري جمع بيانات عشوائية لتوليد المفاتيح.
+قد يستغرق هذا بعض الوقت.
+لتسريع الصيرورة استخدم الحاسوب في أغراض أخرى</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>أ&amp;غلق</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>ا&amp;ستورد</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>ا&amp;بحث</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>عبارة البحث:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>خادوم المفاتيح:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>استورد مفاتيح من خادوم مفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>هويّة</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>تاريخ التوليد</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>معرّف المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>وسم</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>تعذّر الاتصال بخادوم المفاتيح!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translatorcomment>recommended phrasing: &quot;Search returned too many results. try to be more specific.&quot;</translatorcomment>
+ <translation>أوجد البحث نتائج كثيرة جدا. حاول أن تكون أكثر تحديدًا.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>لم توجد مفاتيح. ربما كانت العبار مُعرف مفتاح سِتَّعَشري، يجري البحث باستخدام 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>لم توجد مفاتيح تحوي عبارة البحث!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>عبارة بحث غير كافية!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>منقوض</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>مُعطَّل</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>وُجدَ %1 مفاتيح. انقر على مفتاح لاستيراده.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>خطأ أثناء الاتصال بخادوم المفاتيح!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>تم استيراد المفتاح</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>خادوم المفاتيح المبدئي للاستيراد:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;جديد</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>يُنشئ ملفًا جديدًا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>ا&amp;فتح...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>يفتح ملفا موجودا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>ا&amp;حفظ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>يحفظ الملف الحالي</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>احفظ با&amp;سم</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>يحفظ نسخة من الملف الحالي باسم معيّن</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>ا&amp;طبع</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>يطبع الوثيقة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>أ&amp;غلق</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>يغلق الملف</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>أ&amp;نهِ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>ينه عمل البرمجية</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;تراجع</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>يتراجع عن آخر فعل تحرير</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>أعِ&amp;د</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>يعيد آخر فعل تحرير</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>كبّر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>صغّر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>أل&amp;صق</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>يلصق من حافظة القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>ق&amp;ص</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>يقصّ الاختيار الحالي إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>انس&amp;خ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>ينسخ الاختيار الحالي إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>ا&amp;قتبس</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>يقتبس النصّ كلّه</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>اخ&amp;تر الكلّ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>يختار النصّ كلَه</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>احذف الم&amp;سافات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>يزيل الأسطر الخاوية بين أسطر النصّ، مثل التي تطرأ عند اللصق من خدمات بريد الوِب</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>الت&amp;ضبيطات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>يفتح تحكُّمات الضبط</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;عمِّ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>يعمّي الرسالة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;ظهِّر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>يُظهِّر الرسالة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>تعمية ال&amp;ملفات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>عمِّ \ ظهِّر ملفا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;عَمِّ ملفًا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>عَمِّ ملفًا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;ظَهِّر ملفًا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>ظَهِّر ملفًا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>و&amp;قِّع</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>يوقّع الرسالة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>ت&amp;حقّق</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>يتحقق من توقيع على الرسالة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>الم&amp;حرر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>استورد مفتاحا من المحرر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>إدارة الم&amp;فاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>يفتح تحكُّمات إدارة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;عن الأداة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>يظهر صفحة معلومات عن الأداة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>المساعدة المُرفقة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>افتح المساعدة المُرفقة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>المساعدة على ال&amp;خطّ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>يفتح المساعدة على الخط</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>ترجِم gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>ساهم بترجمة gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>شغِّل المُر&amp;شد</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>شغِّل المُرشد</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>ألحِق بالنصّ المفاتيح المختارة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>يلحق بالنصّ في المحرر المفاتيح المختارة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>انسخ عنوان البريد</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>ينسخ عنوان البريد الإلكتروني إلى حافظة القصاصات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>أظهر بيانات المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>أظهر بيانات هذا المفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>أزّل ترويسة PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>أضِف ترويسة PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;ملف</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;حرّر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;عمِّ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>الم&amp;فاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>ا&amp;ستورد مفتاحا من...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>الاستغانو&amp;غرافيا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;عرض</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>م&amp;ساعدة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>ملف</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>عمّ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>مفتاح</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>حرّر</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>تحرير خاص</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translatorcomment>This is the tool tip. It shouldn&apos;t have ellipsis</translatorcomment>
+ <translation>يستورد مفتاحا</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translatorcomment>This is the button&apos;s label. It should have &quot;from&quot; appended to it to be more intuitive</translatorcomment>
+ <translation>استورد مفتاحا من...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>يعمِّي أو يظهِّر ملفات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>ملف...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>جاهز</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>عمّ لأجل:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>ملفات مُرفقة:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>عن الأداة</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">عن الأداة</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;تتيح هذه الأداة التعمية و التظهير اليسيرين للرسائل النصية و الملفات&lt;br/&gt;
+و هي منشورة بالإصدارة الثالثة من رخصة GPL&lt;br/&gt;&lt;br/&gt;
+&lt;b&gt;المُطوِّرون:&lt;/b&gt;
+Bene و Heimer و Juergen و Nils و Ubbo&lt;br/&gt;
+&lt;br/&gt;
+&lt;b&gt;المترجمون:&lt;/b&gt;&lt;br/&gt; أحمد غربية (ar) و Alessandro (pt_br) و Åke (sv) و&lt;br/&gt;Elad (he) و George (el) و Jedi Lin (zh_tw) و&lt;br/&gt;Kirill (ru) و Marek Bogacz (pl) و Phol (es) و&lt;br/&gt;Russell (my) و Serse (it) و Tom (vi) و&lt;br/&gt;Toughworm(zh) و Viriato (es)&lt;br/&gt;
+&lt;br/&gt;
+تواصل معنا عبر &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;صفحة الاتصال&lt;/a&gt; إن كانت لديك اقتراحات أو أرسل إلى القائمة البريدية &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;تتيح هذه الأداة التعمية و التظهير اليسيرين للرسائل النصية و الملفات&lt;br/&gt;
+و هي منشورة بالإصدارة الثالثة من رخصة GPL&lt;br/&gt;&lt;br/&gt;
+&lt;b&gt;المُطوِّرون:&lt;/b&gt;
+Bene و Heimer و Juergen و Nils و Ubbo&lt;br/&gt;
+&lt;br/&gt;
+&lt;b&gt;المترجمون:&lt;/b&gt;&lt;br/&gt;
+Alessandro (pt_br) و Kirill (ru) و Phol (es) و Viriato (es) و Serse (it) و Tom (vi) و أحمد غربية (ar)&lt;br/&gt;
+&lt;br/&gt;
+تواصل معنا عبر &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;صفحة الاتصال&lt;/a&gt; إن كانت لديك اقتراحات أو أرسل إلى القائمة البريدية &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br /&gt;
+&lt;br /&gt;
+مبنية على Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> و GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>يوجد ملف غير معمّى في دليل المُرفقات</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>توجد</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation>ملفات غير مُعمّاة في دليل المرفقات</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>فكّ ترميز quoted printable</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>يحاول التعرّف على ترميز quoted printable</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>عالج PGP/MIME (تجريبيّ)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>يحاول استخراج المرفقات من الرسائل المُعمّاة ببروتوكول PGP\MIME</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>افتح ببرمجية خارجية (تجريبيّ)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>يفتح المرفقات بالبرمجية الخارجية المبدئية لنوع الملف.&lt;br/&gt;
+توجد على الأقل نقطتا ضعف فيما يتعلق بسريّة هذا المسلك: &lt;ol&gt;
+&lt;li&gt;يجب حفظ الملف في صيغة صريحة (غير معمّاة) في دليل المرفقات&lt;br/&gt;
+تنظيف ذلك الدليل مسؤوليتك&lt;/li&gt;
+&lt;li&gt;قد تُنشئ البرمجية الخارجية ملفاتها المؤقتة&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>مكّن فتح الملفات ببرمجيات خارجية</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>ملفات لم تُحفظ</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 ملفات تحوي بيانات لم يتمّ حفظها.&lt;br/&gt;
+أأحفظ التغييرات قبل الإغلاق؟&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>افحص الملفات التي تريد حفظها:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;ملاحظة:&lt;/b&gt; إذا لم تحفظ هذه الملفات فإن كل التغييرات عليها ستضيع&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <source>English</source>
+ <comment>Insert local name of language here. This is used for the language menu of the settingsdialog</comment>
+ <translation type="obsolete">English</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>عامة</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>المظهر</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/MIME</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>خواديم المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>مُتقدّمة</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>التضبيطات</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>مبدئيات النظام</translation>
+ </message>
+ <message>
+ <source>English</source>
+ <translation type="obsolete">العربية</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>بلا عنوان</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>فتح ملف</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>تطبيق</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>تعذّرت قراءة الملف %1: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>ملف</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>تعذّرت كتابة الملف %1: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>حفظ الملف</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>ملف لم يُحفظ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;الملف &quot;%1&quot; تمّ تغيير محتواه.&lt;br/&gt; أتريد حفظ التغييرات؟&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;ملاحظة:&lt;/b&gt; إذا لم تحفظ هذه الملفات فإن كل التغييرات عليها ستضيع&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>بيانات التوقيع</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translatorcomment>This should better be phrased as &quot;Invalid signature by %1&quot;, as &quot;error&quot; imples that the verification process itself filed, instead of yielding a complete, yet undesired, result.</translatorcomment>
+ <translation>توقيع غير صحيح من</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translatorcomment>This should better have a variable for the signees name in the phrase to facilitate an Arabic phrasing that is more expected by the modern reader.</translatorcomment>
+ <translation>النصُّ كُلُّه وقَّعه يوم %1:
+</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>النصُّ بعضُه وقَّعه يوم %1: </translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>استورد من خادوم المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>الحالة:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>البصمة:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>المفتاح ليس موجودا في حلقة المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>لا يوجد مفتاح بهذا المُعرِّف الستَّعَشريّ</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>الاسم:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>عنوان البريد:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>جيِّد</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>خطأ فيما يتعلق بالمفتاح ذي المُعرِّف الستَّعَشريّ</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>استورد المفاتيح الناقصة من خادوم المفاتيح</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>أظهر تفاصيلَ بيانات الاستيثاق</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>تفاصيل</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>لا يوجد مفتاح بهذا المُعرِّف الستَّعَشريّ</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>خطأ في التحقق من توقيع: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>النصُّ كُلُّه وقَّعه: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>النصُّ بعضُه وقَّعه: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>خطأ فيما يتعلق بالمفتاح ذي البصمة </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>مُرشد التشغيل الأوّل</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>خطأ في الاستيراد</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>لم يُعثر على ملف حلقة منفاتيح في %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>خطأ في الاستيراد</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>تعذّر فتح ملف حلقة المفاتيح السرية: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>تعذّر فتح ملف حلقة المفاتيح العلنية: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_de.ts b/release/ts/gpg4usb_de.ts
new file mode 100644
index 00000000..42612761
--- /dev/null
+++ b/release/ts/gpg4usb_de.ts
@@ -0,0 +1,1972 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Steganografie [Erweitert]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Zeige Steganografie Menu.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Icongröße</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>Klein</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>Mittel</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>Groß</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Iconstil</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>Nur Text</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>Nur Icons</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>Text und Icons</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Fenstereinstellungen</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Speichere Fenstergröße und -position beim Beenden.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Dateiname</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Dateityp</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Datei Speichern</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Speichere diese Datei</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Datei Öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Öffne diese Datei</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Konnte Datei nicht schreiben %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Wählen Sie ihre Aktion,...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...durch Betätigen des entsprechenden Links.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Falls Sie nie zuvor gpg4usb verwendet haben und noch keinen gpg Schlüssel haben, möchten sie wahrscheinlich </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>einen neuen Schlüssel erzeugen</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Fall Sie eine ältere Version ersetzen, möchten sie wahrscheinlich </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>Einstellungen und/oder Schlüssel aus gpg4usb importieren</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Falls Sie GnuPG bereits verwenden, möchten sie wahrscheinlich </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>Schlüssel aus GnuPG importieren</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Fertig.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Viel Spaß mit gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Sie können gpg4usb nun verwenden.&lt;br&gt;&lt;br&gt;Die Offline-Hilfe wird Ihnen beim Einstieg helfen. Sie öffnet sich im Hauptfenster.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Öffne die Offline Hilfe.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Zeige den Assistenten nicht mehr an.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Datei Ver/Entschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Aktion</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Entschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Verschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Eingabedatei</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Ausgabedatei</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Verschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Entschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Datei Öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Konnte Datei nicht öffnen:</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Die Datei existiert bereits! Möchten sie sie überschreiben?</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Datei Speichern</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Kann Datei nicht schreiben %1: %2.</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Behalte das Passwort</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Behalte das Passwort, bis das Programm geschlossen wird</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Speichere ausgewählte Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Speichere ausgewählte private Schlüssel beim Beenden und stelle diese beim nächsten Start wieder her.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Frage nach bei Drag&apos;n&apos;Drop Schlüsselimport</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Importiere auf die Schlüsselliste gedroppte Dateien ohne Nachfragen.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Sprache</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Kein Schlüssel ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;Kein privater Schlüssel mit Id %1 in Schlüsselliste gefunden</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Nicht unterstützter Algorithmus</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Fehler beim Entschlüsseln:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Falsches Passwort</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Passwort eingeben für</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Bitte Passwort eingeben</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Schlüsselauswahl</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Kein privater Schlüssel ausgewählt</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Fehler beim Signieren:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Importiere Schlüssel...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>....aus vorhandener GnuPG Installation</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Sie können Schlüssel aus einem installierten GnuPG importieren.&lt;br&gt;&lt;br&gt;Der Ort wird aus der Windows Registry gelesen bzw. unter Linux wird angenommen, daß die Schlüssel im .gnupg Ordner in ihrem Benutzerverzeichnis liegen.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Importiere Schlüssel aus GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Fehler beim Importieren</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Konnte GnuPG Verzeichnis nicht finden</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Importiere aus...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...vorhandenem gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Sie können Schlüssel und/oder Einstellungen aus einem vorhandenen gpg4usb importieren.&lt;br&gt;&lt;br&gt;Wählen sie, was sie importieren möchten, betätigen Sie die Import-Schaltfläche und wählen Sie das Verzeichnis ihres vorhandene gpg4usb im erscheinenden Dialog.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Importiere aus gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Vorhandenes gpg4usb Verzeichnis</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Einstellungen importiert</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Einstellungen wurden erfolgreich aus anderen gpg4usb importiert.&lt;br&gt; Starte neu, um die Einstellungen zu aktivieren.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Erste Schritte...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>...mit gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Um gpg4usb zum Entschlüsseln und Signieren von Nachrichten zu verwenden, brauchen Sie einen privaten Schlüssel. Die nächste Seite wird Ihnen bei der Schlüssel Erzeugung oder dem Schlüsselimport helfen.&lt;br&gt;&lt;br&gt;Für mehr Informationen schauen Sie in die &lt;a href=&apos;docu_concepts.html&apos;&gt;Konzepte von GPG&lt;/a&gt; (beim Betätigen des Links, öffnet die Seite im Hauptfenster).&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Wähle eine Sprache</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Eigentümer</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Schlüssel Details</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Fingerabdruck</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>Zusätzliche Uids</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Name:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>EMail-Adresse:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Kommentar: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Läuft ab am: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Erzeugt am: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Sie sind dabei, ihren privaten Schlüssel zu exportieren. Dies ist NICHT ihr öffentlicher Schlüssel, also geben Sie ihn nicht weiter. Heben Sie ihn sicher auf. Wollen Sie den privaten Schlüssel wirklich exportieren?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Fehler beim Exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Konnte Datei %1 nicht zum Beschreiben öffnen</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Länge:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Typ: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>Schlüssel-ID:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Nie</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Nie</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>Kopiere Fingerabdruck in die Zwischenablage</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Privater Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Privaten Schlüssel exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Warnung: Schlüssel abgelaufen</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Warnung: Schlüssel abgelaufen</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Schlüsseleigenschaften</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Privaten Schlüssel exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Schlüssel In Datei exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Schlüssel Dateien</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Erzeuge neuen Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Passwortstärke</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Name:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>EMail-Adresse:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Ablaufdatum:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>läuft nie ab</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Schlüsselgröße (in Bit):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Passwort:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Passwortstärke
+Schwach -&gt; Stark</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Passwort wiederholen:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation>Name muss mindestens 5 Buchstaben lang sein.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation>Passwort und Wiederholung stimmen nicht überein.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Erzeuge Schlüssel...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Sammle Zufallsdaten für Schlüsselerzeugung.
+Das kann etwas dauern.
+Benutze den Computer um den Vorgang zu
+Beschleunugen(z.B. Internet-surfen, Musik hören, ...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Erfolg</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Neuen Schlüssel erzeugt</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Erzeuge ein Schlüsselpaar...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...zum Entschlüsseln und Signieren</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Sie sollten ein neues Schlüsselpaar erzeugen. Das Paar besteht aus einem öffentlichen und privaten Schlüssel.&lt;br&gt;Andere Benutzer können den öffentlichen Schlüssel verwenden, um Nachrichten an Sie zu verschlüsseln und Nachrichten von Ihnen zu verifizieren. Sie können den privaten Schlüssel verwenden, um Nachrichten zu entschlüsseln und zu signieren.&lt;br&gt;Für weitere Informationen schauen sie in die Offline-Anleitung (die im Hauptfenster angezeigt wird):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Offline Anleitung</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Erzeuge neuen Schlüssel</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>Schlüsselimport Details</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Keine Schlüssel für den Import gefunden</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Allgemeine Import Information</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Bearbeitet:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Öffentliche ungeändert:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Importiert:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Nicht importiert:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Private gelesen:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Private importiert:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Private ungeändert:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>E-Mail</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Fingerabdruck</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>privat</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>öffentlich</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>ungeändert</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>neuer Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>neuer Unterschlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>neue Signatur</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>neue Uid</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>EMail</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Importiere Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Sie haben etwas auf die Schlüsselliste gedroppt. gpg4usb wird nun versuchen, dieses als Schlüssel zu importieren.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Immer ohne Nachfrage importieren.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Konnte Datei nicht öffnen:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Schlüsselverwaltung</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>Beende &amp;Schlüsselverwaltung</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Beende die Schlüsselverwaltung</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Importiere einen neuen Schlüssel aus einer Datei</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Importiere einen neuen Schlüssel aus der Zwischenablage</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Schlüsselserver</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Importiere neuen Schlüssel vom Schlüsselserver</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>&amp;Export in Zwischenablage</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Exportiere die gewählten Schlüssel in die Zwischenablage</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Export in &amp;Datei</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Exportiere die gewählten Schlüssel in eine Datei</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Lösche gewählte Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Lösche die ausgewählten Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Lösche markierte Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Lösche die markierten Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Erzeuge neuen Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Erzeuge einen neuen Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Eigenschaften anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Details zu diesem Schlüssel anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importiere Schlüssel aus...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Importiere Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>Importiere Schlüssel von</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>Schlüssel exportiert</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Zwischenablage</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>Sch&amp;lüssel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Öffne Datei</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Schlüssel Dateien</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Schlüsselring Datei</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Konnte Datei nicht öffnen:</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Schlüssel löschen</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Sind sie sicher, dass sie die folgenden Schlüssel löschen möchten&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Diese Aktion kann nicht rückgängig gemacht werden.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Schlüssel exportieren</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Beenden</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Importiere</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Suche</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Suchbegriff:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Schlüsselserver:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Import vom Schlüsselserver</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Erstellungsdatum</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>Schlüssel-ID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Bemerkung</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Konnte Schlüsselserver nicht erreichen!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Zu viele Antworten vom Schlüsselserver!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Keine Schlüssel gefunden, der Suchbegriff könnte eine Schlüssel-ID sein. Wiederhole suche mit vorangestellten 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Keinen Schlüssel gefunden, der den Suchbegriff enthält!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Suchbegriff zu ungenau definiert!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>abgelaufen</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>deaktiviert</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 Schlüssel gefunden. Importiere durch Doppelklick.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Fehler bei der Verbindung zum Schlüsselserver!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Schlüssel importiert</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Standard-Server für den Schlüsselimport:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Neu</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Öffne eine neue Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>Ö&amp;ffnen...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Öffen Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Speichern</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Speichere Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>Speichern &amp;unter</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Speichere aktuelle Datei als....</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Drucken</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Drucken</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Schliessen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Schliesse die Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Beenden</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Beende das Programm</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Rückgängig</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Mache die letzte Aktion rückgängig</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Wiederherstellen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Stelle die letzte Editieraktion wieder her</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>Hereinzoomen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Herauszoomen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>E&amp;infügen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Füge Text aus der Zwischenablage ein</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Ausschneiden</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>aktuelle Auswahl ausschneiden und in Zwischenablage einfügen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>aktuelle Auswahl in Zwischenablage kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;Kommentiere</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Kommentiere den gesamten Text</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>Alles &amp;markieren</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Den ganzen Text markieren</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>Entferne &amp;Zeilenumbrüche</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Entferne doppelte Zeilenumbrüche, z.B. bei eingefügtem Text aus einem Webmailer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>Ei&amp;nstellungen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Öffne den Einstellungsdialog</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Verschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Verschlüssele den Text</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Entschlüsseln</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Entschlüssele den Text</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>&amp;Datei Verschlüsselung</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Ver-/Entschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Verschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Verschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Entschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Entschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Signiere</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Signiere die Nachricht</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;Verifiziere</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Verifiziere die Nachricht</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>&amp;Editor</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Importiere einen neuen Schlüssel aus dem Textfeld</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>Schlüssel&amp;verwaltung</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Öffne die Schlüsselverwaltung</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;Info</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Zeige die Information über die Anwendung</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Integrierte Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Öffne die integrierte Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>Online &amp;Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Öffne die Online Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Übersetze gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Übersetze gpg4usb selbst</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>Öffne &amp;Assistenten</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Öffne Assistenten für erste Schritte</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Hänge die ausgewählten Schlüssel an den Text an</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Hänge den gewählten Schhlüssel an den Text im Editor an</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>Kopiere EMail-Adresse</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Kopiere die ausgewählten EMail-Adresse in die Zwischenablage</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Eigenschaften anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Details zu diesem Schlüssel anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Crypt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>Sch&amp;lüssel</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importiere Schlüssel aus...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Steganografie</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>Über</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Diese Anwendung erlaubt es, auf einfache &lt;br&gt;Art Texte und Dateien zu ver- und entschlüsseln. &lt;br&gt;Sie steht unter der GPL v3.0&lt;br&gt;&lt;br&gt;&lt;b&gt;Entwickler:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Übersetzung:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Falls sie Fragen und/oder Vorschläge haben,&lt;br&gt;schauen Sie auf unsere&lt;br&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;Kontaktseite&lt;/a&gt; &lt;br&gt;oder senden Sie eine Email an unsere Mailingliste&lt;br&gt;unter &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Entferne PGP Header</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Füge PGP Header hinzu</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;Ansicht</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hilfe</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>Crypt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Spezial Bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Importiere Schlüssel aus...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Importiere Schlüssel</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Verschlüssele oder entschlüssele Datei</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Datei..</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Fertig</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>Verschlüssele für:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Angehängte Dateien:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">Über</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;Diese Anwendung erlaubt es, auf einfache &lt;br&gt;Art Texte und Dateien zu ver- und entschlüsseln. &lt;br&gt;Sie steht unter der GPL v3.0&lt;br&gt;&lt;br&gt;&lt;b&gt;Entwickler:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Übersetzung:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Falls sie Fragen und/oder Vorschläge haben,&lt;br&gt;schauen Sie auf unsere&lt;br&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;Kontaktseite&lt;/a&gt; &lt;br&gt;oder senden Sie eine Email an unsere Mailingliste&lt;br&gt;unter &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt;Erstellt mit Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> und GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Es gibt unverschlüsselte Dateien im Attachment Ordner</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Es gibt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation>unverschlüsselte Dateien im Attachment Ordner</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Entschlüssele Quoted Printable</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Versuche Quoted Printable Text zu erkennen.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Parse PGP/MIME (Experimentell)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Versuche, die Anhänge von PGP-MIME verschlüsselten Nachrichten zu extrahieren.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Öffne mit einer externen Anwendung (Experimentell)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Öffne Anhänge mit der Standardanwendung des Dateityps.&lt;br&gt;Es dabei mindestens zwei mögliche Probleme:&lt;ol&gt;&lt;li&gt;Dateien müssen unverschlüsselt im Attachment-Ordner gespeichert werden.&lt;br&gt;Es ist Ihre Aufgabe, hier aufzuräumen.&lt;/li&gt;&lt;li&gt;Die externe Anwendung hat möglicherweise ihre eigenen temporären Dateien.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Aktiviere das Öffnen mit externen Anwendungen.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Ungesicherte Dateien</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 Dateien enthalten ungesicherte Informationen.&lt;br/&gt;Die Änderungen vor dem Beenden speichern?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Markieren Sie zu speichernden Dokumente:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Achtung:&lt;/b&gt;Falls Sie die von Ihnen vorgenommenen Änderungen nicht &lt;br/&gt;speichern, gehen sie vollständig und unwiderruflich verloren.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Allgemein</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Aussehen</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Schlüsselserver</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Erweitert</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Systemstandard</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>untitled</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Öffne Datei</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Anwendung</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Kann Datei nicht lesen %1: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Kann Datei nicht schreiben %1: %2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Speichere Datei</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Ungesichertes Dokument</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt; Das Dokument &quot;%1&quot; wurde verändert.&lt;br/&gt;Möchten Sie die Änderungen speichern?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Achtung:&lt;/b&gt;Falls sie nicht speichern, gehen die Änderungen unwiderruflich verloren.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Details der Unterschriften</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Fehler beim validieren der Signatur</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>Der Text wurde vollständig signiert am %1 von:</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>Der Text wurde teilweise signiert am %1 von:</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Import vom Schlüsselserver</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Status:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Fingerabdruck:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Schlüssel nicht in Schlüsselliste vorhanden</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Schlüssel nicht vorhanden mit der SchlüsselI Id 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Name:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>EMail:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Fehler für den Schlüssel mit ID 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Importiere fehlende Schlüssel vom Schlüsselserver</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Zeige Signatur Details</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Details</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Schlüssel nicht vorhanden mit der ID 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Fehler beim Validieren der Unterschrfit von:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>Der Text wurde vollständig signiert von:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>Der Text wurde teilweise signiert von:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Fehler den den Schlüssel mit Fingerabdruck </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Assitent für Erste Schritte</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Fehler beim Importieren</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Konnte keine Schlüsseldatei finden unter %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Fehler beim Importieren</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Konnte keine private Schlüsseldatei finden: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>Konnte keine öffentliche Schlüsseldatei finden: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_el.ts b/release/ts/gpg4usb_el.ts
new file mode 100644
index 00000000..ebcb7529
--- /dev/null
+++ b/release/ts/gpg4usb_el.ts
@@ -0,0 +1,1981 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="el_GR">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>
+
+
+Εμφάνιση επιλογών στεγανογραφίας [για προχωρημένους]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Εμφάνιση επιλογών στεγανογραφίας.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Μέγεθος εικόνας</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>μικρό</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>μεσαίο</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>μεγάλο</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Στυλ εικόνας</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>μόνον κείμενο</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>μόνον εικόνες</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>κείμενο και εικόνες</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Κατάσταση παραθύρου</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Αποθήκευση μεγέθους και θέσης παραθύρου κατά την έξοδο.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Όνομα αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Τύπος περιεχομένου</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Αποθήκευση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Αποθήκευση αυτού του αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Άνοιγμα αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Άνοιγμα αυτού του αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Αδύνατη η εγγραφή του αρχείου %1:%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Επιλέξτε την ενέργειά σας...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...πατώντας στον κατάλληλο σύνδεσμο.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Αν ουδέποτε προηγουμένως έχετε χρησιμοποιήσει το gpg4usb και επίσης δεν διαθέτετε έως τώρα κάποιο κλειδί gpg, ίσως να θέλετε</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>να δημιουργήσετε ένα νέο ζεύγος κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Αν κάνετε αναβάθμιση από παλαιότερη έκδοση του gpg4usb ίσως θέλετε να</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>εισάγετε τις ρυθμίσεις ή/και τα κλειδιά από το gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Αν χρησιμοποιείται ήδη GnuPG ίσως επιθυμείτε να</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>εισάγετε κλειδιά από το GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Έτοιμο.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Απολαύστε το gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Είστε τώρα έτοιμοι/ες να χρησιμοποιήσετε το gpg4usb.&lt;br&gt;&lt;br&gt;Η εγκατεστημένη βοήθεια θα σας βοηθήσει να ξεκινήσετε με το gpg4usb. Θα ανοίξει σε ένα νέο παράθυρο.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Άνοιγμα της εγκατεστημένης βοήθειας.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Να μην εμφανιστεί ξανά ο οδηγός αυτός.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Κρυπτογράφηση/Αποκρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Ενέργεια</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Αποκρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Κρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Εισαγόμενο</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Εξαγόμενο</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Κρυπτογράφηση</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>Αποκρυπτογρά&amp;φηση</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Άνοιγμα αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Αποθήκευση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Αδυναμία ανοίγματος αρχείου:</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Αδυναμία εγγραφής αρχείου %1 %2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Το αρχείο υπάρχει! Θέλετε να το αντικαταστήσετε;</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Απομνημόνευση κωδικού</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Απομνημόνευση του κωδικού έως να τερματιστεί το gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Αποθήκευση ελεγμένων κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Αποθήκευση των ελεγμένων ιδιωτικών κλειδιών κατά την έξοδο και αποκατάστασή τους με την επόμενη εκκίνηση.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Επιβεβαίωση εισαγωγής κλειδιού μέσω μεταφοράς και απόθεσης</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Εισαγωγή χωρίς επιβεβαίωση των αρχείων που αποθέτονται εντός λίστας κλειδιών.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Γλώσσα</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Δεν επιλέχθηκε κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;Δεν υπάρχει κλειδί με ταυτότητα %1 στην κλειδοθήκη</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Ο αλγόριθμος δεν υποστηρίζεται</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Σφάλμα κρυπτογράφηση:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Λανθασμένος κωδικός</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Εισάγετε τον κωδικό για</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Εισάγετε κωδικό</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Επιλογή κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Δεν επιλέχθηκε ιδιωτικό κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Σφάλμα κατά την υπογραφή:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Εισαγωγή κλειδιών...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...από υπάρχουσα εγκατάσταση του GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Μπορείτε να εισάγετε κλειδιά από μια τοπική εγκατάσταση GnuPG.&lt;br&gt;&lt;br&gt; Η τοποθεσία αποθήκευσης ανακτάται από το μητρώο των Windows ή υποτίθεται ότι είναι ο κατάλογος gnupg του καταλόγου χρήστη για το Linux.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Εισαγωγή κλειδιών από το GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Σφάλμα εισαγωγής</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Αδύνατος ο εντοπισμός του αρχικού καταλόγου του GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Εισαγωγή από...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...υπάρχουσα εγκατάσταση του gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Μπορείτε να εισάγετε κλειδιά και/ή ρυθμίσεις από υπάρχουσα εγκατάσταση του gpg4usb.&lt;br&gt;&lt;br&gt;Απλώς βεβαιωθείτε τι θέλετε να εισάγετε, πατήστε το πλήκτρο εισαγωγής και επιλέξτε τον κατάλογο του εταίρου gpg4usb μέσα από τον διάλογο που θα εμφανιστεί.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Κλειδιά</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Προσαρμογή</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Εισαγωγή από gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Άλλος κατάλογος gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Οι ρυθμίσεις εισήχθησαν</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Ρυθμίσεις εισηγμένες από παλαιό gpg4usb.&lt;br&gt;Θα γίνει επανεκκίνηση ώστε να ενεργοποιηθούν οι ρυθμίσεις.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Ξεκινώντας...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>... με το gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Για να χρησιμοποιήσετε το gpg4usb ώστε να αποκρυπτογραφήσετε και να υπογράψετε μηνύματα, θα χρειαστείτε ένα ιδιωτικό κλειδί. Η επόμενη σελίδα θα σας βοηθήσει να δημιουργήσετε ή να εισάγετε κάποιο κλειδί.&lt;br&gt;&lt;br&gt;Για περισσότερες πληροφορίες ρίξτε μια ματιά&lt;a href=&apos;docu_concepts.html&apos;&gt;έννοιες&lt;/a&gt; (πατώντας στον σύνδεσμο η σελίδα θα εμφανιστεί στο κεντρικό παράθυρο).&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Επιλέξτε γλώσσα</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Λεπτομέρειες κατόχου</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Λεπτομέρειες κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Αποτύπωμα</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>Επιπρόσθετα UID</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Όνομα:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>Διεύθυνση ηλ. ταχυδρομείου:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Σχόλια:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Λήγει την:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Δημιουργήθηκε την:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>Ταυτότητα (ID) κλειδιού:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>αντιγραφή αποτυπώματος στην προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Προειδοποίηση: Το κλειδί έχει λήξει</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Προειδοποίηση: Το κλειδί ανακλύθηκε</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Λεπτομέρειες κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Πρόκεται να εξάγετε το ιδιωτικό κλειδί σας.
+Αυτό το κλειδί ΔΕΝ είναι το δημόσιο κλειδί, γι&apos; αυτό μην το διαδίδετε.
+Βεβαιωθείτε ότι το έχετε σε ασφαλές μέρος. Σίγουρα θέλετε να εξάγετε το ιδιωτικό κλειδί σας;</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Αρχεία κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Σφάλμα εξαγωγής</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Αδύνατο το άνοιγμα του %1 για εγγραφή</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Μέγεθος κλειδιού:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Αλγόριθμος:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Ποτέ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Ποτέ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Ιδιωτικό κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Εξαγωγή ιδιωτικού κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Εξάγεται το ιδιωτικό κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Εξαγωγή του κλειδιού σε αρχείο</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Δημιουργία κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Ισχύς κωδικού</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Όνομα:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>Διεύθυνση ηλ. ταχυδρομείου:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>Σχόλια:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Ημερομηνία λήξης:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>Ουδέποτε λήγει</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Μέγεθος κλειδιού (σε Bit):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Κωδικός:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Κωδικός: Ισχύς
+Αδύναμο -&gt;Ισχυρό</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Επαναλάβετε τον κωδικό:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation> Το όνομα πρέπει να περιέχει τουλάχιστον πέντε χαρακτήρες. </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation> Ο κωδικός και η επανάληψή του δεν ταιριάζουν. </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Δημιουργία κλειδιού...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation> Γίνεται συλλογή τυχαίων δεδομένων για την δημιουργία του κλειδιού.
+ Αυτό ίσως διαρκέσει λίγο χρόνο.
+ Για να επιταχύνετε την διαδικασία, χρησιμοποιείστε τον υπολογιστή σας
+ (π.χ. περιηγηθείτε στον Ιστό, ακούστε μουσική,...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Επιτυχία</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Το νέο κλειδί δημιουργήθηκε</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Δημιουργία ζεύγους κλειδιών...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...για την αποκρυπτογράφηση και υπογραφή μηνυμάτων</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Πρέπει να δημιουργήσετε ένα νέο ζεύγος κλειδιών. Το ζεύγος αποτελείται από ένα δημόσιο και από ένα ιδιωτικό κλειδί.&lt;br&gt;Το δημόσιο κλειδί σας μπορούν να το χρησιμοποιήσουν άλλοι χρήστες ώστε να κρυπτογραφήσουν μηνύματα για εσάς και για να εξακριβώσουν μηνύματα από εσάς. Μπορείτε να χρησιμοποιήσετε το ιδιωτικό κλειδί για να αποκρυπτογραφήσετε και να υπογράψετε μηνύματα.&lt;br&gt;Για περισσότερες πληροφορίες ρίξτε μια ματιά στο αποθηκευμένο διδακτικό βοήθημα (το οποίο θα προβληθεί στο κεντρικό παράθυρο):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Αποθηκευμένο διδακτικό βοήθημα</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Δημιουργία νέου κλειδιού</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>Λεπτομέρειες εισαγωγής κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Δεν βρέθηκαν κλειδιά προς εισαγωγή</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Γενικές πληροφορίες για την εισαγωγή κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Υπ&apos; όψιν:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Αμετάβλητο δημόσιο κλειδί:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Εισηγμένο:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Μη εισηγμένο:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Ιδιωτική ανάγνωση:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Ιδιωτικό εισήχθη:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Ιδιωτικό αμετάβλητο:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Όνομα</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>Ηλ. Ταχυδρομειο</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Κατάσταση</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Αποτύπωμα</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>ιδιωτικό</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>δημόσιο</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>αμετάβλητο</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>νέο κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>νέα υποκλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>νέα υπογραφή</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>νέο UID</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Όνομα</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>Ηλ. Ταχυδρομείο</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Εισαγωγή κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Μεταφέρατε κάτι στην λίστα των κλειδιών.
+Το gpg4usb θα προσπαθήσει να εισάγει το ή τα κλειδιά.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Να εισάγονται πάντοτε χωρίς ερώτημα.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Αδυναμία ανοίγματος του αρχείου:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Διαχείριση κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>Κλείσιμο της δια&amp;χείρισης κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Κλείσιμο της διαχείρισης κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Εισαγωγή νέου κλειδιού από αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Εισαγωγή νέου κλειδιού από την προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Διακομηστής κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Εισαγωγή νέου κλειδιού από διακομηστή κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Εξαγωγή στην προσωρινή &amp;μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Εξαγωγή των επιλεγμένων κλειδιών στην προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Εξαγωγή σε αρχ&amp;είο</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Εξαγωγή των επιλεγμένων κλειδιών σε αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Διαγραφή επιλεγμένων κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Διαγραφή των επιλεγμένων κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Διαγραφή σημαδεμένων κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Διαγραφή των σημαδεμένων κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Δημιουργία κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Δημιουργία νέου κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Προβολή λεπτομερειών κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Εμφάνιση πληροφοριών για αυτό το κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Εισαγωγή κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>Εισαγωγή κλειδιού από</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>κλειδί(ά) εξείχθησαν</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>Προ&amp;σωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>Κ&amp;λειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>Ε&amp;ισαγωγή κλειδιού από...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Κλειδί</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Άνοιγμα κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Αρχεία κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Αρχεία κλειδοθήκη</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Αδυναμία ανοίγματος του αρχείου:</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Διαγραφή κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Είστε βέβαιοι ότι θέλετε να διαγραφούν τα ακόλουθα κλειδιά; &lt;br&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Η ενέργεια δεν μπορεί να ακυρωθεί.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Εξαγωγή κλειδιού σε αρχείο</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>Κλείσιμ&amp;ο</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>Εισαγ&amp;ωγή</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>Ανα&amp;ζήτηση</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Αναζήτηση λήμματος:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Διακομηστής κλειδιών:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Εισαγωγή κλειδιών από διακομηστή κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Ημερομηνία δημιουργίας</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>Ταυτότητα κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Ετικέτα</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Αδυναμία επικοινωνίας με τον διακομηστή κλειδιών!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Υποερβολικά πολλές απαντήσεις από τον διακομηστή κλειδιών!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Δεν βρέθηκαν κλειδιά. Σφάλμα κατά την εισαγωγή πληροφοριών, γίνεται νέα προσπάθεια αναζήτησης με 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Δεν βρέθηκαν κλειδιά που να περιέχουν το προς αναζήτηση λήμμα!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Ανεπαρκές λήμμα αναζήτησης!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>ανακληθέν</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>απενεργοποιημένο</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>Βρέθηκαν %1 κλειδιά. Διπλοπατήστε επάνω σε ένα κλειδί για να το εισάγετε.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Σφάλμα κατά την επικοινωνία με τον διακομηστή κλειδιών!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Το κλειδί εισήχθη</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Αρχικός διακομηστής εισαγωγής κλειδιών:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Νέο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Άνοιγά νέου αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>Άνοι&amp;γμα...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Άνοιγμα υπάρχοντος αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>Απο&amp;θήκευση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Αποθήκευση του τρέχοντος αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>Αποθή&amp;κευση ως</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Αποθήκευση του τρέχοντος ως...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>Εκ&amp;τύπωση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Εκτύπωση του εγγράφου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>Κλείσιμ&amp;ο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Κλείσιμο του αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Τερματισμός</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Τερματισμός του προγράμματος</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>Ακ&amp;υρωση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Ακύρωση της τελευταίας ενέργειας</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>Επανάλη&amp;ψη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Επανάληψη της τελευταίας ενέργειας</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>Μεγέθυνση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Σμύκρινση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>Ε&amp;πικόληση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Επικολείστε κείμενο από την προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>Αποκοπ&amp;η</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Διαγραφή του επιλεγμένου κειμένου και μεταφορά του στην προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>Αντιγ&amp;ραφή</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Αντιγραφή του επιλεγμένου κειμένου και μεταφορά του στην προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;Παράθεση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Παράθεση ολόκληρου κειμένου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>Επιλ&amp;ογή όλων</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Επιλογή όλου του κειμένου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>&amp;Διαγραφή διαστημάτων</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Διαγραφή διπλής γραμμής, για παράδειγμα από επικολλούμενο κείμενο συντάκτη μηνύματος ηλ. ταχυδρομείου μέσα από τον περιηγητή</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>Ρυθμίσει&amp;ς</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Ανοιγμα του διαλόγου των ρυθμήσεων</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Κρυπτογράφηση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Κρυπτογράφηση μηνύματος</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>Αποκτυπρογρά&amp;φηση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Αποκρυπτογράφηση μηνύματος</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>&amp;Κρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Κρυπτογράφηση/αποκρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Κρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Κρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Αποκρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Αποκρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Υπογραφή</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Υπογραφή μηνύματος</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>Διακρί&amp;βωση</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Διακρίβωση μηνύματος</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>Σ&amp;υντάκτης</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Εισαγωγή νέου κλειδιού από τον συντάκτη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>Δ&amp;ιαχείριση κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Άνοιγμα της διαχείρησης κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;Σχετικά</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Εμφάνιση του διαλόγου μνείας για την εφαρμογή</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Ενσωματωμένη βοήθεια</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Άνοιγμα ενσωματωμένης βοήθειας</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>Διαδικτυακά &amp;βοηθήματα εκμάθησης</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Άνοιγμα των διαδικτυακών βοηθημάτων εκμάθησης</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Μεταφράστε το gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Μεταφράστε οι ίδιοι το gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>&amp;Άνοιγμα βοηθού ρυθμίσεων</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Άνοιγμα του βοηθού ρυθμίσεων</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Επισύναψη των επιλεγμένων κλειδιών σε κείμενο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Επισύναψη των επιλεγμένων κλειδιών σε κείμενο του συντάκτη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>Αντιγραφή διεύθυνσης ηλ. ταχυδρομείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Αντιγραφή των επιλεγμένων διευθύνσεων ηλ. ταχυδρομείου στην προσωρινή μνήμη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Εμφάνιση των λεπτομερειών κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Εμφάνιστη των λεπτομερειών για το κλειδί αυτό</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Επεξεργασία</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Κρυπτεία</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>&amp;Κλειδιά</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>Ε&amp;ισαγωγή κλειδιού από...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Στεγανογραφία</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>Σχετικά</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Η εφαρμογή αυτή επιτρέπει την απλή κρυπτογράφηση&lt;br&gt; και αποκρυπτογράφηση μηνυμάτων κειμένου ή αρχείων. .&lt;br&gt;Αδειοδοτείται υπό την άδεια GPL v3 &lt;br&gt;&lt;br&gt;&lt;b&gt;Ανάπτυξη:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo &lt;br&gt;&lt;br&gt;&lt;b&gt;Μετάφραση:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt; Αν έχετε ερωτήσεις ή προτάσεις, ρίξτε μια ματιά&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt; στην σελίδα των επαφών μας&lt;/a&gt; ή στείλτε μας ένα μήνυμα&lt;br/&gt; στην λίστα ταχυδρομείου &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Διαγραφή της κεφαλίδας PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Προσθήκη κεφαλίδας PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;Προβολή</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Βοήθεια</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>Κρύπτη</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Κλειδή</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Επεξεργασία</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Ειδική επεξεργασία</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Εισαγωγή κλειδιού από...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Εισαγωγή κλειδιού</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Κρυπτογράφηση ή αποκρυπτογράφηση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Αρχείο..</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Έτοιμο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>Κρυπτογράφηση για:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Επισυναπτόμενα αρχεία:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">Σχετικά</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;Η εφαρμογή αυτή επιτρέπει την απλή κρυπτογράφηση&lt;br&gt; και αποκρυπτογράφηση μηνυμάτων κειμένου ή αρχείων. .&lt;br&gt;Αδειοδοτείται υπό την άδεια GPL v3 &lt;br&gt;&lt;br&gt;&lt;b&gt;Ανάπτυξη:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo &lt;br&gt;&lt;br&gt;&lt;b&gt;Μετάφραση:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt; Αν έχετε ερωτήσεις ή προτάσεις, ρίξτε μια ματιά&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt; στην σελίδα των επαφών μας&lt;/a&gt; ή στείλτε μας ένα μήνυμα&lt;br/&gt; στην λίστα ταχυδρομείου &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt; Αναπτύχθηε με Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> και GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Στον κατάλογο επισυναπτομένων υπάρχει ένα αποκρυπτογραφημένο αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Υπάρχουν </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation>αποκρυπτογραφημένα αρχεία στον κατάλογο επισυναπτομένων</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Αποκτυγράφηση των quoted printable</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Προσπάθεια αναγνώρισης των quoted printable.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Ανάλυση PGP/MIME (Πειραματικό)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Προσπάθεια για διαίρεση των επισυναπτόμενων από τα μηνύματα με κρυπτογράφηση PGP-MIME.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Άνοιγμα με εξωτερική εφαρμογή (Πειραματικό)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Άνοιγμα των επισυναπτόμενων με την αρχική εφαρμογή που αντιστοιχεί στον τύπο αρχείου.&lt;br&gt; Υπάρχουν τουλάχιστον δύο πιθανά προβλήματα με την συμπεριφορά αυτή:&lt;ol&gt;&lt;li&gt;Το αρχείο πρέπει να αποθηκευθεί στον κατάλογο των επισυναπτόμενων χωρίς κρυπτογράφηση.&lt;/li&gt;&lt;li&gt;Η εξωτερική εφαρμογή ίσως διαθέτει τα δικά της προσωρινά αρχεία.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Ενεργοποίηση του ανοίγματος με εξωτερική εφαρμογή.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Μη αποθηκευμένα αρχεία</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 αρχεία περιέχουν μη αποθηκευμένες πληροφορίες.&lt;br/&gt;Να αποθηκευθούν οι αλλαγές πριν το κλείσιμο;&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Επιλέξτε τα αρχεία που θέλετε να αποθηκεύσετε:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Σημείωση:&lt;/b&gt; Αν δεν αποθηκεύσετε τα αρχεία αυτά, όλες οι αλλαγές θα χαθούν.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Εμφάνιση</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/MIME</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Διακομιστής κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Προχωρημένα</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Ρυθμίσεις</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Αρχικές ρυθμίσεις συστήματος</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>άτιτλο</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Άνοιγμα αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Εφαρμογή</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Αδυναμία ανάγνωσης του αρχείου %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Αρχείο</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Αδυναμία εγγραφής του αρχείου %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Αποθήκευση αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Μη αποθηκευμένο έγγραφο</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;Το έγγραφο &quot;%1&quot; έχει τροποποιηθεί.&lt;br/&gt;Θέλετε να αποθηκευθούν οι αλλαγές σας;&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;ΞΣημείωση:&lt;/b&gt; Αν δεν αποθηκεύσετε τα αρχεία αυτά, όλες οι αλλαγές θα χαθούν.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Λεπτομέρειες υπογραφής</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Σφάλμα διακρίβωσης υπογραφής</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>Το κείμενο υπογράφηκε την
+ %1 από τον/την:</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>Το κείμενο υπογράφηκε μερικώς την
+ %1 από τον/την:</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Εισαγωγή από διακομιστή κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Κατάσταση:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Αποτύπωμα:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Το κλειδί δεν υπάρχει στην λίστα κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Δεν υπάρχει κλειδί με ταυτότητα 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Όνομα:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>Διεύθυνησ ηλ. ταχυδρομείου:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>ΟΚ</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Σφάλμα για το κλειδί με ταυτότητα 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Εισαγωγή κλειδιού που λείπει από τον διακομιστή κλειδιών</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Εμφάνιση λεπτομερών πληροφοριών διακρίβωσης</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Λεπτομέρειες</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Δεν υπάρχει κλειδί με ταυτότητα 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Σφάλμα διακρίβωσης υπογραφής:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>Το κείμενο υπογράφηκε από τον/την:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>Το κείμενο υπογράφηκε μερικώς από τον/την:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Σφάλμα κλειδιού με αποτύπωμα</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Ξεκινήστε με τον οδηγό ρυθμίσεων</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Σφάλμα εισαγωγής</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Αδυναμία εντοπισμού αρχείου κλειδοθήκης στην διαδρομη %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Σφάλμα εισαγωγής</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Αδυναμία ανοίγματος ανοίγματος ιδιωτικής κλειδοθήκης: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>Αδυναμία ανοίγματος αρχείου δημόσιας κλειδοθήκης: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_en.ts b/release/ts/gpg4usb_en.ts
new file mode 100644
index 00000000..84e49778
--- /dev/null
+++ b/release/ts/gpg4usb_en.ts
@@ -0,0 +1,1959 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_es.ts b/release/ts/gpg4usb_es.ts
new file mode 100644
index 00000000..c1cf747c
--- /dev/null
+++ b/release/ts/gpg4usb_es.ts
@@ -0,0 +1,1592 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es" sourcelanguage="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Mostrar las Opciones de Esteganografía [Avanzado]</translation>
+ </message>
+ <message>
+ <source>Show Steganographic Options.</source>
+ <translation>Mostrar Opciones de Esteganografía.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <source>Iconsize</source>
+ <translation>Tamaño Icono</translation>
+ </message>
+ <message>
+ <source>small</source>
+ <translation>pequeño</translation>
+ </message>
+ <message>
+ <source>medium</source>
+ <translation>mediano</translation>
+ </message>
+ <message>
+ <source>large</source>
+ <translation>grande</translation>
+ </message>
+ <message>
+ <source>Iconstyle</source>
+ <translation>Estilo Icono</translation>
+ </message>
+ <message>
+ <source>just text</source>
+ <translation>solo texto</translation>
+ </message>
+ <message>
+ <source>just icons</source>
+ <translation>solo iconos</translation>
+ </message>
+ <message>
+ <source>text and icons</source>
+ <translation>texto e iconos</translation>
+ </message>
+ <message>
+ <source>Windowstate</source>
+ <translation>Ventana de Estado</translation>
+ </message>
+ <message>
+ <source>Save window size and position on exit.</source>
+ <translation>Guardar tamaño y posicion de ventana al salir.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <source>Filename</source>
+ <translation>Nombre de archivo</translation>
+ </message>
+ <message>
+ <source>Contenttype</source>
+ <translation>Tipo de contenido</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <source>Save File</source>
+ <translation>Guardar Archivo</translation>
+ </message>
+ <message>
+ <source>Save this file</source>
+ <translation>Guardar este archivo</translation>
+ </message>
+ <message>
+ <source>Open File</source>
+ <translation>Abrir Archivo</translation>
+ </message>
+ <message>
+ <source>Open this file</source>
+ <translation>Abrir este archivo</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Archivo</translation>
+ </message>
+ <message>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>No se puede escribir archivo %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <source>Choose your action...</source>
+ <translation>Elija su acción...</translation>
+ </message>
+ <message>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>....pulsando sobre el enlace pertinente.</translation>
+ </message>
+ <message>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Si nunca antes ha utilizado gpg4usb y tampoco cuenta todavia con una llave gpg podría desear</translation>
+ </message>
+ <message>
+ <source>create a new keypair</source>
+ <translation> crear un nuevo par de llaves</translation>
+ </message>
+ <message>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Si esta actualizando una versión anterior de gpg4usb podría querer</translation>
+ </message>
+ <message>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation> importar opciones y/o llaves de gpg4usb</translation>
+ </message>
+ <message>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Si ya está utilizando GnuPG podría desear</translation>
+ </message>
+ <message>
+ <source>import keys from GnuPG</source>
+ <translation> importar llaves desde GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <source>Ready.</source>
+ <translation>Listo.</translation>
+ </message>
+ <message>
+ <source>Have fun with gpg4usb!</source>
+ <translation>¡Diviértase con el gpg4usb!</translation>
+ </message>
+ <message>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Ahora está listo para usar gpg4usb.&lt;br&gt;&lt;br&gt;La ayuda sin conexión le ayudará a iniciarse con el gpg4usb. Esto abrirá la ventana principal.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <source>Open offline help.</source>
+ <translation>Abrir la Ayuda sin conexión.</translation>
+ </message>
+ <message>
+ <source>Dont show the wizard again.</source>
+ <translation>No mostrar nuevamente al asistente.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Cifrar / Descifrar Archivo</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Archivo</translation>
+ </message>
+ <message>
+ <source>Action</source>
+ <translation>Accion</translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation>Entrada</translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation>Salida</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Cifrar</translation>
+ </message>
+ <message>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Descifrar</translation>
+ </message>
+ <message>
+ <source>Open File</source>
+ <translation>Abrir Archivo</translation>
+ </message>
+ <message>
+ <source>Save File</source>
+ <translation>Guardar Archivo</translation>
+ </message>
+ <message>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>El archivo ya existe! ¿Quiere sobreescribirlo?</translation>
+ </message>
+ <message>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>No puedo escribir archivo %1:
+%2.</translation>
+ </message>
+ <message>
+ <source>Decrypt File</source>
+ <translation>Descifrar Archivo</translation>
+ </message>
+ <message>
+ <source>Encrypt File</source>
+ <translation>Cifrar Archivo</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>No se pudo abrir el archivo:</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <source>Remember Password</source>
+ <translation>Recordar Contraseña</translation>
+ </message>
+ <message>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Recordar contraseña hasta cerrar gpg4usb</translation>
+ </message>
+ <message>
+ <source>Save Checked Keys</source>
+ <translation>Guardar Llaves Verificadas</translation>
+ </message>
+ <message>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Guardar llaves privadas verificadas al salir y restaurarlas en proximo arranque.</translation>
+ </message>
+ <message>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Confirmar importar llave arrastrar y soltar</translation>
+ </message>
+ <message>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Importar archivos soltados en la lista de llaves sin confirmacion.</translation>
+ </message>
+ <message>
+ <source>Language</source>
+ <translation>Idioma</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <source>No Key Selected</source>
+ <translation>Ninguna llave seleccionada</translation>
+ </message>
+ <message>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;No hay llave privada con id %1 en el llavero</translation>
+ </message>
+ <message>
+ <source>Unsupported algorithm</source>
+ <translation>Algoritmo incompatible</translation>
+ </message>
+ <message>
+ <source>Error decrypting:</source>
+ <translation>Error al descifrar:</translation>
+ </message>
+ <message>
+ <source>Wrong password</source>
+ <translation>Contraseña incorrecta</translation>
+ </message>
+ <message>
+ <source>Enter Password</source>
+ <translation>Ingresar Contraseña</translation>
+ </message>
+ <message>
+ <source>Key Selection</source>
+ <translation>Seleccionar Llave</translation>
+ </message>
+ <message>
+ <source>No Private Key Selected</source>
+ <translation>No se Selecciono Llave Privada</translation>
+ </message>
+ <message>
+ <source>Error signing:</source>
+ <translation>Error al firmar:</translation>
+ </message>
+ <message>
+ <source>Enter Password for</source>
+ <translation>Ingresar Contraseña para</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <source>Import keys...</source>
+ <translation>Importar llaves...</translation>
+ </message>
+ <message>
+ <source>...from existing GnuPG installation</source>
+ <translation>...desde la instalación existente de GnuPG</translation>
+ </message>
+ <message>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Puedes importart llaves desde un GnuPG instalado localmente.&lt;br&gt;&lt;br&gt; La ubicación se leerá desde el registro de Windows o se asumirá que está en la carpeta gnupg en su directorio central en Linux.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <source>Import keys from GnuPG</source>
+ <translation>Importar llaves desde GnuPG</translation>
+ </message>
+ <message>
+ <source>Import Error</source>
+ <translation>Error de Importación</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>No se puede localizar el directorio central de GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <source>Import from...</source>
+ <translation>Importar desde...</translation>
+ </message>
+ <message>
+ <source>...existing gpg4usb</source>
+ <translation>...un gpg4usb existente</translation>
+ </message>
+ <message>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Puedes importar llaves y/o configuraciones desde un gpg4usb existente. &lt;br&gt;&lt;br&gt;Sólo verifica loq ue quieres importar, pulsa el botón de importar y elige el directorio de tu otro gpg4usb en el archivo de diálogo que aparece.</translation>
+ </message>
+ <message>
+ <source>Keys</source>
+ <translation>Llaves</translation>
+ </message>
+ <message>
+ <source>Configuration</source>
+ <translation>Configuración</translation>
+ </message>
+ <message>
+ <source>Import from gpg4usb</source>
+ <translation>Importar desde gpg4usb</translation>
+ </message>
+ <message>
+ <source>Other gpg4usb directory</source>
+ <translation>Otro direcotiro gpg4usb</translation>
+ </message>
+ <message>
+ <source>Configuration Imported</source>
+ <translation>Configuración Importada</translation>
+ </message>
+ <message>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Configuración Importada desde el antiguo gpg4usb.&lt;br&gt;Se reiniciará ahora para activar la configuración.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <source>Getting started...</source>
+ <translation>Empezando...</translation>
+ </message>
+ <message>
+ <source>... with gpg4usb</source>
+ <translation>...con gpg4usb</translation>
+ </message>
+ <message>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Para utilizar gpg4usb para descifrar y firmar mensajes, necesita una llave privada. La siguienbte página le ayudará con la generación o importación.&lt;br&gt;&lt;br&gt; Para mayor información vea los &lt;a href=&apos;docu_concepts-html&apos;&gt;conceptos &lt;/a&gt; (pulsando el enlace, la página se abrirá en la ventana principal). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <source>Choose a Language</source>
+ <translation>Elija un Idioma</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <source>Owner details</source>
+ <translation>Detalles del Propietario</translation>
+ </message>
+ <message>
+ <source>Key details</source>
+ <translation>Detalles de la Llave</translation>
+ </message>
+ <message>
+ <source>Fingerprint</source>
+ <translation>Huella Digital</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nombre:</translation>
+ </message>
+ <message>
+ <source>E-Mailaddress:</source>
+ <translation>Direccion de Correo Electronico:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Comentario:</translation>
+ </message>
+ <message>
+ <source>Key size:</source>
+ <translation>Tamaño de Llave:</translation>
+ </message>
+ <message>
+ <source>Expires on: </source>
+ <translation>Expira en:</translation>
+ </message>
+ <message>
+ <source>Created on: </source>
+ <translation>Creado en:</translation>
+ </message>
+ <message>
+ <source>Algorithm: </source>
+ <translation>Algoritmo:</translation>
+ </message>
+ <message>
+ <source>Key ID: </source>
+ <translation>ID de Llave:</translation>
+ </message>
+ <message>
+ <source>Never</source>
+ <translation>Nunca</translation>
+ </message>
+ <message>
+ <source> / Never</source>
+ <translation> / Nunca</translation>
+ </message>
+ <message>
+ <source>Private Key</source>
+ <translation>Llave Privada</translation>
+ </message>
+ <message>
+ <source>Export Private Key</source>
+ <translation>Exportar llave Privada</translation>
+ </message>
+ <message>
+ <source>Warning: Key expired</source>
+ <translation>Advertencia: Llave expirada</translation>
+ </message>
+ <message>
+ <source>Keydetails</source>
+ <translation>Detalles de Llave</translation>
+ </message>
+ <message>
+ <source>Exporting private Key</source>
+ <translation>Exportando Llave privada</translation>
+ </message>
+ <message>
+ <source>Export Key To File</source>
+ <translation>Exportar Llave a Archivo</translation>
+ </message>
+ <message>
+ <source>Key Files</source>
+ <translation>Archivos de Llaves</translation>
+ </message>
+ <message>
+ <source>Additional Uids</source>
+ <translation>Uids adicionales </translation>
+ </message>
+ <message>
+ <source>copy fingerprint to clipboard</source>
+ <translation>copiar huella digital al portapapeles</translation>
+ </message>
+ <message>
+ <source>Warning: Key revoked</source>
+ <translation>Advertencia: Llave revocada</translation>
+ </message>
+ <message>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Esta a punto de exportar su llave privada. Esta NO es su llave pública, por tanto no la entregue. Asegúrese de tenerla a buen recaudo. ¿Realmente desea exportar su llave privada?</translation>
+ </message>
+ <message>
+ <source>Export error</source>
+ <translation>Error de Exportación</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>No se pudo abrir %1 para escribir</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <source>Generate Key</source>
+ <translation>Crear Llave</translation>
+ </message>
+ <message>
+ <source>Password Strength</source>
+ <translation>Fortaleza de la Contraseña</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nombre:</translation>
+ </message>
+ <message>
+ <source>E-Mailaddress:</source>
+ <translation>Direccion de Correo Electrónico:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Comentario:</translation>
+ </message>
+ <message>
+ <source>Expiration Date:</source>
+ <translation>Fecha de Expiracion:</translation>
+ </message>
+ <message>
+ <source>Never Expire</source>
+ <translation>Nunca Expira</translation>
+ </message>
+ <message>
+ <source>KeySize (in Bit):</source>
+ <translation>Tamaño Llave (en Bit):</translation>
+ </message>
+ <message>
+ <source>Password:</source>
+ <translation>Contraseña:</translation>
+ </message>
+ <message>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Contraseña: Fortaleza
+Debil -&gt; Fuerte</translation>
+ </message>
+ <message>
+ <source>Repeat Password:</source>
+ <translation>Repetir Contraseña:</translation>
+ </message>
+ <message>
+ <source> Name must contain at least five characters.
+</source>
+ <translation>El nombre debe contener al menos cinco caracteres.
+</translation>
+ </message>
+ <message>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation> Contraseña y Repetir no coinciden. </translation>
+ </message>
+ <message>
+ <source>Generating Key...</source>
+ <translation>Creando Llave...</translation>
+ </message>
+ <message>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Recolectando datos aleatorios para generar llave. Esto puede durar un momento. Para acelerar el proceso use su computadora (por ejemplo navegiue en la red, escuche música,...)</translation>
+ </message>
+ <message>
+ <source>Success</source>
+ <translation>Ha tenido éxito</translation>
+ </message>
+ <message>
+ <source>New key created</source>
+ <translation>Nueva llave creada</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <source>Create a keypair...</source>
+ <translation>Crear un Par de Llaves...</translation>
+ </message>
+ <message>
+ <source>...for decrypting and signing messages</source>
+ <translation>...para descifrar y firmar mensajes</translation>
+ </message>
+ <message>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Debe crear un nuevo Par de Llaves. El par consiste de una llave pública y una privada.&lt;br&gt; Otros usuarios puede utilizar la llave pública para cifrar mensajes para Ud. y verificar los mensajes firmados por Ud. Puede utilizar la llave privada para descifrar y firmar mensajes.&lt;br&gt;Para mayor información vea el tutorial sin conexión (el cual es mostrado en la pantalla principal):</translation>
+ </message>
+ <message>
+ <source>Offline tutorial</source>
+ <translation>Tutorial sin conexión</translation>
+ </message>
+ <message>
+ <source>Create New Key</source>
+ <translation>Crear una Nueva Llave</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <source>Key import details</source>
+ <translation>Detalles de importación de llaves</translation>
+ </message>
+ <message>
+ <source>No keys found to import</source>
+ <translation>No se encontraron llaves para importar</translation>
+ </message>
+ <message>
+ <source>Genral key import info</source>
+ <translation>Información general de importación de Llave</translation>
+ </message>
+ <message>
+ <source>Considered:</source>
+ <translation>Considerada:</translation>
+ </message>
+ <message>
+ <source>Imported:</source>
+ <translation>Importada:</translation>
+ </message>
+ <message>
+ <source>Not imported:</source>
+ <translation>No importada:</translation>
+ </message>
+ <message>
+ <source>Private read:</source>
+ <translation>Privada leida:</translation>
+ </message>
+ <message>
+ <source>Private imported:</source>
+ <translation>Privada importada:</translation>
+ </message>
+ <message>
+ <source>Private unchanged:</source>
+ <translation>Privada sin cambios:</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nombre</translation>
+ </message>
+ <message>
+ <source>Email</source>
+ <translation>Correo Electrónico</translation>
+ </message>
+ <message>
+ <source>Status</source>
+ <translation>Estado</translation>
+ </message>
+ <message>
+ <source>Fingerprint</source>
+ <translation>Huella Digital</translation>
+ </message>
+ <message>
+ <source>private</source>
+ <translation>privado</translation>
+ </message>
+ <message>
+ <source>public</source>
+ <translation>público</translation>
+ </message>
+ <message>
+ <source>unchanged</source>
+ <translation>sin cambios</translation>
+ </message>
+ <message>
+ <source>new key</source>
+ <translation>nueva llave</translation>
+ </message>
+ <message>
+ <source>new subkey</source>
+ <translation>nueva subllave</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation>nueva firma</translation>
+ </message>
+ <message>
+ <source>new uid</source>
+ <translation>nuevo uid</translation>
+ </message>
+ <message>
+ <source>Public unchanged:</source>
+ <translation>Pública sin cambios:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <source>Name</source>
+ <translation>Nombre</translation>
+ </message>
+ <message>
+ <source>EMail</source>
+ <translation>Correo Electrónico</translation>
+ </message>
+ <message>
+ <source>Import Keys</source>
+ <translation>Importar Llaves</translation>
+ </message>
+ <message>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Usted ha soltado algo en la lista de llaves
+gpg4usb intentara ahora importar la(s) llave(s).</translation>
+ </message>
+ <message>
+ <source>Always import without bothering.</source>
+ <translation>Siempre importar sin molestias.</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>No se pudo Abrir el Archivo: </translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <source>Keymanagement</source>
+ <translation>Administrador de Llaves</translation>
+ </message>
+ <message>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;Cerrar Administrador de Llaves</translation>
+ </message>
+ <message>
+ <source>Ctrl+Q</source>
+ <translation>Crtl+Q</translation>
+ </message>
+ <message>
+ <source>Close Key Management</source>
+ <translation>Cerrar Administrador de Llaves</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>Import New Key From File</source>
+ <translation>Importar Nueva Llave Desde Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Portapapeles</translation>
+ </message>
+ <message>
+ <source>Import New Key From Clipboard</source>
+ <translation>Importar Nueva Llave Desde Portapapeles</translation>
+ </message>
+ <message>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Servidor de llaves</translation>
+ </message>
+ <message>
+ <source>Import New Key From Keyserver</source>
+ <translation>Importar Nueva Llave desde Servidor de Llaves</translation>
+ </message>
+ <message>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Exportar A &amp;Portapapeles</translation>
+ </message>
+ <message>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Exportar Llave(s) Seleccionada(s) A Portapapeles</translation>
+ </message>
+ <message>
+ <source>Export To &amp;File</source>
+ <translation>Exportar A &amp;Archivo</translation>
+ </message>
+ <message>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Exportar Llave(s) Seleccionada(s) A Archivo</translation>
+ </message>
+ <message>
+ <source>Delete Selected Key(s)</source>
+ <translation>Borrar Llave(s) Seleccionada(s)</translation>
+ </message>
+ <message>
+ <source>Delete the Selected keys</source>
+ <translation>Borrar las Llaves Seleccionadas</translation>
+ </message>
+ <message>
+ <source>Delete Checked Key(s)</source>
+ <translation>Borrar Llave(s) Verificadas</translation>
+ </message>
+ <message>
+ <source>Delete the Checked keys</source>
+ <translation>Borrar las Llaves Verificadas</translation>
+ </message>
+ <message>
+ <source>Generate Key</source>
+ <translation>Crear Llave</translation>
+ </message>
+ <message>
+ <source>Generate New Key</source>
+ <translation>Crear Nueva Llave</translation>
+ </message>
+ <message>
+ <source>Show Keydetails</source>
+ <translation>Mostrar Detalles de Llave</translation>
+ </message>
+ <message>
+ <source>Show Details for this Key</source>
+ <translation>Mostrar Detalles para esta Llave</translation>
+ </message>
+ <message>
+ <source>&amp;Key</source>
+ <translation>&amp;Llave</translation>
+ </message>
+ <message>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importar Llave Desde...</translation>
+ </message>
+ <message>
+ <source>Key</source>
+ <translation>Llave</translation>
+ </message>
+ <message>
+ <source>Open Key</source>
+ <translation>Abrir Llave</translation>
+ </message>
+ <message>
+ <source>Key Files</source>
+ <translation>Archivos de Llaves</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>No se pudo Abrir el Archivo: </translation>
+ </message>
+ <message>
+ <source>Deleting Keys</source>
+ <translation>Borrando Llaves</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>¿Está usted seguro de querer borrar las siguientes llaves?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt; La acción no puede deshacerse.</translation>
+ </message>
+ <message>
+ <source>Export Key To File</source>
+ <translation>Exportar Llave a Archivo</translation>
+ </message>
+ <message>
+ <source>Keyring files</source>
+ <translation>Carpetas Llavero</translation>
+ </message>
+ <message>
+ <source>key(s) exported</source>
+ <translation>llave(s) exportadas</translation>
+ </message>
+ <message>
+ <source>Import key</source>
+ <translation>Importar llave</translation>
+ </message>
+ <message>
+ <source>Import key from</source>
+ <translation>Importar llave desde</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <source>&amp;Close</source>
+ <translation>&amp;Cerrar</translation>
+ </message>
+ <message>
+ <source>&amp;Import</source>
+ <translation>&amp;Importar</translation>
+ </message>
+ <message>
+ <source>&amp;Search</source>
+ <translation>&amp;Buscar</translation>
+ </message>
+ <message>
+ <source>Search string:</source>
+ <translation>Buscar cadena de caracteres:</translation>
+ </message>
+ <message>
+ <source>Keyserver:</source>
+ <translation>Servidor de llaves:</translation>
+ </message>
+ <message>
+ <source>Import Keys from Keyserver</source>
+ <translation>Importar Llaves desde el Servidor de Llaves</translation>
+ </message>
+ <message>
+ <source>UID</source>
+ <translation>Tu ID</translation>
+ </message>
+ <message>
+ <source>Creation date</source>
+ <translation>Fecha de creación</translation>
+ </message>
+ <message>
+ <source>KeyID</source>
+ <translation>ID de Llave</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>¡No se puede contactar con el servidor de llaves!</translation>
+ </message>
+ <message>
+ <source>Too many responses from keyserver!</source>
+ <translation>¡Demasiadas respuestas desde el servidor de llaves!</translation>
+ </message>
+ <message>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>No se encontraron llaves, el ingreso puede ser kexId, intentar buscar con 0x.</translation>
+ </message>
+ <message>
+ <source>No keys found containing the search string!</source>
+ <translation>¡No existen llaves con esa cadena de caracteres!</translation>
+ </message>
+ <message>
+ <source>Insufficiently specific search string!</source>
+ <translation>¡Cadena de caracteres insuficiente para búsqueda!</translation>
+ </message>
+ <message>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 llaves encontradas. Pulse dos veces una llave para importarla.</translation>
+ </message>
+ <message>
+ <source>Error while contacting keyserver!</source>
+ <translation>¡Error mientras contactaba con el servidor de llaves!</translation>
+ </message>
+ <message>
+ <source>Key imported</source>
+ <translation>Llave importada</translation>
+ </message>
+ <message>
+ <source>Tag</source>
+ <translation>Etiqueta</translation>
+ </message>
+ <message>
+ <source>revoked</source>
+ <translation>revocada</translation>
+ </message>
+ <message>
+ <source>disabled</source>
+ <translation>deshabilitada</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <source>Default Keyserver for import:</source>
+ <translation>Servidor de llaves por defecto para importar:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>Open a new file</source>
+ <translation>Abrir nuevo archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Abrir...</translation>
+ </message>
+ <message>
+ <source>Open an existing file</source>
+ <translation>Abrir archivo existente</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Guardar</translation>
+ </message>
+ <message>
+ <source>Save the current File</source>
+ <translation>Guardar archivo actual</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation>Guardar &amp;Como</translation>
+ </message>
+ <message>
+ <source>Save the current File as...</source>
+ <translation>Guardar Archivo actual como...</translation>
+ </message>
+ <message>
+ <source>&amp;Print</source>
+ <translation>&amp;Imprimir</translation>
+ </message>
+ <message>
+ <source>Print Document</source>
+ <translation>Imprimir Documento</translation>
+ </message>
+ <message>
+ <source>&amp;Close</source>
+ <translation>&amp;Cerrar</translation>
+ </message>
+ <message>
+ <source>Close file</source>
+ <translation>Cerrar archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>&amp;Salir</translation>
+ </message>
+ <message>
+ <source>Quit Program</source>
+ <translation>Salir del Programa</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Deshacer</translation>
+ </message>
+ <message>
+ <source>Undo Last Edit Action</source>
+ <translation>Deshacer Ultima Acción Editar</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>&amp;Rehacer</translation>
+ </message>
+ <message>
+ <source>Redo Last Edit Action</source>
+ <translation>Rehacer Última Acción Editar</translation>
+ </message>
+ <message>
+ <source>Zoom In</source>
+ <translation>Acercar</translation>
+ </message>
+ <message>
+ <source>Zoom Out</source>
+ <translation>Alejar</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>&amp;Pegar</translation>
+ </message>
+ <message>
+ <source>Paste Text From Clipboard</source>
+ <translation>Pegar Texto desde Portapapeles</translation>
+ </message>
+ <message>
+ <source>Cu&amp;t</source>
+ <translation>Corta&amp;r</translation>
+ </message>
+ <message>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Cortar contenido de la seleccion actual al portapapeles</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Copiar</translation>
+ </message>
+ <message>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Copiar contenido de la seleccion actual al portapapeles</translation>
+ </message>
+ <message>
+ <source>&amp;Quote</source>
+ <translation>&amp;Poner comillas</translation>
+ </message>
+ <message>
+ <source>Quote whole text</source>
+ <translation>Poner comillas a todo el texto</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Seleccionar &amp;Todo</translation>
+ </message>
+ <message>
+ <source>Select the whole text</source>
+ <translation>Seleccionar todo el texto</translation>
+ </message>
+ <message>
+ <source>Remove &amp;spacing</source>
+ <translation>Retirar&amp;espaciamiento</translation>
+ </message>
+ <message>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Quitar los dobles saltos de línea, eg. en un texto pegado desde un operador de correo</translation>
+ </message>
+ <message>
+ <source>Se&amp;ttings</source>
+ <translation>Con&amp;figuración</translation>
+ </message>
+ <message>
+ <source>Open settings dialog</source>
+ <translation>Abrir dialogo configuración</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Cifrar</translation>
+ </message>
+ <message>
+ <source>Encrypt Message</source>
+ <translation>Cifrar Mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Descifrar</translation>
+ </message>
+ <message>
+ <source>Decrypt Message</source>
+ <translation>Descifrar Mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;File Encryption</source>
+ <translation>&amp;Cifrado Archivo</translation>
+ </message>
+ <message>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Cifrar / Descifrar Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Cifrar Archivo</translation>
+ </message>
+ <message>
+ <source>Encrypt File</source>
+ <translation>Cifrar Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Descifrar Archivo</translation>
+ </message>
+ <message>
+ <source>Decrypt File</source>
+ <translation>Descifrar Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Sign</source>
+ <translation>&amp;Firmar</translation>
+ </message>
+ <message>
+ <source>Sign Message</source>
+ <translation>Firmar Mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;Verify</source>
+ <translation>&amp;Verificar</translation>
+ </message>
+ <message>
+ <source>Verify Message</source>
+ <translation>Verificar Mensaje</translation>
+ </message>
+ <message>
+ <source>&amp;Editor</source>
+ <translation>&amp;Editor</translation>
+ </message>
+ <message>
+ <source>Import New Key From Editor</source>
+ <translation>Importar Nueva Llave Desde Editor</translation>
+ </message>
+ <message>
+ <source>Manage &amp;keys</source>
+ <translation>Administrar &amp;llaves</translation>
+ </message>
+ <message>
+ <source>Open Keymanagement</source>
+ <translation>Abrir Administrador de Llaves</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation>&amp;Acerca de</translation>
+ </message>
+ <message>
+ <source>Show the application&apos;s About box</source>
+ <translation>Mostrar recuadro Acerca de del programa</translation>
+ </message>
+ <message>
+ <source>Integrated Help</source>
+ <translation>Ayuda Integrada</translation>
+ </message>
+ <message>
+ <source>Open integrated Help</source>
+ <translation>Abrir Ayuda integrada</translation>
+ </message>
+ <message>
+ <source>Online &amp;Tutorials</source>
+ <translation>&amp;Tutoriales en línea</translation>
+ </message>
+ <message>
+ <source>Open Online Tutorials</source>
+ <translation>Abrir Tutoriales en línea</translation>
+ </message>
+ <message>
+ <source>Translate gpg4usb</source>
+ <translation>Traducir gpg4usb</translation>
+ </message>
+ <message>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Traduzca usted mismo gpg4usb</translation>
+ </message>
+ <message>
+ <source>Open &amp;Wizard</source>
+ <translation>Abrir &amp;Asistente</translation>
+ </message>
+ <message>
+ <source>Open the wizard</source>
+ <translation>Abrir el asistente</translation>
+ </message>
+ <message>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Adjuntar Llave(s) Seleccionada(s) Al Texto</translation>
+ </message>
+ <message>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Adjuntar Llaves Seleccionadas Al Texto en Editor</translation>
+ </message>
+ <message>
+ <source>Copy EMail-address</source>
+ <translation>Copiar dirección de Correo Electronico</translation>
+ </message>
+ <message>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Copiar dirección de Correo Electronico seleccionada a portapapeles</translation>
+ </message>
+ <message>
+ <source>Show Keydetails</source>
+ <translation>Mostrar Detalles de Llave</translation>
+ </message>
+ <message>
+ <source>Show Details for this Key</source>
+ <translation>Mostrar Detalles para esta Llave</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Editar</translation>
+ </message>
+ <message>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Cifrar</translation>
+ </message>
+ <message>
+ <source>&amp;Keys</source>
+ <translation>&amp;Llaves</translation>
+ </message>
+ <message>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importar Llave Desde...</translation>
+ </message>
+ <message>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Estenogrfía</translation>
+ </message>
+ <message>
+ <source>Remove PGP Header</source>
+ <translation>Quitar el Encabezador PGP</translation>
+ </message>
+ <message>
+ <source>Add PGP Header</source>
+ <translation>Añadir Encabezador PGP</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Ver</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Ayuda</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Archivo</translation>
+ </message>
+ <message>
+ <source>Crypt</source>
+ <translation>Cifrar</translation>
+ </message>
+ <message>
+ <source>Key</source>
+ <translation>Llave</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Editar</translation>
+ </message>
+ <message>
+ <source>Special edit</source>
+ <translation>Edición Especial</translation>
+ </message>
+ <message>
+ <source>Ready</source>
+ <translation>Listo</translation>
+ </message>
+ <message>
+ <source>Encrypt for:</source>
+ <translation>Cifrar para:</translation>
+ </message>
+ <message>
+ <source>Attached files:</source>
+ <translation>Archivos Adjuntos:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">Acerca de&apos;</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;Este programa permite un fácil cifrado &lt;br&gt;y descifrado de mensajes de texto o archivos.&lt;br&gt;Esta licenciada para GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Desarrollador:&lt;/b&gt;&lt;br&gt;Bene Heimer, Jurgen Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Traducción:&lt;b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Si tiene alguna pregunta o sugerencia diríjase&lt;br/&gt;a nuestra &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;página de contacto&lt;a/&gt;o envíe un correo a nuestra&lt;br/&gt; lista de correos en &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;a/&gt;.</translation>
+ </message>
+ <message>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt; Hecho con Qt</translation>
+ </message>
+ <message>
+ <source> and GPGME </source>
+ <translation>y GPGME</translation>
+ </message>
+ <message>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Hay un archivo sin cifrar en carpeta adjuntos</translation>
+ </message>
+ <message>
+ <source>There are </source>
+ <translation>Hay</translation>
+ </message>
+ <message>
+ <source> unencrypted files in attachment folder</source>
+ <translation>archivos sin cifrar en carpeta adjuntos</translation>
+ </message>
+ <message>
+ <source>Import key from...</source>
+ <translation>Importar llave desde...</translation>
+ </message>
+ <message>
+ <source>Import key</source>
+ <translation>Importar llave</translation>
+ </message>
+ <message>
+ <source>Encrypt or decrypt File</source>
+ <translation>Cifrar o descifrar Archivo</translation>
+ </message>
+ <message>
+ <source>File..</source>
+ <translation>Archivo..</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Este programa permite un fácil cifrado &lt;br&gt;y descifrado de mensajes de texto o archivos.&lt;br&gt;Esta licenciada para GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Desarrollador:&lt;/b&gt;&lt;br&gt;Bene Heimer, Jurgen Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Traducción:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Si tiene alguna pregunta o sugerencia diríjase&lt;br/&gt;a nuestra &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;página de contacto&lt;a/&gt;o envíe un correo a nuestra&lt;br/&gt; lista de correos en &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;a/&gt;.</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>Acerca de&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <source>Decode quoted printable</source>
+ <translation>Decodificarr quoted printable</translation>
+ </message>
+ <message>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Intentar reconocer quoted printable.</translation>
+ </message>
+ <message>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Analizar PGP/MIME (Experimental)</translation>
+ </message>
+ <message>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Intenta separar los archivos adjuntos de los mensajes cifrados PGP-MIME.</translation>
+ </message>
+ <message>
+ <source>Open with external application (Experimental)</source>
+ <translation>Abrir con programa externo (Experimental)</translation>
+ </message>
+ <message>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Abrir adjuntos con programa por defecto para el tipo de archivo &lt;br&gt;Hay al menos dos posibles problemas con esta opcion:&lt;ol&gt;&lt;li&gt;Se necesita guardar el archivo sin cifrar en la carpeta adjuntos &lt;br&gt;Es tarea suya limpiar esta carpeta &lt;/li&gt;&lt;li&gt;El programa externo puede tener sus propios archivos temporales &lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <source>Enable opening with external applications.</source>
+ <translation>Permitir abrir con programas externos.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <source>Unsaved files</source>
+ <translation>Archivos No guardados</translation>
+ </message>
+ <message>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 archivos contienen informacion sin guardar.&lt;br/&gt;¿Guardar los cambios antes de cerrar?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <source>Check the files you want to save:</source>
+ <translation>Verificar los archivos que usted quiere guardar:</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Nota:&lt;/b&gt;Si usted no guarda estos archivos, se perderán todos los cambios.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <source>General</source>
+ <translation>General</translation>
+ </message>
+ <message>
+ <source>Appearance</source>
+ <translation>Aspecto</translation>
+ </message>
+ <message>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <source>Keyserver</source>
+ <translation>Servidor de llaves</translation>
+ </message>
+ <message>
+ <source>Settings</source>
+ <translation>Configuracion</translation>
+ </message>
+ <message>
+ <source>Advanced</source>
+ <translation>Avanzado</translation>
+ </message>
+ <message>
+ <source>System Default</source>
+ <translation>Por Defecto</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <source>untitled</source>
+ <translation>sin nombre</translation>
+ </message>
+ <message>
+ <source>Open file</source>
+ <translation>Abrir archivo</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation>Programa</translation>
+ </message>
+ <message>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>No puedo leer archivo %1:
+%2.</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Archivo</translation>
+ </message>
+ <message>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>No puedo escribir archivo %1:
+%2.</translation>
+ </message>
+ <message>
+ <source>Save file </source>
+ <translation>Guardar archivo </translation>
+ </message>
+ <message>
+ <source>Unsaved document</source>
+ <translation>Documento sin guardar</translation>
+ </message>
+ <message>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;El documento &quot;%1&quot; ha sido modificado.&lt;br/&gt;¿Quiere guardar sus cambios? &lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Nota:&lt;/b&gt;Si usted no guarda estos archivos, se perderán todos los cambios.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <source>Signaturedetails</source>
+ <translation>Detalles de firma</translation>
+ </message>
+ <message>
+ <source>Error Validating signature</source>
+ <translation>Error al Validar firma</translation>
+ </message>
+ <message>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>El texto se firmó completamente
+ %1 por:</translation>
+ </message>
+ <message>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>El texto se firmó parcialmente
+ %1 por:</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <source>Import from keyserver</source>
+ <translation>Importar desde servidor de llaves</translation>
+ </message>
+ <message>
+ <source>Key not present with id 0x</source>
+ <translation>Llave ausente con id 0x</translation>
+ </message>
+ <message>
+ <source>Status:</source>
+ <translation>Estado:</translation>
+ </message>
+ <message>
+ <source>Key not present in keylist</source>
+ <translation>Llave ausente en la lista de llaves</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nombre:</translation>
+ </message>
+ <message>
+ <source>EMail:</source>
+ <translation>Correo electronico:</translation>
+ </message>
+ <message>
+ <source>Fingerprint:</source>
+ <translation>Huella Digital:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Error for key with id 0x</source>
+ <translation>Error para llave con id 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <source>Import missing key from Keyserver</source>
+ <translation>Importar llave faltante desde Servidor de llaves</translation>
+ </message>
+ <message>
+ <source>Show detailed verify information</source>
+ <translation>Mostrar información detallada de verificación</translation>
+ </message>
+ <message>
+ <source>Key not present with id 0x</source>
+ <translation>Llave ausente con id 0x</translation>
+ </message>
+ <message>
+ <source>Error for key with fingerprint </source>
+ <translation>Error para la llave con huella digital</translation>
+ </message>
+ <message>
+ <source>Error validating signature by: </source>
+ <translation>Error al validar firma de:</translation>
+ </message>
+ <message>
+ <source>Text was completely signed by: </source>
+ <translation>El texto fue completamente firmado por:</translation>
+ </message>
+ <message>
+ <source>Text was partially signed by: </source>
+ <translation>El texto fue parcialmente firmado por:</translation>
+ </message>
+ <message>
+ <source>Details</source>
+ <translation>Detalles</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <source>First Start Wizard</source>
+ <translation>Asistente para Empezar</translation>
+ </message>
+ <message>
+ <source>Import Error</source>
+ <translation>Error de Importación</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>No se pudo localizar ningun archivo llavero en %1</translation>
+ </message>
+ <message>
+ <source>Import error</source>
+ <translation>Error de importación</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>No se pudo abrir archivo de llavero privado: %1</translation>
+ </message>
+ <message>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>No se pudo abrir archivo de llavero público: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_fr.ts b/release/ts/gpg4usb_fr.ts
new file mode 100644
index 00000000..6cdb9200
--- /dev/null
+++ b/release/ts/gpg4usb_fr.ts
@@ -0,0 +1,1972 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Afficher options stéganographiques [Avancé]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Afficher options stéganographiques.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Taille des icones</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>Petites</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>Moyennes</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>Grandes</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Style des icones</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>Texte seulement</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>Icones seulement</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>Texte et icones</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Etat de la fenêtre</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Sauvegarder l&apos;état de la fenêtre en quittant.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Nom de fichier</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Type de contenu</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Sauvegarder fichier</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Sauvegarder ce fichier</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Ouvrir fichier</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Ouvrir ce fichier</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Ne peut écrire le fichier %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Choisir votre action...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...en cliquant sur le lien approprié.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Si vous n&apos;avez jamais utilisé gpg4usb auparavant et n&apos;avez pas encore votre propre clef GPG vous pouvez vouloir </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>créer une nouvelle paire de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Si vous mettez à jour à partir d&apos;une ancienne version de gpg4usb vous pouvez vouloir </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>importer les paramètres et/ou les clefs de gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Si vous utilisez déjà GnuPG vous pouvez vouloir </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>importer des clefs à partir de GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Prêt.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Amusez-vous avec gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Vous êtes maintenant prêts à utiliser gpgusb&lt;br&gt;&lt;br&gt;L&apos;aide intégrée vous permettra de démarrer avec gpg4usb. Elle s&apos;ouvrira dans la fenêtre principale.&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Ouvrir l&apos;aide.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Ne plus montrer l&apos;assistant.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Chiffrer / Déchiffrer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Action</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Déchiffrer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Chiffrer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Entrée</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Sortie</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Chiffrer</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Déchffrer</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Ouvrir le fichier</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Sauvegarder le fichier</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Ne peut ouvrir le fichier: </translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Ne peut écrire le fichier %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Le fichier existe ! Voulez-vous le remplacer ?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Se rappeler la passphrase</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Se rappeler la passphrase jusqu&apos;à la fermeture de gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Sauvegarde des clefs sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Sauvegarder les clefs privées sélectionnées en sortant et les restaurer au prochain démarrage.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Confirmer l&apos;import par glisser/déposer</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Importer les fichiers déposés sur la liste de clefs sans confoirmation.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Langue</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Aucune clef selectionnée</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;Aucune clef privée avec id %1 présente au trousseau</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Algorithme non supporté</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Erreur au déchiffrage:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Mauvaise passphrase</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Entrer la passphrase pour</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Entrer la passphrase</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Sélection de clef</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Aucune clef privée sélectionnée</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Erreur à la signature:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Importer des clefs...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...à partir d&apos;une installation GnuPG existante</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Vous pouvez importer des clefs à partir d&apos;une installation GnuPG locale.&lt;br&gt;&lt;br&gt;Les emplacements sont lus dans le registre de Windows ou sont supposés être le dossier .gnupg de votre dossier personnel sous Linux</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Importer des clefs à partir de GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Erreur d&apos;importation</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Ne peut localiser le dossier de GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Importer de...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...gpg4usb existant</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Vous pouvez importer des clefs et/ou des configurations d&apos;un gpg4usb existant.&lt;br&gt;&lt;br&gt;Sélectionnez seulement ce que vous voulez importer, cliquez sur le bouton Importer et choisissez le dossier de votre autre gpg4usb source dans la boite de dialogue qui apparaît.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Des clefs</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Une configuration</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Importer de gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Autres dossiers gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Configuration importée</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Configuration importée de l&apos;ancien gpg4usb.&lt;br&gt;Redémarrez maintenant pour activer la configuration.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Pour démarrer...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>...avec gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Pour utiliser gpg4usb en vue de déchiffrer et signer des messages, vous avez besoin d&apos;une clef privée. La page suivante vous aidera dans la génération d&apos;une clef ou dans l&apos;import.&lt;br&gt;&lt;br&gt;Pour plus d&apos;information consultez les &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (en cliquant sur le lien, la page s&apos;ouvrira dans la fenêtre principale). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Choisir une langue</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Propriétaire</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Propriétés de la clef</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Empreinte</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>UIDs additionnels</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Nom:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>Adresse email:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Commentaire:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Expire le: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Créée le: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>Key ID: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>Copier l&apos;empreinte dans le presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Alerte: clef expirée</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Alerte: clef révoquée</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Détails de la clef</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Vous êtes sur le point d&apos;exporter votre clef privée.
+Ceci N&apos;EST PAS votre clef publique, aussi ne vous en séparez pas.
+Assurez-vous de la garder en lieu sûr. Voulez-vous vraiment exporter votre clef privée ?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Fichiers de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Erreur d&apos;export</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Ne peut ouvrir %1 en écriture</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Taille de la clef:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Algorithme:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Jamais</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Jamais</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Clef privée</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Exporter clef privée</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Export de la clef privée</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Exporter la clef vers un fichier</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Générer clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Force passphrase</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Nom:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>Adresse email:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>Commentaire:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Date d&apos;expiration:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>N&apos;expire jamais</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Taille de la clef (en bits):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Passphrase:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Passphrase: Force
+ Faible -&gt; Forte</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Répéter passphrase:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation> Le nom doit contenir au moins cinq caractères. </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation> Les passphrases ne correspondent pas. </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Génération de la clef...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Collecte de données aléatoires pour la génération de la clef.
+ Cela peut prendre un peu de temps.
+ Pour accélérer le processus, utilisez votre ordinateur
+ (i.e. naviguer sur le web, écouter de la musique, ...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Succès</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Nouvelle clef créée</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Créer une paire de clefs...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...pour déchiffrer et signer des messages</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Vous devez créer une nouvelle paire de clef. Une paire consiste en une clef publique et une clef privée.&lt;br/&gt;&lt;br/&gt;Les autres usagers peuvent utiliser votre clef publique pour chiffrer des messages à votre intention et vérifier les messages signés par vous. Vous pouvez utiliser votre clef privée pour signer des messages et déchiffrer ceux qui vous sont destinés.&lt;br&gt;&lt;br&gt;Pour plus d&apos;information, jetez un oeil au tutoriel intégré (qui est affiché dans la fenêtre principale):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Tutoriel intégré</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Créer une nouvelle clef</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>Détails d&apos;importation de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Pas de clef trouvée pour import</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Informations générales d&apos;import de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Considérée(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Publique(s) inchangée(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Importée(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Non importée(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Privée(s) lue(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Privée(s) importée(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Privée(s) inchangée(s):</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>Email</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Etat</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Empreinte</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>privée</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>publique</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>inchangée</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>nouvelle clef</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>nouvelle sous-clef</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>nouvelle signature</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>nouvelle uid</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>Email</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Importer des clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Vous avez déposé quelque chose sur la liste des clefs.
+gpg4usb va essayer d&apos;importer les clefs.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Toujours importer sans se soucier.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Ne peut ouvrir le fichier: </translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Gestion des clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;Fermer le gestionnaire de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Fermer le gestionnaire de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Importer une nouvelle clef à partir d&apos;un fichier</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Importer une nouvelle clef à partir du presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Serveur de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Importer une nouvelle clef à partir d&apos;un serveur de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Exporter vers le &amp;presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Exporter le(s) clef(s) sélectionnée(s) vers le presse-papier</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Exporter vers &amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Exporter le(s) clef(s) sélectionnée(s) vers un fichier</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Supprimer les clefs sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Supprimer les clefs sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>&amp;Supprimer les clefs sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Supprimer les clefs sélectionnées</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>&amp;Générer des clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Générer une nouvelle clef</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Afficher les propriétés</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Afficher les propriétés de cette clef</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Importer la clef</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>Importer la clef de</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>clef(s) exportée(s)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;Clef</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importer la clef de...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Clef</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Ouvrir clef</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Fichier clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Fichiers trousseaux de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Ne peut ouvrir le fichier: </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Suppression de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Etes-vous sûr(e) de vouloir supprimer les clefs suivantes ?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Cette action ne peut être annulée.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Exporter la clef en fichier</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Fermer</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Importer</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Chercher</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Chaîne recherchée:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Serveur de clefs:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Importer des clefs du serveur de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Date de création</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>KeyID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Etiquette</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Ne peut contacter le serveur !</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Trop de réponses du serveur !</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Pas de clef trouvée, l&apos;entrée peut être hexaID, réessayez avec 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Pas de clef trouvée contenant la chaîne recherchée !</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Chaîne de recherche insuffisamment spécifique !</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>révoquée</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>désactivée</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 clef(s) trouvée(s). Double-cliquer sur une clef pour l&apos;importer.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Erreur lors du contact avec le serveur !</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Clef importée</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Serveur de clef par défaut pour l&apos;import:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Ouvrir un nouveau fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Ouvrir...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Ouvrir un fichier existant</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>Enre&amp;gistrer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Sauvegarder le fichier courant</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>En&amp;registrer sous</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Sauvegarder le fichier courant sous...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Imprimer...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Imprimer le document</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Fermer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Fermer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Quitter</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Quitter le programme</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Annuler la dernière action d&apos;édition</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Rétablir</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Rétablir la dernière action d&apos;édition</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>A&amp;grandir</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Ré&amp;duire</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>C&amp;oller</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Coller le texte à partir du presse-papier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Couper</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Couper le contenu de la sélection couorante dans le presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>Co&amp;pier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Copier le contenu de la sélection courante dans le presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>Ci&amp;ter</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Citer tout le texte</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>Sélectio&amp;nner tout</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Sélectionner le texte entier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>&amp;Supprimer les espaces</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Supprimer les doubles sauts de lignes, e.g. dans le texte collé à partir du mailer web</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>Para&amp;mètres...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Ouvrir la fenêtre de paramétrage</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Chiffrer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Chiffrer message</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Déchiffrer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Déchiffrer message</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>Chiffrage de &amp;fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Chiffrage/Déchiffrage de fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Chiffrer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Chiffrer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Déchiffer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Déchiffer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Signer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Signer message</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;Vérifier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Vérifier message</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>&amp;Editeur</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Importer nouvelle clef à partir de l&apos;éditeur</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>&amp;Gérer les clefs</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Ouvrir le gestionnaire de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>A &amp;Propos de...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Afficher la fenêtre A Propos de</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Aide &amp;intégrée</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Ouvrir l&apos;aide intégrée</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>Tutoriaux en &amp;ligne</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Ouvrir tutoriaux en ligne</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Traduire &amp;gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Traduire gpg4usb vous-même</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>&amp;Ouvrir l&apos;assistant</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Ouvrir l&apos;assistant</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Ajouter la clef sélectionnée au texte</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Ajouter les clefs sélectionnées aux texte dans l&apos;éditeur</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>Copier adresse email</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Copier l&apos;adresse mail dans le presse-papiers</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Afficher propriétés de la clef</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Afficher les propriétés de cette clef</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edition</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Chiffrage</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>C&amp;lefs</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importer des clefs de...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Stéganographie</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>A Propos de...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Cette application permet le chiffrage et le&lt;br&gt;déchiffrage simples de messages ou de fichiers.&lt;br&gt;Il est sous licence GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Développeurs:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Traductions:&lt;/b&gt;&lt;br/&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es), Pierre Fauque (fr)&lt;br&gt;&lt;br&gt;Si vous avez des questions ou des suggestions,&lt;br/&gt;jetez un oeil à notre &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;page de contact&lt;/a&gt;&lt;br/&gt;ou&lt;br/&gt;envoyez un mail à notre&lt;br/&gt; mailing list à &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Supprimer en-tête PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Ajouter en-tête PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>Affic&amp;her</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Aide</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>Chiffrage</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Clef</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Edition</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Edition spéciale</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Importer clef de...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Importer clef</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Chiffrer ou déchiffrer fichier</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Fichier..</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Prêt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>Chiffrer pour</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Fichiers joints:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt;Bâti avec Qt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> et GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Il y a un fichier non chiffré dans le dossier pièces jointes</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Il y a </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation> fichiers non chiffrés dans le dossier pièces jointes</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Décoder l&apos;encodage quoted printable</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Essayer de reconnaître l&apos;encodage quoted printable.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Analyser PGP/MIME (Expérimental)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Essayer de séparer les pièces jointes des messages chiffrés avec PGP/MIME.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Ouvrir avec une application externe (Expérimental)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Ouvrir les pièces jointes avec l&apos;application par défaut pour le type de fichier.&lt;br&gt; Il y a au moins deux problèmes possibles avec cette façon de faire:&lt;ol&gt;&lt;li&gt;Le fichier doit être enregistré en clair dans le dossier des pièces jointes.&lt;br&gt; Il vous appartient de nettoyer ce dossier.&lt;/li&gt;&lt;li&gt;L&apos;application externe peut avoir ses propres fichiers temporaires.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Autoriser l&apos;ouverture avec des applications externes.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Fichiers non sauvegardés</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 fichier(s) contien(nen)t des informations non sauvegardées.&lt;br/&gt;Sauvegarder les changements avant fermeture?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Cochez les fichiers que vous voulez sauvegarder:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Note:&lt;/b&gt; Si vous ne sauvegardez pas ces fichiers, tous les changements seront perdus.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Général</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Apparence</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Serveur de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Avancé</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Français (fr)</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>Sans nom</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Ouvrir fichier</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Application</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Ne peut lire le fichier %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Fichier</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Ne peut écrire le fichier %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Sauvegarder fichier</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Document non sauvegardé</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;Le document &quot;%1&quot; a été modifié.&lt;br/&gt;Voulez-vous sauvegarder les changements ?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Note:&lt;/b&gt; Si vous ne sauvegardez pas ces fichiers, les changements seront perdus.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Propriétés de la signature</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Erreur dans la validation de signature</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>Le texte a été complètement signé le
+ %1 par:</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>Le texte a été partiellement signé le
+ %1 par:</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Importer du serveur de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Status:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Empreinte:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Clef non présente dans la liste des clefs</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Clef non présente avec id 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Nom:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>Email:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Erreur pour la clef avec id 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Importer la clef manquante d&apos;un serveur de clefs</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Afficher les informations détaillées de vérification</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Propriétés</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Clef non présente avec id 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Erreur de validation de signature par: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>Le texte a été complètement signé par: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>Le texte a été partiellement signé par: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Erreur pour la clef avec empreinte </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Premier démarrage de l&apos;assistant</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Erreur d&apos;importation</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Ne peut localiser de trousseau de clefs en %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Erreur d&apos;importation</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Ne peut ouvrir le trousseau privé: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>Ne peut ouvrir le trousseau public: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_he.ts b/release/ts/gpg4usb_he.ts
new file mode 100644
index 00000000..add083af
--- /dev/null
+++ b/release/ts/gpg4usb_he.ts
@@ -0,0 +1,1981 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="he_IL">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>להציג אפשרויות סטגנוגרפיה [מתקדם]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>להציג אפשרויות סטגנוגרפיה.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>אייקונים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>קטנים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>בינוניים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>גדולים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>סגנון אייקונים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>טקסט בלבד</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>איקונים בלבד</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>טקסט ואיקונים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>מצב החלון</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>לשמור את גודל החלון ומיקומו ביציאה.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>שם קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>סוג תוכן</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>שמירה</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>לשמור קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>פתיחה</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>לפתוח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>לא ניתן לכתוב לקובץ %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>בחר פעולה...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...על-ידי לחיצה על הקישור המתאים.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>במידה וטרם השתמשת ב- gpg4usb וגם אין ברשותך מפתח gpg עדיין אולי תרצה </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>ליצור זוג מפתחות חדש</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>במידה ואתה משדרג מגרסה קודמת של gpg4usb אולי תרצה </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>ליבא הגדרות ו/או מפתחות מ- gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>במידה ואתה כבר נשתמש ב- GnuPG אולי תרצה </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>ליבא מפתחות מ- GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>מוכן.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>תהנו עם gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>אתה מוכן להתחיל להשתמש ב- gpg4usb.&lt;br&gt;&lt;br&gt;קבצי העזרה יעזרו לך להתחיל לעבוד. הם יפתחו בחלון הראשי.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>לפתוח את קבצי העזרה.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>אל תראה את האשף פעם נוספת.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>להצפין/לפענח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>פעולה</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>לפענח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>להצפין קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>קלט</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>פלט</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;הצפנה</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;פענוח</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>פתיחה</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>שמירה</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>לא הצלחתי לפתוח קובץ:</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>לא ניתן לכתוב לקובץ %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>הקובץ קיים! האם להחליפו?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>לזכור סיסמה</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>לזכור סיסמה עד לסגירת gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>לשמור מפתחות מסומנים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>לשמור את המפתחות הפרטיים ביציאה ולשחזר אותם בהפעלה הבאה.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>לאשר יבוא מפתח בגרור-וזרוק</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>ליבא מפתחות הזרקים ברשימת המפתחות ללא בקשת אישור.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>שפה</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>לא נבחר מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;לא נמצא מפתח פרטי בטבעת עם המזהה %1</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>אלגוריתם לא נתמך</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>שגיאת פענוח:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>סיסמה שגויה</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>הכנס סיסמה עבור</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>הכנס סיסמה</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>בחירת מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>לא נבחר מפתח פרטי</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>שגיאת חתימה:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>יבוא מפתחות...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...מהתקנה קיימת של GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>ניתן ליבא מפתחות מ- GnuPG המותקן מקומית.&lt;br&gt;&lt;br&gt; המיקום נקרא מהרגיסטרי של חלונות או מספריית .gnupg בתיקיית הבית של לינוקס.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>יבוא מפתחות מ- GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>שגיאת יבוא</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>לא הצלחתי לאתר את ספריית הבית של GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>יבוא מ...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...גרסה אחרת של gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>באפשרותך ליבא מפתחות או הגדרות מגרסה אחרת של gpg4usb. &lt;br&gt;&lt;br&gt;יש לסמן את האפשרויות ליבוא, ללחוץ על כפתור היבוא ולבחור את התיקיה של הגרסה האחרת של gpg4usb.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>הגדרות</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>ליבא מ- gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>תיקיית gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>הגדרות יובאו</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>יבאתי את ההגדרות מהגרסה הקודמת של gpg4usb. &lt;br&gt;מאתחל את התוכנה בכדי להפעיל ההגדרות החדשות.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>מתחילים...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>...עם gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>בכדי להשתמש ב- gpg4usb לפענוח וחתימה של הודעות, יש צורך במפתח פרטי. הדף הבא יסייע לך ביצירת מפתח או יבוא של אחד.&lt;br&gt;&lt;br&gt;למידע נוסף יש ללחוץ על הקישור לדף &lt;a href=&apos;docu_concepts.html&apos;&gt;העקרונות&lt;/a&gt; (לחיצה על הקישור תפתח את הדף בחלון המרכזי). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>בחירת שפה</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>פרטי הבעלים</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>פרטי המפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>טביעת אצבע</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>מזהים נוספים</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>שם:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>כתובת דוא&quot;ל:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>הערות:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>תקף עד:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>נוצר ב:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>מזהה מפתח:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>להעתיק טביעת אצבע ללוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>זהירות: פג תוקף המפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>זהירות: המפתח בוטל</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>פרטי מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>הנך עומד ליצא את המפתח הפרטי שלך
+זה *לא* המפתח הציבורי, אז אל תפיץ אותו.
+חשוב לשמור עליו. האם ליצא את המפתח הפרטי?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>קבצי מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>שגיאת יצוא</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>לא ניתן לפתוח את %1 לכתיבה</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>גודל המפתח:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>אלגוריתם:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>לעולם לא</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / לעולם לא</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>מפתח פרטי</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>ליצא את המפתח הפרטי</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>מייצא את הפתח הפרטי</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>ליצא מפתח לקובץ</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>יצירת מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>חוזק סיסמה</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>שם:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>כתובת דוא&quot;ל:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>הערה:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>בתוקף עד:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>תקף לעד</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>גודל מפתח (בביטים):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>סיסמה:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>סיסמה: חוזק חלשה -&gt; חזקה</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>סיסמה בשנית:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation>השם חייב להכיל לפחות חמשה תווים.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation>שתי הסיסמאות לא תואמות.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>מייצר מפתח...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>אוסף נתונים אקראיים ליצירת המפתח.
+הפעולה עשויה להתארך.
+בכדי להאיץ את התהליך אפשר להשתמש במחשב
+(לדוגמה: לגלוש ברשת, להאזין למוזיקה,...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>הצלחה</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>מפתח חדש נוצר</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>ליצור זוג מפתחות...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...לפענוח וחתימה על הודעות</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>עליך ליצור זוג מפתחות חדש. הזוג כולל מפתח ציבורי ומפתח פרטי.&lt;br&gt;משתמשים אחרים יכולים להשתמש במפתח הציבורי שלך בכדי להצפין הודעות עבורך ולודא הודעות שנחתמו על ידך. באפשרותך לפענח ולחתום על הודעות בעזרת המפתח הפרטי.&lt;br&gt;למידע נוסף יש לפנות למדריכים הלא מקוונים (יוצג בחלון הראשי):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>מדריך לא מקוון</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>יצירת מפתח חדש</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>נתוני יבוא מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>לא נמצאו מפתחות ליבוא</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>נתונים כלליים</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>נמצאו:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>ציבוריים ללא שינוי:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>יובאו:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>לא יובאו:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>פרטיים:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>מפתחות פרטיים שיובאו:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>פרטיים ללא שינוי:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>שם</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>דוא&quot;ל</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>מצב</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>טביעת אצבע</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>פרטי</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>ציבורי</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>ללא שינוי</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>מפתח חדש</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>תת מפתח חדש</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>חתימה חדשה</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>מזהה חדש</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>שם</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>דוא&quot;ל</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>יבוא מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>זרקת משהו על רשימת המפתחות
+התוכנה תנסה ליבא את המפתח/ות.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>תמיד יבא ללא שאלות.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>לא הצלחתי לפתוח את הקובץ:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>מנהל מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;לסגור את מנהל המפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>לסגור את מנהל המפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>יבוא מפתח חדש מקובץ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>יבוא מפתח חדש מלוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;שרת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>יבוא מפתח חדש משרת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>יצוא &amp;ללוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>יצוא המפתח/ות שנבחרו ללוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>יצוא &amp;לקובץ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>לייצא מפתחות שנבחרו לקובץ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>למחוק מפתחות שנבחרו</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>למחוק מפתחות שנבחרו</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>למחוק מפתחות שסומנו</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>למחוק מפתחות שסומנו</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>יצירת מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>יצירת מפתח חדש</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>להציג נתוני מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>להציג נתונים עבור מפתח זה</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>ליבא מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>ליבא מפתח ממקור</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>מפתחות יוצאו</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;לוח הדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;ליבא מפתח מ...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>לפתוח מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>קבצי מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>קבצי טבעת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>לא הצלחתי לפתוח קובץ:</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>מוחק מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;האם למחוק את המפתחות הבאים?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;The לא ניתן לשחזר פעולה זו.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>ליצא מפתח לקובץ</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;סגירה</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;יבוא</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;חיפוש</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>מחרוזת חיפוש:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>שרת מפתחות:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>ליבא מפתחות משרת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>מזהה</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>תאריך יצירה</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>מזהה מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>תג</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>לא הצלחתי להתחבר לשרת המפתחות!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>תשובות רבות מדי משרת המפתחות!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>לא נמצאו מפתחות, הקלט יכול להיות keyId, מנסה לחפש עם 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>לא נמצאו מפתחות המכילים את מחרוזת החיפוש!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>מחרוזת החיפוש אינה מוגדרת!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>נשלל</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>נוטרל</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 מפתח/ות נמצאו. הקלקה כפולה בכדי לייבא.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>שגיאה בהתחברות לשרת המפתחות!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>מפתח יובא</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>ברירת מחדל לשרת מפתחות ליבוא:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;חדש</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>לפתוח קובץ חדש</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;לפתוח...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>לפתוח קובץ חדש</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>&amp;שמירה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>לשמור את הקובץ הנוכחי</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>&amp;לשמור בשם</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>לשמור את הקובץ הנוכחי בשם...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>&amp;הדפסה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>להדפיס</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>&amp;סגירה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>לסגור את הקובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;יציאה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>לצאת מהתוכנית</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;ביטול</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>ביטול פעולת עריכה אחרונה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;שחזור פעולה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>לשחזר את פעולת העריכה האחרנה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>הגדלה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>הקטנה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;הדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>הדבקת טקסט מלוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;גזירה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>גזריה ללוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;העתקה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>העתקה ללוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;ציטוט</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>ציטוט כל הטקסט</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>בחירת &amp;הכול</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>בחירת כל הטקסט</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>להסיר &amp;רווחים</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>הסרת מעברי שורות כפולים כגון בטקסט מעותק</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>&amp;הגדרות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>פתיחת חלון ההגדרות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;הצפנה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>להצפין הודעה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;פענוח</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>לפענח הודעה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>&amp;הצפנת קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>להצפין/לפענח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;הצפנת קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>להצפין קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;פענח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>לפענח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;חתימה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>לחתום הודעה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;אימות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>לאמת הודעה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>&amp;עורך</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>יבוא מפתח חדש מהעורך</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>ניהול &amp;מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>פתיחת מנהל המפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;אודות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>להציג את חלון האודות של היישום</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>עזרה מובנית</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>לפתוח את העזרה המובנת</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>מדריכים &amp;מקוונים</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>לפתוח את המדריכין המקוונים</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>תרגום gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>תרגם את gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>פתיחת &amp;אשף</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>לפתוח את האשף</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>לצרף את המפתח/ות שנבחרו לטקסט</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>לצרף את המפתחות שנבחרו לטקסט שבעורך</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>להעתיק כתובת דוא&quot;ל</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>העתקת כתובות דוא&quot;ל שנבחרו ללוח ההדבקה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>הצגת נתוני מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>להציג פרטים אודות מפתח זה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;עריכה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;הצפנה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>&amp;מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;יבוא מפתח מ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;סטגנוגרפיה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>אודות </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;תוכנה זו מאפשרת הצפנה ופענוח &lt;br&gt;פשוטים של הודעות טקסט וקבצים.&lt;br&gt;היא מופצת תחת רישיון GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;מפתחים:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;תרגום:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es) &lt;br&gt;&lt;br&gt;אם יש לך הצעות או שאלות ממולץ להציץ&lt;br/&gt;בדף &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;יצירת הקשר&lt;/a&gt; שלנו או לשלוח מייל &lt;br/&gt; לרשימת התפוצה שלנו &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>הסרת כותרת PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>הוספת כותרת PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;צפייה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;עזרה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>הצפנה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>עריכה</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>עריכה מיוחדת</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>יבוא מפתח מ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>יבוא מפתח</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>הצפנת או פענוח קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>קובץ..</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>מוכן</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>להצפין עבור:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>קבצים מצורפים:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">אודות </translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;תוכנה זו מאפשרת הצפנה ופענוח &lt;br&gt;פשוטים של הודעות טקסט וקבצים.&lt;br&gt;היא מופצת תחת רישיון GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;מפתחים:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;תרגום:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es) &lt;br&gt;&lt;br&gt;אם יש לך הצעות או שאלות ממולץ להציץ&lt;br/&gt;בדף &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;יצירת הקשר&lt;/a&gt; שלנו או לשלוח מייל &lt;br/&gt; לרשימת התפוצה שלנו &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt;נבנה בעזרת Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> ו- GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>יש קובץ לא מוצפן בספריית הקבצים המצורפים</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>יש </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation> קבצים לא מוצפנים בספריית הקבצים המצורפים</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>פענוח ציטוטים</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>נסה לזהות ציטוטים.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>פרוק PGP/MIME (ניסויני)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>נסה לחלץ מידע מצורף מהודעות מוצפנות מסוג PGP-MIME.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>לפתוח בעזרת יישום חיצוני (ניסיוני)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>לפתוח קבצים מצורפים בעזרת יישום ברירת המחדל לסוג זה של קובץ.&lt;br&gt; ישנן לפחות שתי בעיות אפשריות בהתנהגות זו:&lt;ol&gt;&lt;li&gt;יש לשמור את הקובץ המפוענח לספריית הקבצים המצורפים.&lt;br&gt; זו העבודה שלך לנקות ספרייה זו.&lt;/li&gt;&lt;li&gt;ליישום החיצוני עשויים להיות קבצים זמניים.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>לפתוח בעזרת יישומים חיצוניים.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>קבצים שלא נשמרו</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 קבצים מכילים מידע שלא נשמר.&lt;br/&gt;לשמור לפני הסגירה?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>יש לסמן את הקבצים שברצונך לשמור:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;זהירות:&lt;/b&gt; אי שמירה של קבצים אלו תביא לאובדן המידע.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>כללי</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>תצוגה</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/MIME</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>שרת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>מתקדם</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>הגדות</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>ברירת המחדל של המערכת</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>untitled</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>פתיחת קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>יישום</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>לא ניתן לקרוא את הקובץ %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>לא ניתן לכתוב את הקובץ %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>שמירת קובץ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>קובץ לא שמור</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;המסמך &quot;%1&quot; שונה.&lt;br/&gt;האם ברצונך לשמור את השינויים?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;זהירות:&lt;/b&gt; במידה והקובץ לא יישמר, כל השינויים יאבדו.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>נתוני חתימה</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>שגיאה באימות החתימה</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>כל הטקסט נחתם ב-
+ %1 על-ידי:
+</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>חלק מהטקסט נחתם ב-
+ %1 על-ידי:
+</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>ליבא משרת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>מצב:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>טביעת אצבע:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>המפתח לא נמצא ברשימת המפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>המפתח לא נמצא עם מזהה 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>שם:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>דוא&quot;ל:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>בסדר</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>שגיאה עבור מפתח עם מזהה 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>ליבא מפתח חסר משרת מפתחות</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>להציג מידע מפורט לאימות</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>נתונים</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>מפתח לא נמצא עם מזהה 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>שגיאה באימות חתימה על-ידי:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>כל הטקסט נחתם על-ידי:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>חלק מהתקסט נחתם על-ידי:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>שגיאה עבור מפתח עם טביעת האצבע</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>באיתחול הפעל את האשף</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>שגיאת יבוא</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>לא מצאתי את קובץ טבעת המפתחות ב- %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>שגיאת יבוא</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>לא ניתן לפתוח את קובץ טבעת המפתחות הפרטיים: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>לא ניתן לפתוח את קובץ טבעת המפתחות הציבוריים: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_ja.ts b/release/ts/gpg4usb_ja.ts
new file mode 100644
index 00000000..7d9785cd
--- /dev/null
+++ b/release/ts/gpg4usb_ja.ts
@@ -0,0 +1,1969 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>ステガノグラフィーオプションを表示[上級]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>ステガノグラフィーオプションを表示する</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>アイコンのサイズ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>小</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>中</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>大</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>アイコンのスタイル</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>テキストのみ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>アイコンのみ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>テキストとアイコン</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>ウィンドウの状態</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>前回のウィンドウのサイズと位置を保存する.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>ファイル名</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>コンテンツタイプ</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>ファイルを保存する</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>このファイルを保存する</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>ファイルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>このファイルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>ファイルを書き出せない %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>ロケーションを選んでください...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...適切なリンクをクリックしていくことで</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>もしあなたがいままで一度もgpg4usbを使ったことがなく、なおかつgpg鍵を持っていないなら、</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>あたらしい鍵ペアをつくる</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>もしあなたが古いバージョンのgpg4usbからアップグレードしたいなら</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>インポートのセッティングと/あるいはgpg4usbの鍵</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>もしあなたがすでにGnuPGをつかっているなら</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>GnuPGから鍵をインポートする</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>準備完了.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>gpg4usbで楽しもう!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>gpg4usbを使う準備ができました。&lt;br&gt;&lt;br&gt; あなたがgpg4usbを開始するとオフラインヘルプがメインウィンドウに表示されます。&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>オフラインヘルプを開く</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>二度とこのウィザードを表示しない.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>ファイルを暗号化/復号化する</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>実行</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>ファイルを復号化する</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>ファイルを暗号化する</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>インプット</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>アウトプット</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;暗号化</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;復号化</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>ファイルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>ファイルをセーブする</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>ファイルが開けません</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>ファイルが書き出せません %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>ファイルがすでに存在します! 上書きしますか?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>パスワードを記憶する</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>gog4usbを閉じるまでパスワードを記憶しておく</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>チェックされた鍵を保存する</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>チェックされた秘密鍵を次のスタート時に復元する.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>ドラッグ・アンド・ドロップでインポートする際の追認</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>ドロップされた鍵リストを追認なしでインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>言語</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="312"/>
+ <source>No Key Selected</source>
+ <translation>鍵が選択されていません</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="384"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;id %1に合致する秘密鍵が鍵束にありません</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="392"/>
+ <source>Unsupported algorithm</source>
+ <translation>サポートされていないアルゴリズムです</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="402"/>
+ <source>Error decrypting:</source>
+ <translation>エラー 復号化:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="476"/>
+ <source>Wrong password</source>
+ <translation>パスワードが違います</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="484"/>
+ <source>Enter Password for</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="488"/>
+ <source>Enter Password</source>
+ <translation>パスワードを入力</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="652"/>
+ <source>Key Selection</source>
+ <translation>鍵の選択</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="652"/>
+ <source>No Private Key Selected</source>
+ <translation>秘密鍵が選択されていません</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="700"/>
+ <source>Error signing:</source>
+ <translation>エラー 署名:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>鍵をインポートする...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...すでにインストールしてあるGnuPGから</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>ローカルにインストールされたGnuPGから鍵をインポートできます。&lt;br&gt;&lt;br&gt; ロケーションはWindowsのレジストリから読み取られるか、Linuxのホームディレクトリの.gnupgフォルダーから読み取られます。&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>鍵をGnuPGからインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>インポートエラー</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>ホームディレクトリからGnuPGを捜し出せませんでした。</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>既存のgpg4usbから...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...インポートする</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>あなたは鍵やセッティングをすでに使っているgpg4usbからインポートできます。 &lt;br&gt;&lt;br&gt;インポートしたいものをチェックし、インポートボタンをクリックしてダイアログに他のgpg4usbのディレクトリを選択してください.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>鍵</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>gpg4usbからインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>他のgpg4usbのディレクトリ</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>設定をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>設定を古いgpg4usbからインポートする.&lt;br&gt;設定を反映するためにリスタートします。</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>gpg4usbで</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>はじめよう</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>gpg4usbを復号化や署名に使うために、あなたは秘密鍵が必要です。次のページはあなたが新しい鍵を生成するかインポートするのを手助けします。&lt;br&gt;&lt;br&gt;更なる情報については&lt;a href=&apos;docu_consepts.html&apos;&gt;consepts&lt;/a&gt; (クリックすることでメインウィンドウにページが開きます). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>言語を選ぶ</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>所有者の詳細</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>鍵の詳細</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>指紋</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>追加のUids</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>名前:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>メールアドレス:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>コメント:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>期限切れ:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>生成日:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>鍵のID:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>指紋をクリップボードにコピーする</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>警告: 鍵の期限切れ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>警告: 鍵の廃止</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>鍵の詳細</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>あなたは秘密鍵をエクスポートしようとしています。
+これは公開鍵ではありません、決してなくさないよう気をつけてください。
+必ず保存してしまっておくようにしてください。本当に秘密鍵をエクスポートしますか?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>鍵のファイル</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>エクスポートエラー</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>%1を開けません</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>鍵のサイズ:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>アルゴリズム: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>無期限</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / 無期限</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>秘密鍵</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>秘密鍵をエクスポート</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>秘密鍵をエクスポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>鍵をファイルにエクスポートする</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>鍵を生成する</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>パスワードの強度</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>名前:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>メールアドレス:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>コメント:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>失効する日付:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>永遠に失効しない</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>鍵のサイズ (ビット):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>パスワード:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>パスワード: 強度
+弱 -&gt; 強</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>もう一度パスワードを入力してください:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation> 名前は5文字以上でなければいけません。
+</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation> 二つのパスワード一致しません。  </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>鍵を生成しています...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>鍵を生成するため乱数を収集しています。
+ すこし時間がかかります。
+ 時間を短縮するためにコンピュータを使用してください。
+ (インターネットをブラウズしたいり、音楽を聞いたり...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>成功</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>新しい鍵がつくられました</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>復号化と署名のために...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...新しい鍵ペアをつくる</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>あなたは新しい鍵ペアを作らなければいけません。鍵ペアは公開鍵と秘密鍵を含んでいます。&lt;br&gt;他のユーザーは、あなたに暗号メッセージをおくるために公開鍵をつかい、またあなたにより署名されたメッセージを検証するため公開鍵に使います。あなたは秘密鍵を復号化や署名を施すためにつかいます。&lt;br&gt;更なる情報についてはオフラインチュートリアルを参照してください (メインウィンドウに表示されます):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>オフラインチュートリアル</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>新しい鍵をつくる</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>ステータス</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>名前</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>メール</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>鍵をインポート</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>鍵リストに何かをドロップしました。
+ gpg4usbは鍵をインポートするようトライしてみます。</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>常にじゃまなしにインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>ファイルを開けません: </translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>鍵管理</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>鍵管理を閉じる</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>鍵管理を閉じる</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>新しい鍵をファイルからインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>新しい鍵をクリップボードからインストールする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>鍵サーバー</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>鍵サーバーから新しい鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>&amp;クリップボードにエクスポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>選択された鍵をクリップボードにエクスポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>&amp;ファイルにエクスポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>選択された鍵をファイルにエクスポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>選択された鍵を削除する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>選択された鍵を削除する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>チェックされた鍵を削除する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>チェックされた鍵を削除する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>鍵を生成する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>新しい鍵を生成する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>鍵の詳細の表示する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>この鍵の詳細を表示する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>失効した鍵</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;クリップボード</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>鍵</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;鍵をインポートする...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>鍵</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>鍵を開く</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>鍵ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>鍵束ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>ファイルを開けません: </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>鍵を削除する</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;本当にこれらの鍵を削除してもいいですか?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;この操作はやり直すことができません。</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>鍵をファイルにエクスポートする</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;閉じる</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;インポート</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;検索</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>検索する文字列</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>鍵サーバー:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>鍵サーバーから鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>作成日</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>鍵ID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>タグ</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>鍵サーバーと通信できません!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>鍵サーバーからのレスポンスが多すぎます!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>鍵が見つかりません、鍵IDの頭に 0x を付けてもう一度トライしてみてください。</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>そのような鍵は見つかりませんでした!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>具体的な文字列が不足しています!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>失効済</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>無効化</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1個の鍵が見つかりました。インポートするにはダブルクリックしてください。</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>鍵サーバーと通信中にエラーが起きました!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>インポートされた鍵</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>インポートするためのデフォルト鍵サーバー:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>新規</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>新しいファイルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>既存のファイルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>保存</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>現在のファイルを保存する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>名前をつけてを保存する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>このファイルを名前をつけて保存する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>印刷</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>文章をプリントする</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>閉じる</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>ファイルを閉じる</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>終了</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>プログラムを閉じる</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>元に戻す</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>さっきの操作を元に戻す</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>やり直し</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>さっきの操作をやりなおす</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>ズームイン</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>ズームアウト</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>貼り付け</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>クリップボードから貼り付ける</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>切り取り</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>切り取り</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>コピー</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>コピー</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>引用</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>文章のすべてを引用する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>すべてを選択する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>文章のすべてを選択する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>二重改行を取り除く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>行間を取り除く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>セッティング</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>セッティングダイアログを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>暗号化</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>メッセージを暗号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>復号化</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>メッセージを復号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>ファイルを暗号化</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>ファイルを暗号化/復号化</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>ファイルを暗号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>ファイルを暗号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>ファイルを復号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>ファイルを復号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>署名</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>メッセージに署名する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>検証</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>メッセージを検証する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>エディタ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>エディタから新しい鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>鍵管理</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>鍵管理を開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>アバウト</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>アプリケーションのアバウトボックスを表示する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>総合ヘルプ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>総合ヘルプを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>オンラインチュートリアル</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>オンラインチュートリアルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>gpg4usbを翻訳する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>gpg4usbをあなたが翻訳する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>ウィザードを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>ウィザードを開く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>選択された鍵をテキストに書き足す</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>選択された鍵をエディタに追加添付する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>メールアドレをコピー</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>メッセージをコピー</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>鍵の詳細を表示する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>この鍵の詳細を表示する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>エディット</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>暗号</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>鍵</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>ステガノグラフィー</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>アバウト</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>PGPヘッダーを取り除く</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>PGPヘッダーを追加</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>表示</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>ヘルプ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>暗号</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>鍵</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>エディット</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>特別なエディット</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>鍵をインポートする</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>鍵をインポート</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>ファイルを暗号化または復号化する</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>準備完了</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>誰に対して暗号化するか</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>添付ファイル</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation>とGPGME</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>添付フォルダーに暗号化されていないファイルがひとつある</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>そこにある</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation>添付されたフォルダの暗号化されていないファイル</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>印刷可能な形に引用を整える</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>可能なら印刷可能な形に引用を整える</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>PGP/MIMEを解析する(試験期間中)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>PGP/MIME暗号メッセージには分離署名を試みる</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>外部のアプリケーションで開く(試験期間中)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>ファイル・タイプのデフォルトのアプリケーションで開く。&lt;br&gt;これにはすくなくとも二つの問題が起こりえる。&lt;ol&gt;&lt;li&gt;ファイルが暗号化されないまま添付フォルダに保存されること。&lt;br&gt; このフォルダをクリーンにするのはあなたの役割です。&lt;/li&gt;&lt;li&gt;外部アプリケーションはtempファイルをもっているかもしれないこと。&lt;li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>外部アプリケーションで開くことを有効にする。</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>保存されていないファイル</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 ファイルは保存されていない情報を含んでいます。&lt;br/&gt;閉じる前に保存しますか?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>保存したいファイルをチェックしてください:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;ノート:&lt;/b&gt; もしこれらのファイルを保存しないならば、すべての変更は失われます。&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>一般</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>見た目</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>鍵サーバー</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>アドバンス</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>セッティング</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>システムデフォルト</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>ファイルを開く</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>アプリケーション</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>ファイルを</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>ファイルを保存する</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>保存されていない文章</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;&quot;%1&quot;は変更されています。&lt;br/&gt;変更を保存しますか?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;ノート:&lt;/b&gt; もしこれらのファイルを保存しないならば、すべての変更は失われます。&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>署名の詳細</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>エラー 署名を検証中</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>%1に行われたによる完全な署名です</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>%1行われた不完全な署名です</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>鍵サーバーからインポート</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>ステータス:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>指紋:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>鍵が鍵リストにありません</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>名前:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>メール:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>検証の詳細を表示する</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>詳細</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>完全な署名</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>不完全な署名</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>鍵の指紋によるエラー</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>ウィザードを開始する</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>インポート エラー</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>%1を鍵束から捜し出せませんでした。</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>インポート エラー</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>秘密鍵束ファイルを開けません: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>公開鍵束ファイルを開けません: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_my.ts b/release/ts/gpg4usb_my.ts
new file mode 100644
index 00000000..9de739f2
--- /dev/null
+++ b/release/ts/gpg4usb_my.ts
@@ -0,0 +1,1959 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="my_MM">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Icon အရွယ်အစား</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>အငယ်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>အလယ်အလတ်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>အကြီး</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Icon ပုံစံ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>စာသား သက်သက်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>Icon သက်သက်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>စာသားနဲ့ Icon များ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Window အနေအထား</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>ပိတ်တဲ့အခါ Window အရွယ်အစားနဲ့ တည်နေရာကို သိမ်းဆည်းရန်</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>ဖိုင်နာမည်</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>အကြောင်းအရာ အမျိုးအစား</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>ဖိုင်ကို သိမ်းဆည်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>ဒီဖိုင်ကို သိမ်းဆည်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>ဖိုင်ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>ဒီဖိုင်ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>ဖိုင်</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>ဖိုင်ကို စာဝှက်​ရန် / စာဝှက်​ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>ဖိုင်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>လုပ်ဆောင်ချက်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>ဖြည့်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>ရလဒ်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>စာဝှက်​ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>စာဝှက်​ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>ဖိုင်ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>ဖိုင်ကို သိမ်းဆည်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>ဖိုင် ရှိနေတယ်။ အဲဒီဖိုင်ကို ဖျက်လိုပါသလား။</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>စကားဝှက်ကို မှတ်သားရန်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>gpg4usb ကို မပိတ်ခင်အထိ စကားဝှက်ကို မှတ်သားရန်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီးများကို သိမ်းဆည်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>ပိတ်တဲ့အခါ private ကီးများကို သိမ်းဆည်းပြီး၊ ပြန်ဖွင့်တဲ့အခါ နဂိုနေရာ ပြန်သွားရန်။</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>drag&apos;n&apos;drop ကီး တင်သွင်းချက်ကို အတည်ပြုရန်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>အတည်ပြုချက် မရပဲ ကီးစာရင်းထဲမှာ ထည့်ထားတဲ့ ဖိုင်​များကို တင်သွင်းရန်။</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>ဘာသာစကား</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation type="unfinished">ကီး ရွေးချယ်မထားပါ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation type="unfinished">ပံ့ပိုးမထားတဲ့ အယ်လဂိုရီသမ်</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation type="unfinished">စာဝှက်ဖြည်နေစဉ် အမှားအယွင်း ဖြစ်ပေါ်နေတယ် -</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation type="unfinished">စကားဝှက် မှားနေတယ်</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation type="unfinished">စကားဝှက်ကို ရေးထည့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation type="unfinished">ကီး ရွေးချယ်မှု</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation type="unfinished">Private ကီး ရွေးချယ်မထားပါ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation type="unfinished">လက်မှတ်ရေးထိုးနေစဉ် အမှားအယွင်း ဖြစ်ပေါ်နေတယ် -</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>ပိုင်ရှင် အကြောင်း အသေးစိတ်</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>ကီးအကြောင်း အသေးစိတ်</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>လက်ဗွေ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>နာမည် -</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>အီးမေးလ် လိပ်စာ -</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>မှတ်ချက် -</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>သတိပေးချက် - ကီးရဲ့ သက်တမ်း ကုန်ဆုံးပြီ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>ကီးအကြောင်း အသေးစိတ်</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>ကီး ဖိုင်များ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>ကီး အရွယ်အစား -</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>လုံး၀</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Private ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Private ကီးကို တင်ပို့ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Private ကီးကို တင်ပို့နေတယ်</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>ကီးကို ဖိုင်အဖြစ် တင်ပို့ရန်</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation type="unfinished">ကီး ထုတ်လုပ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation type="unfinished">စကားဝှက်ရဲ့ ကြံ့ခိုင်မှု</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation type="unfinished">နာမည် -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation type="unfinished">အီးမေးလ် လိပ်စာ -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation type="unfinished">မှတ်ချက် -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation type="unfinished">သက်တမ်း ကုန်ဆုံးချိန် -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation type="unfinished">သက်တမ်း ကုန်ဆုံးချိန် မရှိ</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation type="unfinished">ကီး အ​ရွယ်အစား (Bit) -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation type="unfinished">စကားဝှက် -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation type="unfinished">စကားဝှက်ကို ထပ်ရေးရန် -</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation type="unfinished">ကီး ထုတ်လုပ်ရန်...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation type="unfinished">နာမည်</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished">လက်ဗွေ</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>နာမည်</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>အီးမေးလ်</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>ကီးများကို တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>အနှောင့်အယှက် မရှိပဲ အမြဲတမ်း တင်သွင်းရန်။</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>ကီးစီမံခန့်ခွဲရေး</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>Key Management ကို ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Key Management ကို ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>ကီးအသစ်ကို ဖိုင်ကနေ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>ကီးအသစ်ကို Clipboard ကနေ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>ကီးဆာဗာ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>ကီးအသစ်ကို ကီးဆာဗာကနေ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Clipboard ထဲ တင်ပို့ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီး(များ)ကို Clipboard ထဲ တင်ပို့ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>ဖိုင်ထဲ တင်ပို့ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီး(များ)ကို ဖိုင်ထဲ တင်ပို့ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီး(များ)ကို ပယ်ဖျက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီးများကို ပယ်ဖျက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီး(များ)ကို ပယ်ဖျက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>ရွေးချယ်ထားတဲ့ ကီးများကို ပယ်ဖျက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>ကီး ထုတ်လုပ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>ကီးအသစ် ထုတ်လုပ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>ကီးအသေးစိတ်ကို ဖေါ်ပြရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>ဒီကီးရဲ့ အသေးစိတ်ကို ဖေါ်ပြရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>ဖိုင်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>ကီးကို တင်သွင်းလာမဲ့ နေရာ...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>ကီးကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>ကီးဖိုင်များ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>ကီးများကို ပယ်ဖျက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;အောက်ပါ ကီးများကို သင် တကယ် ပယ်ဖျက်မလား။&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;ဒီလုပ်ဆောင်ချက်ကို ပြန်ပြင်လို့ မရပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>ကီးကို ဖိုင်အဖြစ် တင်ပို့ရန်</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>ရှာဖွေရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>အက္ခရာစာလုံးကို ရှာဖွေရန် -</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>ကီးဆာဗာ -</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>ကီးများကို ကီး​ဆာဗာမှ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>ဖန်တီးတဲ့ နေ့စွဲ</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>ကီး ID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>ကီးဆာဗာကို ဆက်သွယ်လို့ မရပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>ကီးဆာဗာဆီရဲ့ တုံ့ပြန်ချက် အလွန်များပြားနေတယ်။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>ကီး မတွေ့ရှိပါ၊ ဖြည့်သွင်းချက်ဟာ kexId ဖြစ်နေနိုင်တယ်၊ 0x ကို အသုံးပြုပြီး ထပ်မံရှာဖွေပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>ရှာဖွေနေတဲ့ အက္ခရာစာလုံး ပါတဲ့ ကီးကို မတွေ့ရှိပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>ပြည့်စုံမှု မရှိတဲ့ ရှာဖွေရေး အက္ခရာစာလုံး။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>ကီး %1 ခုကို တွေ့ရှိရတယ်။ သူ့ကို တင်သွင်းဖို့ ကီးတခုကို နှစ်ချက် နှိပ်ပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>ကီး​ဆာဗာကို ဆက်သွယ်နေစဉ် အမှားအယွင်း ဖြစ်ပေါ်နေတယ်။</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>တင်သွင်းလိုက်တဲ့ ကီး</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>တင်သွင်းဖို့ သတ်မှတ်ထားတဲ့ ကီး​ဆာဗာ -</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation type="unfinished">အသစ်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation type="unfinished">ဖိုင်အသစ် ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation type="unfinished">ဖွင့်ရန်...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation type="unfinished">ရှိပြီးသား ဖိုင်ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">သိမ်းဆည်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation type="unfinished">လက်ရှိ ဖိုင်ကို သိမ်းဆည်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation type="unfinished">သိမ်းဆည်းမဲ့ ပုံစံ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation type="unfinished">လက်ရှိ ဖိုင်ကို သိမ်းဆည်းမဲ့ ပုံစံ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation type="unfinished">ပရင့်ထုတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation type="unfinished">မှတ်တမ်းမှတ်ရာကို ပရင့်ထုတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation type="unfinished">ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation type="unfinished">ဖိုင်ကို ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished">ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation type="unfinished">ပရိုဂရမ်ကို ပိတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation type="unfinished">ပြန်ပြင်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation type="unfinished">နောက်ဆုံး တည်းဖြတ်မှုကို ပြန်ပြင်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation type="unfinished">ပြန်​ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation type="unfinished">နောက်ဆုံး လုပ်ဆောင်ချက်ကို ပြန်ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation type="unfinished">ပွားရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation type="unfinished">Clipboard ထဲက စာသားကို ပွားရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation type="unfinished">ဖြတ်ထုတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished">လက်ရှိ ရွေးချယ်ထားတဲ့ အကြောင်းအရာကို clipboard ထဲကို ဖြတ်ယူရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished">ကော်ပီကူးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished">လက်ရှိ ရွေးချယ်ထားတဲ့ အကြောင်းအရာများကို clipboard ထဲ ကော်ပီကူးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation type="unfinished">ကိုးကားရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation type="unfinished">စာသား တခုလုံးကို ကိုးကားရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation type="unfinished">အားလုံးကို ရွေးချယ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation type="unfinished">စာသား တခုလုံးကို ရွေးချယ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation type="unfinished">နှစ်ထပ် မျဉ်းကြောင်းကို ဖယ်ရှားရန်၊ ဥပမာ - webmailer ကနေ ပွားယူလိုက်တဲ့ စာသားထဲမှ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation type="unfinished">ချိန်ညှိချက်များ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation type="unfinished">settings dialog ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation type="unfinished">စာဝှက်​ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation type="unfinished">ပေးစာကို စာဝှက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation type="unfinished">စာဝှက်​ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation type="unfinished">ပေးစာကို စာဝှက်ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation type="unfinished">ဖိုင်ကို စာဝှက်ခြင်း</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation type="unfinished">ဖိုင်ကို စာဝှက်ရန်/စာဝှက်ဖြည်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation type="unfinished">လက်မှတ်ရေးထိုးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation type="unfinished">ပေးစာကို လက်မှတ်ရေးထိုးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation type="unfinished">အတည်ပြုရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation type="unfinished">ပေးစာကို အတည်ပြုရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation type="unfinished">အယ်ဒီတာ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation type="unfinished">ကီး အသစ်ကို အယ်ဒီတာကနေ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation type="unfinished">Keymanagement ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation type="unfinished">အကြောင်းအရာ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation type="unfinished">ဒီလုပ်ငန်းသုံး ဆော့ဗ်ဝဲရဲ့ အကြောင်းအရာ ဇယားကို ဖေါ်ပြရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation type="unfinished">gpg4usb ကို ဘာသာပြန်ဆိုရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation type="unfinished">gpg4usb ကို ကိုယ်တိုင် ဘာသာပြန်ဆိုရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation type="unfinished">ရွေးချယ်ထားတဲ့ ကီး(များ)ကို စာသားနဲ့ ပူးတွဲပေးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation type="unfinished">ရွေးချယ်ထားတဲ့ ကီးများကို အယ်ဒီတာထဲမှာ စာသားနဲ့ ပူးတွဲပေးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation type="unfinished">အီးမေးလ် လိပ်စာကို ကော်ပီကူးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation type="unfinished">အီးမေးလ် လိပ်စာကို clipboard မှာ ကော်ပီကူးရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation type="unfinished">ကီးအသေးစိတ်ကို ဖေါ်ပြရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation type="unfinished">ဒီကီးရဲ့ အသေးစိတ်ကို ဖေါ်ပြရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">ဖိုင်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">တည်းဖြတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation type="unfinished">စာဝှက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation type="unfinished">ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation type="unfinished">ကီးကို တင်သွင်းလာမဲ့ နေရာ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation type="unfinished">အကြောင်းအရာ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation type="unfinished">ကြည့်ရှုရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">အကူအညီ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation type="unfinished">စာဝှက်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation type="unfinished">ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation type="unfinished">တည်းဖြတ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation type="unfinished">အဆင်သင့်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation type="unfinished">စာဝှက်မဲ့အချက် -</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation type="unfinished">ပူးတွဲထားတဲ့ ဖိုင်များ -</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation type="unfinished">ပူးတွဲထားတဲ့ ဖိုင်ထဲမှာ စာဝှက်မထားတဲ့ ဖိုင်တခု ရှိတယ်</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>ပရင့်ထုတ်နိုင်တဲ့ ကိုးကားချက်ကို စာဝှက်ဖေါ်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>ပရင့်ထုတ်နိုင်တဲ့ ကိုးကားချက်ကို မှတ်မိအောင် ကြိုးစားပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>PGP/MIME ကို ပိုင်းခြားစိစစ်ရန် (အစမ်းသဘော)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>PGP-MIME ထဲက စာဝှက်ထားတဲ့ စာတွေထဲမှာ ပါ၀င်တဲ့ ပူးတွဲဖိုင်များ​ကို ခွဲခြမ်းကြည့်ပါ။</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>ပြင်ပ လုပ်ငန်းသုံး ဆော့ဗ်ဝဲကို အသုံးပြုပြီး ဖွင့်ပါ (အစမ်းသဘော)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>ပူးတွဲဖိုင်တွေကို ဖွင့်နိုင်တဲ့ ပုံမှန် လုပ်ငန်းသုံး ဆော့ဗ်ဝဲကို အသုံးပြုပြီး ဖွင့်လိုက်ပါ။&lt;br&gt;ဒီလုပ်ဆောင်ချက်မှာ ဖြစ်ပေါ်လာနိုင်တဲ့ ပြဿာနာ အနည်းဆုံး နှစ်ခု ရှိတယ် -&lt;ol&gt;&lt;li&gt;ဖိုင်ကို စာဝှက်မထားပဲ ပူးတွဲဖိုင်တွဲထဲမှာ သိမ်းဆည်းဖို့ လိုအပ်တယ်။&lt;br&gt;ဒီဖိုင်တွဲကို ရှင်းလင်းဖို့အတွက် သင့်မှာ တာ၀န် ရှိတယ်။&lt;/li&gt;&lt;li&gt;ပြင်ပ လုပ်ငန်းသုံး ဆော့ဗ်ဝဲမှာ သူ့ကိုယ်ပိုင် ယာယီဖိုင်​တွေ ​ရှိနေနိုင်တယ်။&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>ပြင်ပ လုပ်ငန်းသုံး ဆော့ဗ်ဝဲများကို အသုံးပြုပြီး ဖွင့်ထားပါ။</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>သိမ်းဆည်းမထားတဲ့ ဖိုင်များ</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;ဖိုင် %1 ခုမှာ သိမ်းဆည်းမထားတဲ့ အချက်အလက်တွေ ရှိနေတယ်။&lt;br/&gt;မပိတ်ခင် ပြင်ဆင်ချက်တွေကို သိမ်းဆည်းမလား။&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>သင် သိမ်းဆည်းလိုတဲ့ ဖိုင်များကို ရွေးချယ်ရန် -</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;မှတ်ချက် -&lt;/b&gt; အဲဒီဖိုင်များကို သိမ်းဆည်းမထားရင်၊ ပြင်ဆင်ချက်တွေ အားလုံး ပျောက်သွားမှာ ဖြစ်တယ်။&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>အထွေထွေ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>ပုံပန်းသဏ္ဍာန်</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>ကီးဆာဗာ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>ချိန်ညှိချက်များ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation type="unfinished">နည်းစနစ် သတ်မှတ်ချက်</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>အမည်မသိ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>ဖိုင်ကို ဖွင့်ရန်</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>လုပ်ငန်းသုံး ဆော့ဗ်ဝဲ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>ဖုိင်</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>သိမ်းဆည်းမထားတဲ့ မှတ်တမ်းမှတ်ရာများ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;မှတ်တမ်းမှတ်ရာ &quot;%1&quot; ကို ပြုပြင်ထားတယ်။&lt;br/&gt;ပြင်ဆင်ချက်တွေကို သိမ်းဆည်းထားမလား။&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;မှတ်ချက် -&lt;/b&gt; အဲဒီဖိုင်များကို သိမ်းဆည်းမထားရင်၊ ပြင်ဆင်ချက်တွေ အားလုံး ပျောက်သွားလိမ့်မယ်။&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>လက်မှတ် အသေးစိတ်</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>လက်မှတ်ကို အတည်ပြုနေစဉ် အမှားအယွင်း ဖြစ်ပေါ်နေတယ်</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>ကီး​ဆာဗာကနေ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>အနေအထား -</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>လက်ဗွေ -</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>ကီးစာရင်းထဲမှာ မပါ၀င်တဲ့ ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>id 0x မပါ၀င်တဲ့ ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>နာမည် -</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>အီးမေးလ် -</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>အိုကေ</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>id 0x ပါတဲ့ ကီးရဲ့ မှားယွင်းချက်</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>ပျောက်သွားတဲ့ ကီးကို ကီးဆာဗာကနေ တင်သွင်းရန်</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>အသေးစိတ် အတည်ပြုချက်များကို ဖေါ်ပြရန်</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>id 0x မပါတဲ့ ကီး</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_pl.ts b/release/ts/gpg4usb_pl.ts
new file mode 100644
index 00000000..5e49b00b
--- /dev/null
+++ b/release/ts/gpg4usb_pl.ts
@@ -0,0 +1,1982 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Pokaż opcje steganografii [Zaawansowane]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Pokaż opcje Steganographic.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Rozmiar ikon</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>małe</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>średnie</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>duże</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Styl ikon</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>tylko tekst</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>tylko uikony</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>tekst i ikony</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Stan okna</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Zapisz rozmiar okna i pozycję przy wyjściu.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Nazwa pliku</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Typ zawartości</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Zapisz plik</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Zapisz ten plik</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Otwórz plik</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Otwórz ten plik</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Plik</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Nie można zapisać pliku %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Wybierz akcję ...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>... klikając odnośniki do odpowiednich linków.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Jeżeli nigdy nie używałeś gpg4usb i nie masz klucza gpg może ewentualnie chcesz</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation> utworzyć nową parę kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>W przypadku uaktualnienia z poprzedniej wersji gpg4usb możesz</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation> Importować ustawienia/lub klucze z gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Jeśli już korzystałeś z GnuPG możesz</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation> importować klucze GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Gotowe</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Miłej zabawy z gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Jesteś teraz gotowy do pracy z gpg4usb.&lt;br&gt;&lt;br&gt;Pomoc online zostanie wyświetlona w głównym oknie gpg4usb..&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Otwórz pomoc online</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Nie pokazuj kreatora ponownie.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Szyfrowanie / deszyfrowanie plików</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Plik</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Działanie</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Deszyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Szyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Wejście</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Wyjście</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Szyfracja</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Deszyfracja</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Otwórz plik</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Zapisz plik</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Nie można otworzyć pliku:</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Nie można zapisać pliku %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Plik już istnieje! Czy chcesz go zastąpić?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Zapamiętaj hasło</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Zapamiętaj hasło aż do zamknięcia gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Zapisz sprawdzone klucze</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Zapisz sprawdzane prywatne klucze przy wyjściu i przywróć je przy następnym starcie.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Potwierdź przeciągając Import klucza</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Import plików upuszczony na liście kluczy bez potwierdzenia.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Język</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Nie wybrano klucza</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;Żaden prywatny klucz z id %1 obecny w kręgu kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Nieobsługiwany algorytm</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Błąd deszyfrowania:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Błędne hasło</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Wprowadź hasło dla</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Wprowadź hasło</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Wybierz klucz</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Nie wybrano żadnego klucza</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Błąd podpisu:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Import kluczy...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>... z istniejącej instalacji GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Można importować klucze z lokalnie zainstalowanych GnuPG.&lt;br&gt;&lt;br&gt; Lokalizacja jest odczytywana z rejestru w systemie Windows lub zakłada się. Folder GnuPG w katalogu domowym w Linuksie.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Importuj klucze GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Błąd importu</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Nie można znaleźć katalogu domowego GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Importuj z ...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>Istniejący gpg4usb ...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Można zaimportować klucze i/lub ustawienia z gpg4usb. &lt;br&gt;&lt;br&gt;Wystarczy sprawdzić, co chcesz zaimportować, kliknij przycisk Importuj i wybierz katalog dla innego gpg4usb w oknie znajdującym się poniżej.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Klucze</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Konfiguracja</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Importuj z gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Inny katalog gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Konfiguracja Importu</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translatorcomment>Importuj konfigurację ze starego gpg4usb.&lt;br&gt;Czy teraz ponownie uaktywnić konfigurację.</translatorcomment>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Pierwsze kroki ...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>... z gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Aby korzystać z gpg4usb do odszyfrowania i podpisywania wiadomości, musisz mieć klucz prywatny.Następna strona pomoże Ci wygenerować lub importować klucz.&lt;br&gt;&lt;br&gt;Aby uzyskać więcej informacji zajrzyj na &lt;a href=&apos;docu_concepts.html&apos;&gt;koncepcje&lt;/a&gt; (klikając na link, strona otworzy się w głównym oknie). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Wybierz język</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Dane właściciela</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Dane klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Odcisk palca</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>Dodatkowe uid</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Nazwa:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>Email</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Komentarz:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Wygasa:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Utworzony:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>ID klucza:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>kopiuj do schowka odcisk palca</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Uwaga: Klucz wygasł</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Uwaga: Klucz uniewarzniony</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Dane klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Masz zamiar wyeksportować klucz prywatny.
+To nie jest twój klucz publiczny, więc nie rozdawaj go.
+Upewnij się czy zapisałeś klucz. Czy na pewno chcesz eksportować klucz prywatny?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Pliki klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Błąd eksportu</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Nie można otworzyć %1 do zapisu</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Rozmiar klucza:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Algorytm</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Nigdy</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Nigdy</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Klucz prywatny</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Eksportuj klucz prywatny</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Eksportowanie klucza prywatnego</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Eksportuj klucz do pliku</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Generowanie klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Siła hasła</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Nazwa:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>E-mail:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>komentarz:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Data ważności:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>Nigdy nie wygasa</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Rozmiar klucza (w bitach):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Hasło:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Hasło: Siła
+Słabe -&gt; Mocne</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Powtórz hasło:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation>Nazwa musi zawierać co najmniej pięć znaków.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation>Hasło i Powtórz nie pasują.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Generowanie klucza ...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Gromadzenie losowych danych dla generowania kluczy.
+To może trochę potrwać.
+Aby przyspieszyć proces korzystania z komputera
+(np. surfowania po Internecie, słuchania muzyki, ...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Powodzenie</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Nowy klucz utworzony</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Utwórz parę kluczy ...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>... do deszyfrowania i podpisywania wiadomości</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Należy utworzyć nową parę kluczy.Para składa się z klucza publicznego i klucza prywatnego.&lt;br&gt;Inni użytkownicy mogą używać klucza publicznego do szyfrowania wiadomości dla ciebie i weryfikacji wiadomości podpisanych przez ciebie.Możesz użyć klucza prywatnego do odszyfrowania i podpisywania wiadomości.&lt;br&gt;Aby uzyskać więcej informacji zajrzyj na offline samouczek (który jest wyświetlany w oknie głównym):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Offline samouczek</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Utwórz nowy klucz</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>Szczegóły importu klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Nie można odszukać klucza do importu</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Ogólne info o imporcie klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Wziąć pod uwagę:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Publiczne niezmienione:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Importowane:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Nie importowane</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Prywatny odczyt:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Prywatny import:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Prywatne bez zmian:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>Email</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Odcisk palca</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>prywatny</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>publiczny</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>bez zmian</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>nowy klucz</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>podklucz</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>nowy podpis</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>nowy uid</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>EMail</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Import klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Coś upuszczone na liście kluczy.
+gpg4usb będzie teraz próbować importować klucz(e).</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Zawsze import bez przeszkadzania.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Nie można otworzyć pliku:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Zarządzanie kluczami</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;Zamknij zarządzanie kluczami</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Zamknij zarządzanie kluczami</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Importuj nowy klucz z pliku</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Importuj nowy klucz ze schowka</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Klucz serwera</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Importuj nowy klucz z serwera kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Eksportuj do &amp;schowka</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Eksportuj wybrany klucz(e) do schowka</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Eksportuj do &amp;pliku</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Eksportuj wybrany klucz(e) do pliku</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Usuń wybrany klucz(e)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Usuń wybrane klucze</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Usuń zaznaczony klucz(e)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Usuń sprawdzone klucze</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Generowanie klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Generowanie nowego klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Pokaż szczegóły klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Wyświetl szczegóły dla tego klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Importuj klucz</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>Importuj klucz z</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>Klucz(e) eksportowane</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Schowek</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;Klucz</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importuj klucz z...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Klucz</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Otwórz klucz</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Pliki klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Pliki pierścieniowe klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Nie można otworzyć pliku:</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Usuwanie kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Czy na pewno chcesz usunąć następujące klucze?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Akcji nie można cofnąć.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Eksportuj klucz do pliku</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zamknij</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Import</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Szukaj</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Szukaj ciągu znaków</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Serwer klucza</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Importuj klucz z serwera kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Data utworzenia</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>Klucz ID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Znacznik</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Nie można skontaktować się z serwerem kluczy!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Zbyt wiele odpowiedzi z serwera kluczy!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Nie znaleziono kluczy, wejście może być kexId, ponawianie wyszukiwania 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Nie znaleziono klucza zawierającego wyszukiwany ciąg!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Niedostatecznie konkretny ciąg wyszukiwania!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>odwołany</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>wyłączony</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 Kluczy znaleziono. Kliknij dwukrotnie na klucz aby go importować.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Błąd podczas kontaktu z serwerem kluczy!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>klucz importowany</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Domyślny klucz serwera do importu</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Nowy</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Otwórz nowy plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>Otwórz ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Otwórz istniejący plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Zapisz</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Zapisz bieżący plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>Zapisz &amp; jako</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Zapisz bieżący plik jako ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Drukuj</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Drukuj dokument</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Zamknij</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Zamknij plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Wyjście</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Zamknij program</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Cofnij</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Cofnij ostatnią czynność</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Ponów</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Ponów ostatnią czynność</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>Powiększ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Pomniejsz</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Wklej</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Wklej tekst ze schowka</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>W&amp;ytnij</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Wytnij aktualną zaznaczoną zawartość do schowka</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopiuj</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Kopiuj aktualną zaznaczoną zawartość do schowka</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;Cytat</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Zacytuj cały tekst</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>Zaznacz&amp; wszystko</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Zaznacz cały tekst</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>Usuń &amp;odstępy</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Usuń podwójne podziały wierszy, l.e.g. w wklejonego tekstu z internetowej ulotki</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>Ust&amp;awienia</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Otwórz okno ustawień</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>Szyfruj</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Szyfruj wiadomość</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>Deszyfruj</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Deszyfruj wiadomość</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>&amp;Szyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Szyfruj/Deszyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Szyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Szyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Deszyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Deszyfruj plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Podpisz</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Podpisz wiadomość</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;Weryfikuj</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Weryfikuj wiadomość</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>&amp;Edytor</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Importuj nowy klucz z edytora</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>Zarządzanie &amp;kluczami</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Otwórz Zarządzanie kluczami</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;O programie</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Pokaż okno o programie</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Zintegrowana pomoc</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Otwórz zintegrowana pomoc</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>Pomoc techniczna &amp;online</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Otwórz przewodniki online</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Tłumacz gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Tłumacz gpg4usb samodzielnie</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>Otwórz &amp;kreatora</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Otwórz kreatora</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Dołącz wybrany klucz(e) do tekstu</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Dołącz wybrany klucz(e) do tekstu w edytorze</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>kopiuj email</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Kopiuje zaznaczony e-mail do schowka</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Pokaż szczegócza klucza</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Wyświetlanie szczegółów dla tego klucza</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edycja</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Szyfracja</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>&amp;Klucz</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importuj klucz z...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Steganografia</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Aplikacja ta umożliwia proste szyfrowanie &lt;br&gt;i deszyfrowanie wiadomości tekstowych lub plików.&lt;br&gt;Jest oparta na licencji GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Twórca:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Tłumaczenie:&lt;/b&gt;&lt;br&gt; Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Jeśli masz jakieś pytania lub propozycje odwiedź&lt;br/&gt; naszą stronę &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;Strona domowa&lt;/a&gt; lub wyślij e-mail do naszej&lt;br/&gt; Listy dyskusyjnej na &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Usuń nagłówek PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Dodaj nagłówek PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;Widok</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Pomoc</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Plik</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Klucz</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Edycja</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Specjalna edycja</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Importuj klucz z ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Importuj klucz</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Szyfrowanie i deszyfrowanie plików</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Plik...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Gotowy</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>Szyfruj dla:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Dołączone pliki:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">O programie</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;Aplikacja ta umożliwia proste szyfrowanie &lt;br&gt;i deszyfrowanie wiadomości tekstowych lub plików.&lt;br&gt;Jest oparta na licencji GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Twórca:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Tłumaczenie:&lt;/b&gt;&lt;br&gt; Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Jeśli masz jakieś pytania lub propozycje odwiedź&lt;br/&gt; naszą stronę &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;Strona domowa&lt;/a&gt; lub wyślij e-mail do naszej&lt;br/&gt; Listy dyskusyjnej na &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Tam jest jeden plik w folderze niezaszyfrowanych załączników</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Istnieją</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation>niezaszyfrowane pliki w folderze załączników</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Dekodowanie cytatu do druku</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Spróbuj rozpoznać cytat do druku.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Analizuj PGP/MIME (Eksperymentalna)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Spróbuj podzielić załączniki z PGP-MIME zaszyfrowanych wiadomości.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Otwórz za pomocą zewnętrznej aplikacji (eksperymentalne)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Otwarcie załącznika za pomocą domyślnej aplikacji dla typu pliku.&lt;br&gt; Istnieją co najmniej dwa możliwe problemy z tego zachowania:&lt;ol&gt;&lt;li&gt;Plik musi być zapisany niazaszyfrowany do folderu z załącznikami.&lt;br&gt;Twoim zadaniem jest oczyścić ten folder.&lt;/li&gt;&lt;li&gt;Zewnętrzna aplikacja może mieć swoje własne pliki tymczasowe.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Włącz otwieranie z zewnętrznymi aplikacjami.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Niezapisane pliki</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 pliki zawierają niezapisane dane.&lt;br/&gt;Zapisać zmiany przed zamknięciem?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Sprawdź pliki, które chcesz zapisać:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Uwaga:&lt;/b&gt; Jeżeli nie zapiszesz tych plików, to wszystkie zmiany zostaną utracone.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Ogólne</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Wygląd</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Klucz serwera</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Zaawansowane</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Ustawienia</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Domyślny systemowy</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>bez tytułu</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Otwórz plik</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Aplikacja</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Nie można odczytać pliku %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Plik</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Nie można zapisać pliku %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Zapisz plik</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Niezapisane dokumenty</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;Dokument &quot;%1&quot; został zmodyfikowany.&lt;br/&gt;Chcesz zapisać zmiany?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Uwaga:&lt;/b&gt; Jeżeli nie zapiszesz tych plików, to wszystkie zmiany zostaną utracone.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Szczegóły podpisu</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Błąd Sprawdzania podpisu</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>Tekst został całkowicie podpisany
+ %1 przez:</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>Tekst został częściowo podpisany
+ %1 przez:</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>importu z serwera kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Status:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Odcisk palca:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Klucz nie występuje na liście kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Klucz nie występuje o identyfikatorze 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Nazwa:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>EMail:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Błąd dla klucza z id 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Import brakujących kluczy z serwera kluczy</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Pokaż szczegółowo zweryfikowane informacje</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Szczegóły</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Klucz nie występuje o identyfikatorze 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Błąd weryfikacji podpisu przez:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>Tekst został całkowicie podpisany przez:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>Tekst został częściowo podpisany przez:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Błąd dla klucza z odciskiem palca</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Pierwszy start kreatora</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Błąd importu</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Nie można znaleźć żadnego pliku klucza pierścień w %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Błąd importu</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Nie można otworzyć pliku klucza prywatnego pierścień: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translatorcomment>Nie można otworzyć klucza publicznego plik pierścień</translatorcomment>
+ <translation>Couldn&apos;t open public keyringfile: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_pt_BR.ts b/release/ts/gpg4usb_pt_BR.ts
new file mode 100644
index 00000000..0beb82a3
--- /dev/null
+++ b/release/ts/gpg4usb_pt_BR.ts
@@ -0,0 +1,1984 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="pt_BR">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Exibir Opções de Esteganografia [Avançado]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Exibir Opções de Esteganografia.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Tamanho do ícone</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>pequeno</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>médio</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>grande</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Estilo do ícone</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>somente texto</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>somente ícones</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>texto e ícones</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Status da Janela</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Salvar tamanho e posição da janela na saída.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Nome do Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Tipo</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Salvar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Salvar esse arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Abrir Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Abrir o arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Não escreveu o arquivo %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Selecione sua ação...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...clicando no link apropriado.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Caso você nunca tenha usado o gpg4usb antes e tambem não possua uma chave gpg você pode querer </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>criar um novo par de chaves</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Caso tenha atualizado de uma versão antiga do gpg4usb você pode querer </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>importar as configurações e/ou as chaves do gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Caso você já tenha usado o GnuPG você pode querer </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>importar as chaves do GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Pronto.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Divirta-se com o gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Você está pronto para usar o gpg4usb.&lt;br&gt;&lt;br&gt;A ajuda offline permitirá a você iniciar o uso do gpg4usb e será aberto na janela principal.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Abrir ajuda offline.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Não exibir o auxiliar novamente.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Encriptar / Decriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Ação</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Decriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Encriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Entrada</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Saída</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Encriptar</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Decriptar</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Abrir Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Não pode abrir o arquivo:</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>O arquivo existe! Deseja sobreescrever?</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Salvar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Não escreveu o arquivo %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Lembrar a Senha</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Lembrar a senha até fechar o programa</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Salvar chaves marcadas</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Salvar chaves privadas selecionadas na saída e restaurá-las na proxima execução.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Confirmar importação de chave arrastada</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Importar arquivos arrastados para lista de chaves sem confirmação.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Idioma</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Chave não selecionada</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;Não existe Chave privada com o id %1 presente no chaveiro</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Algorítmo não suportado</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Erro ao decriptar:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Senha errada</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Insira a Senha para</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Insira a Senha</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Seleção de chave</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Chave privada não selecionada</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Erro ao assinar:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Importar chaves...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...da instalação existente do GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Você pode importar as chaves do local de instalação do GnuPG.&lt;br&gt;&lt;br&gt; A localização é lida do registro do Windows ou presume-se que seja a pasta .gnupg no diretorio home do Linux.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Importar chaves do GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Erro ao importar</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Não conseguiu localizar a pasta do GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Importar de...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...gpg4usb existente</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Você pode importar as chaves e/ou configurações de um gpg4usb existente. &lt;br&gt;&lt;br&gt;Selecione o que você deseja importar, click o botão importar e escolha a pasta de seu outro gpg4usb na caixa de diálogo.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Configuração</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Importar do gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Pasta do outro gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Configuração importada</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Configuração importada do antigo gpg4usb.&lt;br&gt;Agora irá reiniciar para ativar a configuração.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Primeiros passos...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>... com o gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Para usar o gpg4usb para decriptar e assinar mensagens, você precisa de uma chave privada. A proxima página irá ajudá-lo com a geração ou importação de chaves.&lt;br&gt;&lt;br&gt;Para mais informações acesse &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (clicando no link, a página será aberta na janela principal).&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Escolha o Idioma</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Detalhes do Proprietário</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Detalhes da chave</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Assinatura digital</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>Uids adicionais</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Nome:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>Endereço de E-Mail:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Comentários:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Expira em:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Criada em:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>ID da Chave: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>copiar assinatura para área de transferência</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Aviso: Chave Expirada</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Alerta: Chave revogada</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Detalhes da chave</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Você esta prestes a exportar sua chave privada.
+Essa NÃO é sua chave pública, portanto não a distribua.
+Tenha certeza de mantê-la segura. Você realmente deseja exportar sua chave privada?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Arquivos de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Erro ao exportar</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Não pode abrir %1 para escrita</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Tamanho da chave:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Algoritmo: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Nunca</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Nunca</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Chave Privada</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Exportar Chave Privada</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Exportando Chave Privada</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Exportar Chave para Arquivo</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Gerar Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Nome:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>Comentários:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Tamanho da Chave (bits):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Data de expiração:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Senha:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Repetir a Senha:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>Nunca Expira</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Força da Senha:
+Fraca -&gt; Forte</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Força da Senha</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>Endereço de E-Mail:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation> O nome deve conter pelo menos cinco caracteres.
+</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation> As senhas não conferem. </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Gerando as Chaves...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Coletando dados aleatórios para a geração da chave.
+ Isso pode demorar um pouco.
+ Para agilizar o processo use seu computador
+ (ex: navegue na internet, ouça música,...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Sucesso</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Nova chave criada</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Criar um par de chaves...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>... para decriptar e assinar mensagens</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Você deve criar um novo par de chaves. O par consiste na chave pública e privada.&lt;br&gt;Outros usuários podem usar sua chave pública para encriptar mensagens para você e verificar mensagens assinadas por você. Você pode utilizar a chave privada para decriptar e assinar mensagens.&lt;br&gt;Para mais informações. acesse o tutorial offline (através da janela principal):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Tutorial Offline</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Criar Nova Chave</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>detalhes da importação da chave</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Não encontrada chaves para importar</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Informações gerais de importação da chave</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Considerado:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Pública não alterada:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Importado:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Não importado:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Privada lida:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Privada importada:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Privada não alterada:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Nome</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>Email</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Assinatura digital</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>privada</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>pública</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>não alterada</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>nova chave</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>nova subchave</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>nova assinatura</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>novo uid</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Nome</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>Email</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Importar Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Você arrastou algo na lista de chaves.
+gpg4usb tentará importar a(s) chave(s).</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Sempre importar sem incomodar.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Não Pode Abrir o Arquivo:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Gerenciador de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;Fechar Gerenciador de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translatorcomment>????? what is this accelerator?????</translatorcomment>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Fechar Gerenciador de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Importar Nova Chave do Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Importar Nova Chave da Área de Transferência</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Servidor de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Importar Nova Chave do Servidor de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Exportar para Área de &amp;Transferência</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Exportar chaves marcadas para Área de Transferência</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Exportar para &amp;Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Exportar Chaves Marcadas para Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Excluir Chaves Selecionadas</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Excluir Chaves Selecionadas</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Excluir Chaves Marcadas</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Excluir Chaves Marcadas</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Gerar Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Gerar Nova Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Exibir detalhes da chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Exibir Detalhes da Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importar Chave de...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Importar chave </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>importar as chaves do</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>Chave(s) exportadas</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>Área de &amp;Transferência</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Abrir Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Arquivos de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Arquivos de chaveiros</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Não Pode Abrir o Arquivo: </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Exluindo as Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Você tem certeza que deseja excluir as seguintes chaves?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Essa ação não poderá ser desfeita.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Exportar Chave para Arquivo</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Fechar</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Importar</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Buscar</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Texto de pesquisa:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Servidor de chaves:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Importar Chaves do Servidor de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Data de Criação</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>ID da Chave</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Tag</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Não foi possivel acessar o servidor de chaves!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Muitas respostas do Servidor de Chaves!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Não foram localizadas chaves, a entrada deve ser kexID, tente uma nova pesquisa com 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Não foram encontradas chaves com o texto da pesquisa!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Texto da pesquisa insuficiente!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>revogado</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>desabilitado</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 chaves encontradas. Dê um duplo clique na chave para importá-la.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Erro durante a conexão com o servidor de chaves!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Chave importada</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Servidor de Chaves Padrão para importação:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Novo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Abrir um novo arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Abrir...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Abrir um arquivo existente</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Salvar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Salvar o arquivo atual</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>Salvar Co&amp;mo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Salvar o arquivo atual como...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Imprimir</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Imprimir Documento</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Fechar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Fechar o arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>Sai&amp;r</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Sair</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Desfazer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Desfazer Última Edição</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Repetir</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Repete a última ação de edição</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>Zoom +</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Zoom -</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Colar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Colar Texto da Área de Transferência</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Recortar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Recortar a seleção atual para a Área de Transferência</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Copiar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Copiar a seleção para a área de transferência</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;Destacar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Destacar todo o texto</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>Selecionar &amp;Tudo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Selecionar todo texto</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>Remover &amp;Espaçamento</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>Gerenciar &amp;Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Ajuda Integrada</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Abrir Ajuda Integrada</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>&amp;Tutoriais Online</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Abrir Tutoriais Online</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Importar chaves de...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Importar chave </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Encriptar ou decriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Arquivo.. </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>Sobre</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;Esse programa permite a encriptação e a&lt;br&gt;decriptação de mensagens de texto ou arquivos.&lt;br&gt;Distribuido sob a licença GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Desenvolvedores:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Tradução:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Caso tenha dúvidas ou sugestões acesse nossa&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;página de contato&lt;/a&gt; ou envie um email para nossa&lt;br/&gt; lista de email em &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt; Criado com Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> e GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Remover quebras de linha duplicadas, como ocorre quando colamos o texto do webmail</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>Con&amp;figurações</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Abrir janela de configurações</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Encriptar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Encriptar Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Decriptar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Decriptar Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>Encriptar &amp;Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Encriptar/Decriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Encriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Encriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Decriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Decriptar Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Assinar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Assinar Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;Verificar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Verificar a Mensagem</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>&amp;Editor</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Importar Nova Chave do Editor</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Abrir Gerenciador de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;Sobre</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Exibe a janela &apos;sobre&apos;</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Traduzir gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Traduza o gpg4usb você mesmo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>Abrir o &amp;Auxiliar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Abrir o Auxiliar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Anexar Chave(s) Selecionada(s) ao Texto</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Anexar Chave(s) Selecionada(s) ao Texto no Editor</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>Copiar o endereço de EMail</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Copiar o endereço de EMail selecionado para a área de transferência</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Exibir detalhes da chave</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Exibir Detalhes da Chave</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>E&amp;ditar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Encriptar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>&amp;Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importar Chave de...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Esteganografia</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Remover cabeçalho PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Incluir cabeçalho PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>E&amp;xibir</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>A&amp;juda</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>Encriptar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Chave</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Editar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Edição especial</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Pronto</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>Encriptar para:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Arquivos anexos:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">Sobre </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Esse programa permite a encriptação e a&lt;br&gt;decriptação de mensagens de texto ou arquivos.&lt;br&gt;Distribuido sob a licença GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Desenvolvedores:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Tradução:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Caso tenha dúvidas ou sugestões acesse nossa&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;página de contato&lt;/a&gt; ou envie um email para nossa&lt;br/&gt; lista de email em &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Há um arquivo não decriptado na pasta de anexos</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Existem </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation> arquivos não decriptados na pasta de anexos</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Decodificar mensagem original imprimível</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Tentar identificar mensagem original imprimível.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Analisar PGP/MIME (Experimental)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Tentar separar os anexos das mensagens PGP-MIME encriptadas.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Abrir com programa externo (Experimental)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Abrir anexos com a aplicação padrão para o tipo de arquivo.&lt;br&gt; Existem pelo menos dois possíveis problemas com esse comportamento:&lt;ol&gt;&lt;li&gt; A arquivo precisa ser salvo decriptado na pasta de anexos.&lt;br&gt; É sua função limpar essa pasta.&lt;/li&gt;&lt;li&gt;O aplicativo externo deve ter sua própria pasta de arquivos temporários.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Permitir abrir com programas externos.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Arquivos não salvos</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 arquivos contém informção não salva.&lt;br/&gt;Salvar as alterações antes de fechar?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Selecione os arquivos que deseja salvar:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Nota:&lt;/b&gt; Caso não salve os arquivos, todas as alterações serão perdidas.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Configurações</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Geral</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Aparência</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Servidor de Chaves</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Avançado</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Padrão do Sistema</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>Sem Título</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Abrir arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Aplicação</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Não leu o arquivo %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Não escreveu o arquivo %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Salvar o arquivo</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Documento não salvo</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;O documento &quot;%1&quot; foi modificado.&lt;br/&gt;Deseja salvar as alterações?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Nota:&lt;/b&gt; Caso não salve os arquivos, todas as alterações serão perdidas.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Detalhes da Assinatura</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Erro durante a validação de assinatura</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>O texto foi completamente assinado em
+ %1 por:
+</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>O texto foi parcialmente assinado em
+ %1 por:
+</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Importar do servidor de chaves</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Estado:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Assinatura digital:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Chave não presente na lista de chaves</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Chave com ID 0x não está presente</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Nome:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>EMail:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Erro para a chave com ID 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Importar chaves inexistentes do servidor de chaves</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Exibir informação de verificação detalhada</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Detalhes</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Chave com ID 0x não está presente</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Erro durante a validação de assinatura por: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>O texto foi completamente assinado por: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>O texto foi parcialmente assinado por: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Erro de chave com assinatura digital </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Auxiliar de Primeiro Uso</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Erro ao importar</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Não conseguiu localizar nenhum chaveiro no arquivo %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Erro ao importar</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Não conseguiu abrir o chaveiro privado: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>Não conseguiu abrir o chaveiro público: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_ru.ts b/release/ts/gpg4usb_ru.ts
new file mode 100644
index 00000000..28ecadb1
--- /dev/null
+++ b/release/ts/gpg4usb_ru.ts
@@ -0,0 +1,1980 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Стеганографические опции [для экспертов]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Показать стеганографические опции в меню.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Размер значков</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>Маленький</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>Средний</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>Большой</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Стиль панелей инструментов</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>Только текст</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>Только значки</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>Значки и текст</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Настройки окна</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Запоминать размер и положение окна при выходе.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Имя файла</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Тип содержимого</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Сохранить файл</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Сохранить этот файл</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Открыть файл</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Открыть этот файл</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Не удалось записать файл %1:
+ %2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Выберите действие...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...нажатием на соответствующую ссылку.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Если вы ранее не использовали gpg4usb и не имеете своих ключей openPGP, то может вы захотите </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>создать новую ключевую пару</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Если вы обновляете старую версию gpg4usb, может быть вы захотите </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>импортировать настройки и/или ключи из gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Если вы уже используете GnuPG, быть может вам захочется </translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>импортировать ключи из GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Готово.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Удачного использования gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Теперь вы готовы к использованию gpg4usb.&lt;br&gt;&lt;br&gt;Встроенная справка (англ.) поможет вам освоить gpg4usb.&lt;br&gt;Она откроется в главном окне.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Открыть встроенную справку.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Не открывать этот Мастер при следующем запуске.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>За-/Расшифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Действие</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Расшифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Зашифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Файл ввода</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Файл вывода</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>З&amp;ашифровать</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>Расшифро&amp;вать</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Открыть файл</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Не удалось открыть файл: </translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Такой файл уже существует. Перезаписать его?</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Сохранить файл</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Не удалось записать файл %1:
+ %2.</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Запомнить Пароль</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Помнить Пароль до завершения gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Сохранение выбора ключей</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Запоминать отмеченные ключи при выходе и выделять их при следующем запуске.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Подтвержение импорта ключа перетаскиванием мышью</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Без подтверждения импортировать файл, перетянутый мышью в список ключей.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Язык</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Не выбран Ключ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;В связке нет Секретного Ключа с ID %1</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Неподдерживаемый алгоритм</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Ошибка расшифровки:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Неверный Пароль</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Ввести пароль для</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Введите Пароль</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Выбор Ключа</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Не выбран Секретный Ключ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Ошибка подписания:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Импорт ключей...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...из имеющейся инсталляции GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Вы можете импортировать ключи из локальной установки GnuPG.&lt;br&gt;&lt;br&gt;Путь считывается из реестра Windows или предполагается папка .gnupg домашнего каталога пользователя под Linux.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Импортировать ключи из GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Ошибка импорта</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Не могу найти папку ключей GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Импорт из...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...имеющегося gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Вы можете импортировать ключи и/или настройки из уже имеющегося gpg4usb &lt;br&gt;&lt;br&gt;Просто отметьте, что вы хотите импортировать, нажмите на кнопку &quot;Импорт из gpg4usb&quot; и в возникшем окне укажите путь к папке прежнего gpg4usb.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Ключи</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Настройки</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Импорт из gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Другая папка gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Настройки импортированы</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Настройки успешно импортированы из прежнего gpg4usb. &lt;br&gt;Перезапускаюсь для активации новых настроек.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Первые шаги...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>...с gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>Чтобы использовать gpg4usb для подписания и расшифрования сообщений вам потребуется Секретный Ключ. Следующая страница поможет вам его создать или импортировать.&lt;br&gt;&lt;br&gt;Подробности смотрите в главе &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; встроенной справки &lt;br&gt;(при нажатии на ссылку страница откроется в главном окне). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Выберите язык</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Владелец</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Свойства ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Отпечаток</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>Дополнительные идентификаторы пользователя (UID)</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Имя:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>Адрес eMail:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Истекает:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Создан:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>ID ключа:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>Копировать отпечаток в Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Предупреждение: ключ просрочен</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Предупреждение: ключ отозван</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Свойства ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Вы собираетесь экспортировать свой Секретный Ключ.
+Это НЕ публичный ключ, никогда и никому его
+не передавайте и храните его в надёжном месте.
+Вы уверены, что хотите экспортировать Секретный Ключ?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Файлы ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Ошибка экспорта</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Не удалось открыть %1 для записи</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Длина ключа:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Алгоритм: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Никогда</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Никогда</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Секретный ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Экспортировать Секретный Ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Экспорт Секретного Ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Экспорт ключа в файл</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Генерировать ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Надёжность Пароля</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Имя:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>Адрес eMail:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>Комментарий:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Истекает:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>без срока годности</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Длина ключа (бит):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Пароль:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Надёжность Пароля
+Слабый -&gt; Стойкий</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Повторите Пароль:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation> Имя должно быть длиной не менее 5 букв.
+</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation>Повторно введённый Пароль не совпал.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Генерация ключа...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Сбор случайных данных для генерации ключа.
+Это займёт некоторое время. Можно ускорить
+процесс, активно используя компьютер (листая
+страницы интернета, слушая музыку и т.д.)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Успешно</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Новый Ключ создан</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Создание ключевой пары...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...для расшифрования и подписания сообщений</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Вам следует создать новую ключевую пару. Пара состоит из публичного (открытого) и приватного (секретного) ключей.&lt;br&gt;Открытым ключём другие пользователи смогут зашифровывать сообщения для вас и проверять вашу подпись. Секретный ключ должны использовать толко вы для расшифрования и подписания сообщений.&lt;br&gt;Подробности смотрите во встроенной справке (откроется в главном окне, англ.):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Встроенная справка</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Создать новый Ключ</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>Детали импорта ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Не найдено ключей для импорта</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Общая информация по импорту</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Обработано:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Публичных не изменено:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Импортировано:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Не импортировано:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Секретных прочтено:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Секретных импортировано:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Секретных не изменено:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Имя</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>eMail</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Статус</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Отпечаток</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>секретный</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>открытый</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>не изменён</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>новый ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>новый подключ</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>новая подпись</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>Новый UID</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Имя</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>eMail</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Импорт ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Вы перетащили что-то в список ключей.
+gpg4usb попробует импортировать ключ(и).</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Всегда импортировать не переспрашивая.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Не удалось открыть файл: </translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Менеджер ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>Закр&amp;ыть Менеджер ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Закрыть Менеджер ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Импорт нового ключа из файла</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Импорт нового ключа из Буфера Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>Сервер &amp;Ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Импорт нового ключа с сервера ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Экспорт в &amp;Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Экспорт выбранных ключей в Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Экспорт в ф&amp;айл</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Экспорт выбранных ключей в файл</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Стереть выбранн. ключ(и)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Стереть выбранные ключи</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Стереть выбранн. ключ(и)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Стереть выделенные ключи</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Генерировать ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Генерировать новый ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Показать свойства ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Показать детали для этого ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Импорт ключа из...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Импорт ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>Импорт ключа из</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>ключи экспортированы</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>Ф&amp;айл</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;Ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Открыть ключ</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Файлы ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Файлы связок ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Не удалось открыть файл: </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Удаление ключа</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Вы уверены, что хотите стереть следующие ключи?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Это действие нельзя будет отменить.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Экспорт ключа в файл</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Закрыть</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Импорт</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Поиск</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Поисковый запрос:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Сервер Ключей:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Импорт ключей с сервера ключей</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>Идентификатор пользователя (UID)</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Дата создания</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>Идентификатор Ключа (KeyID)</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Тег</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Не удалось связаться с сервером ключей!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Слишком много ответов от сервера ключей!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Не найдено ключа, запрос может быть идентификатором ключа, повторяю поиск, подставив 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Не найдено Ключей, содержащих поисковый запрос!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Поисковый запрос сформулирован слишком неопределённо!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>отозван</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>деактивирован</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>Найдено %1 ключей. Для импорта двойной клик по ключу.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Ошибка соединения с сервером ключей!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Ключ импортирован</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Сервер ключей для импорта по умолчанию:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Создать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Открыть новый файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Открыть...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Открать существующий файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Сохранить</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Сохранить файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>Сохранить &amp;как</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Сохранить файл как...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>&amp;Печать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Печать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Закрыть</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Закрыть файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>Вы&amp;йти</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Завершить программу</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Отменить</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Отменить последнее действие</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Вернуть отмену</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Вернуть последнее изменение</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>Увеличить шрифт</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Уменьшить шрифт</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Вставить</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Вставить текст из Буфера Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>&amp;Вырезать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Вырезать выделенные элементы в Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>&amp;Копировать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Копировать выделенные элементы в Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;Цитировать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Цитировать весь текст</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>В&amp;ыделить всё</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Выделить весь текст</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>Убрать &amp;переносы</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Удалить двойной перенос строк, например в тексте, вставленном из браузера</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>&amp;Настройки</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Открыть окно настроек</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>З&amp;ашифровать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Зашифровать текст</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>Расшифро&amp;вать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Расшифровать текст</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>Шифрование &amp;файлов</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>За-/Расшифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Зашифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Зашифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Расшифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Расшифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Подписать</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Подписать сообщение</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;Проверить</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Проверить сообщение</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>Окно &amp;редактора</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Импорт нового ключа из редактора</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>Менеджер &amp;ключей</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Открыть Менеджер ключей</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;О программе</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Показать инфо о программе</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Встроенная справка</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Открыть встроенную справку</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>Онлайн-&amp;руководство</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Открыть онлайн-руководство</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Перевести gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Самостоятельно перевести gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>Открыть &amp;Мастер</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Открыть Мастер</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Добавить выбранн. ключ(и) к тексту</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Добавить выбранный ключ к тексту в редакторе</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>Копировать адрес eMail</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Копировать выбранный адрес eMail в Буфер Обмена</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Показать свойства ключа</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Показать детали для этого ключа</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>Ф&amp;айл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Шифрование</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>&amp;Ключи</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Импорт ключа из...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Стеганография</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>О программе </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Удалить заголовки PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Вставить заголовки PGP</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;Вид</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Справка</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>Шифрование</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Ключ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Правка</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Особая правка</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Импорт ключа из...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Импорт ключа</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Зашифровать или расшифровать файл</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Файл..</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Готово</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation> Зашифровать для:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Прикреплённые файлы:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">О программе </translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Имеется один незашифрованный файл в папке вложений</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Имеются</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation>незашифрованные файлы в папке вложений</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Декодировка quoted printable</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Пробовать распозновать quoted printable.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Обрабатывать PGP/MIME (экспериментально)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Пробовать отделять вложения писем, зашифрованных PGP-MIME.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Открывать файлы вложений внешней программой (экспериментально)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Открытие вложений программами по умолчанию для их типов файлов.&lt;br&gt; Есть по крайней мере две возможные проблемы с такой настройкой:&lt;ol&gt;&lt;li&gt;Файлы потребуется сохранять незашифрованными в папку вложений.&lt;br&gt; Это ваша работа, зачищать эту папку.&lt;/li&gt;&lt;li&gt;Внешняя программа может иметь собственные временные файлы.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Активировать открытие файлов внешней программой.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Несохранённые файлы</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 файлов содержат несохранённую информацию.&lt;br/&gt;Сохранить изменения перед закрытием?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Проверьте файлы, которые следует сохранить:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Внимание:&lt;/b&gt; Если не сохранить файлы, все изменения будут потеряны.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Настройки</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Общие</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Внешний вид</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Сервер ключей</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Дополнительные</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Стандартнай язык системы</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>безымянный</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Открыть файл</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Приложение</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Не удалось прочесть файл %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Не удалось записать файл %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Сохранить файл</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Несохранённый документ</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;Документ &quot;%1&quot; был редактирован.&lt;br/&gt;Вы хотите сохранить изменения?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Внимание:&lt;/b&gt; Если не сохранить файлы, все изменения будут потеряны.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Детали подписи</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Ошибка проверки подписи </translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>Текст был %1 полностью подписан: </translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>Текст был %1 частично подписан: </translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Импорт с сервера ключей</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Статус:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Отпечаток:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Ключ отсутствует в списке ключей</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Отсутствует ключ с идентификатором 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Имя:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>eMail:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Ошибка ключа с идентификатором 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Импорт недостающего ключа с сервера ключей</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Показать детали проверки подписи</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Детали</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Отсутствует ключ с идентификатором 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Ошибка проверки подписи от: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>Текст был полностью подписан:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>Текст был частично подписан:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Ошибка ключа с отпечатком </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Мастер Первого Запуска</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Ошибка импорта</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Не обнаружено файлов ключей в %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Ошибка импорта</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Не удалось открыть связку секретных ключей: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>Не удалось открыть связку открытых ключей: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_sv.ts b/release/ts/gpg4usb_sv.ts
new file mode 100644
index 00000000..bf57286c
--- /dev/null
+++ b/release/ts/gpg4usb_sv.ts
@@ -0,0 +1,1983 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sv_SE" sourcelanguage="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>Visa Steganography-alternativ [Avancerat]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>Visa Steganographiska alternativ.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Ikonstorlek</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>Liten</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>Medium</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>Stor</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Ikonstil</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>Endast text</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>Endast ikoner</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>Text och ikoner</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Fönsterstatus</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Spara fönsterstorlek och position vid avslut.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Filnamn</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Innehållstyp</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Spara filen</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Spara den här filen</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Öppna filen</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Öppna den här filen</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Fil</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Kan inte skriva filen %1
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>Välj åtgärd...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...genom att klicka på lämplig länk.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>Har du aldrig använt gpg4usb tidigare och inte har någon gpg-nyckel ännu, kanske du vill</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation> skapa ett nytt nyckelpar</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>Om du uppgraderat från en äldre version av gpg4usb. kanske du vill</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation> importera inställningar och/eller nycklar från gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>Om du redan använder GnuPG, vill du kanske</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation> importera nycklar från GnuPG</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>Klar.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>Ha det så kul med gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>Du är nu redo att börja använda gpg4usb.&lt;br&gt;&lt;br&gt;Hjälpfilen kommer att hjälpa dig igång med gpg4usb. Den öppnas i programfönstret.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>Öppna hjälpfilen.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>Visa inte denna guide igen.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Kryptera/Dekryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Fil</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Åtgärd</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>Dekryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>Kryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Indata</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Utdata</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Kryptera</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Dekryptera</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Öppna fil</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Spara fil</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>Kan inte öppna filen: </translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Kan inte skriva filen %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Filen finns redan! Vill du skriva över den?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Kom ihåg lösenord</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Kom ihåg lösenord tills gpg4usb avslutas</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Spara förbockade nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Spara förbockade nycklar vid avslut, och återställ dem vid nästa start.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>&apos;Dra och släpp&apos; nyckelimport</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Importera filer som släpps i nyckellistan utan bekräftelse.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Språk</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>Ingen nyckel vald</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;Det finns ingen nyckel med ID %1, i din nyckelring</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>Algoritmen saknar stöd</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>Fel vid dekryptering:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>Fel lösenord</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>Ange lösenord för</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>Ange lösenord</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>Nyckelsamling</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>Ingen privat nyckel vald</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>Fel vid signering:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>Importera nycklar...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...från befintlig GnuPG-installation</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>Du kan importera nycklar från en lokalt installerad GnuPG.&lt;br&gt;&lt;br&gt;Lagringsplatsen läses in från Windows register, eller antas vara .gnupg-katalogen i din home-katalog i Linux.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>Importera nycklar från GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>Importfel</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>Kunde inte hitta GnuPGs programmapp</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>Importera från...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>...befinlig gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>Du kan importera nycklar och/eller inställningarfrån befintlig gpg4usb.&lt;br&gt;&lt;br&gt;Bocka för det du vill importera, klicka på import-knappen och välj katalog för din andra gpg4usb i påföljande dialog.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>Nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>Inställningar</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>Importera från gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>Annan gbg4usb-katalog</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>Inställningar importerade</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>Inställningar importerade från gammal gpg4usb.&lt;br&gt;gpg4usb kommer nu att startas omför att aktivera inställningarna.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>Kom igång...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>...med gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>För att kunna använda gpg4usb till att kryptera och signera meddelanden, behöver du en privat nyckel. Nästa sida hjälper dig att skapa eller importera en sådan nyckel.&lt;br&gt;&lt;br&gt;För mer information, se &lt;a href=&apos;docu_concepts.html&apos;&gt;konceptet&lt;/a&gt; (klicka på länken för att öppna sidan i programfönstret). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>Väl ett språk</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Ägaruppgifter</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Nyckeluppgifter</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Fingeravtryck</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>Ytterligare uid</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Namn: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>E-postadress: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Kommentar: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Upphör att gälla: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Skapad: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>Nyckel-ID: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>kopiera fingeravtryck till Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>Varning! Nyckeln har upphört att gälla</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>Varning! Nyckeln har dragits tillbaka</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Nyckeldetaljer</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>Du är på väg att exportera din privata nyckel.
+Detta är INTE din publika nyckel, så lämna inte ut den!
+Se till att förvara den säkert. Vill du exportera din privata nyckel?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Nyckelfiler</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>Exportfel</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>Kunde inte öppna %1 för skrivning</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Nyckelstorlek: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Algoritm: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Aldrig</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / Aldrig</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Privat nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Exportera privat nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Exporterar privat nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Exportera nyckel till fil</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>Skapa nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>Lösenordsstyrka</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>Namn:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>E-postadress:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>Upphör att gälla:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>Upphör aldrig</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>Nyckelstorlek (i bitar):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>Lösenord:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>Lösenordsstyrka
+Svag -&gt; Stark</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>Upprepa lösenord:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation>Namnet måste innehålla minst 5 tecken.
+</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation>Lösenorden matchar inte varandra. </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>Genererar nyckel...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>Samlar in slumpmässig data för nyckelgenerering.
+ Det här kan ta en stund.
+ Använd din dator för att snabba på processen
+ (Exempel: Surfa på nätet, lyssna på musik,...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>Åtgärden slutförd</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>Ny nyckel skapad</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>Skapa ett nyckelpar...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...för dekryptering och signering av meddelanden</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>Du skall skapa ett nytt nyckelpar. Paret består av en publik och en privat nyckel.&lt;br&gt;Andra användare kan använda din publika nyckel för att kryptera meddelanden till dig, och för att verifiera mededelanden signerade av dig. Du kan använda din privata nyckel för att dekryptera och signera meddelanden.&lt;br&gt;Se hjälpfilen för ytterligare informationl (finns i hjälpmenyn):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>Hjälpdokument</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>Skapa ny nyckel</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>Importdetaljer</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>Hittade ingen nyckel att importera</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>Generell importinformation</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>Ansedd:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>Publik oförändrad:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>Importerad:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>Inte importerad:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>Privat inläst:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>Privat importerad:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>Privat oförändrad:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>Namn</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>E-postadress</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>Fingeravtryck</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>privat</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>publik</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>oförändrad</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>ny nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>ny undernyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>ny signatur</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>nytt uid</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Namn</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>E-postadress</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Importera nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Du har släppt något på nyckellistan. gpg4usb kommer att försöka importera nycklar.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Importera alltid utan att fråga.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Kunde inte öppna filen: </translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Nyckelhantering</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;Stäng nyckelhanteraren</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Stäng nyckelhanteraren</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Importera ny nyckel från fil</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Importera ny nyckel från Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Nyckelserver</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Importera ny nyckel från nyckelserver</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Exportera till &amp;Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Exportera markerade nycklar till Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Exportera till &amp;fil</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Exportera markerade nycklar till fil</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Ta bort markerade nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Ta bort markerade nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Ta bort förbockade nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Ta bort förbockade nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Skapa nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Skapa ny nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Visa nyckeldetaljer</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Visa uppgifter om denna nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>Importera nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>Importera nyckel från</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>exporterade nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;Nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importera nyckel från...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Öppna nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Nyckelfiler</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>Nyckelringsfiler</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Kan inte öppna filen: </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Tar bort nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Vill du verkligen ta bort följande nycklar?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Åtgärden kan inte ångras.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Exportera nyckel till fil</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Stäng</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Importera</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Sök</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Söksträng:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Nyckelserver:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Importera nycklar från nyckelserver</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Skapad</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>Nyckel-ID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>Tagg</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Kunde inte ansluta till nyckelserver!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>För många svar från nyckelservern!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>Inga nycklar hittades, försöker söka på nytt med 0x.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Inga nycklar som innehåller söksträngen kan hittas!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Otillräckligt specificerad söksträng!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>återkallad</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>inaktiverad</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 nyckel/nycklar hittades. Dubbelklicka på en nyckel för att importera den.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Ett fel upstod när nyckelservern kontaktades!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Nyckel importerad</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Ordinarie nyckelserver för import:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>&amp;Nytt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>Öppna ny fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>&amp;Öppna...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>Öppna befintlig fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Spara</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>Spara aktuell fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>S&amp;para som</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>Spara aktuell fil som...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>S&amp;kriv ut</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>Skriv ut dokument</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>S&amp;täng</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>Stäng fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>&amp;Avsluta</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>Avsluta programmet</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>&amp;Ångra</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>Ångra senaste åtgärd</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>&amp;Upprepa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>Upprepa föregående åtgärd</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>Zooma in</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>Zooma ut</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>&amp;Klistra in</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>Klistra in text från Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>K&amp;lipp ut</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>Klipp ut markerat innehåll till Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>Ko&amp;piera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>Kopiera markerat innehåll till Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>&amp;Citera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>Citera text</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>&amp;Markera allt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>Markera hela texten</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>Ta bort &amp;tomma rader</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>Ta bort dubbla radbrytningar. (Ex: Inklistrad text från e-post)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>&amp;Inställningar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>Öppna inställningsdialogen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Kryptera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>Kryptera meddelande</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Dekryptera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>Dekryptera meddelande</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>&amp;Filkryptering</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>Kryptera/Dekryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>&amp;Kryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>Kryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>&amp;Dekryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>Dekryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>&amp;Signera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>Signera meddelande</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>&amp;Verifiera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>Verifiera meddelande</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>&amp;Redigerare</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>Importera ny nyckel från redigerare</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>Hantera &amp;nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>Öppna nyckelhanteringen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>&amp;Om</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>Visa programmets Om-fönster</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>Hjälp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>Öppna hjälpfilen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>Online-&amp;hjälp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>Öppna hjälp i webbläsaren</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>Översätt gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>Översätt gpg4usb själv</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>Öppna &amp;startguiden</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>Öppna startguiden</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>Bifoga markerade nycklar till text</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>Bifoga de markerade nycklarna till texten</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>Kopiera e-postadress</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>Kopiera markerad e-postadress till Urklipp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>Visa nyckeldetaljer</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>Visa detaljerad info för denna nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>&amp;Kryptering</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>&amp;Nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Importera nyckel från...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>&amp;Steganografi</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>Om</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;Detta program tillhandahåller enkel kryptering &lt;br&gt;och dekryptering av textmeddelanden och filer.&lt;br&gt;Det är licencierat under GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Utvecklarer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Översättning:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Har du några frågor eller förslag, kan du använda vår&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;kontaktsida&lt;/a&gt; eller skicka e-post till vår&lt;br/&gt; e-postlista. &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>Ta bort PGP-huvud</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>Lägg till PGP-huvud</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>&amp;Visa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Hjälp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>Arkiv</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>Kryptering</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>Nycklar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>Redigera</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>Specialredigering</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>Importera nyckel från...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>Importera nyckel</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>Kryptera eller dekryptera fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>Fil</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>Klar</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>Nyckellista</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>Bifogade filer:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">Om</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;Detta program tillhandahåller enkel kryptering &lt;br&gt;och dekryptering av textmeddelanden och filer.&lt;br&gt;Det är licencierat under GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Utvecklarer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Översättning:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;Har du några frågor eller förslag, kan du använda vår&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;kontaktsida&lt;/a&gt; eller skicka e-post till vår&lt;br/&gt; e-postlista. &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt; Byggd med Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> och GPGME</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>Det finns en okrypterad fil i bilagemappen</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>Det finns </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation> okrypterade filer i bilagemappen</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Avkoda citerade utskrivbara</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Försök att identifiera citerade utskrivbara.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Tolka PGP/MIME (Experimentellt)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Försök dela upp bifogade filer från PGP/MIME-krypterade meddelanden.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Öppna med externt program (Experimentellt)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Öppna bilagor med standardprogrammet för filtypen.&lt;br&gt; Det finns minst två möjliga problem med detta uppförande:&lt;ol&gt;&lt;li&gt;Filen måste sparas okrypterat i bilage-mappen.&lt;br&gt; Det blir ditt jobb att rensa den mappen.&lt;/li&gt;&lt;li&gt;Det externa programmet kanske har sina egna temporära filer.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translatorcomment>Aktivera öppning med externa program</translatorcomment>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Osparade filer</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 filer innehåller osparad information.&lt;br/&gt;Vill du spara dessa ändringar före avslut?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Markera de filer du vill spara:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;OBS!&lt;/b&gt; Om du inte sparar dessa filer kommer alla ändringar att förloras.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Allmänt</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Utseende</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Nyckelserver</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>Avancerat</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Inställningar</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>Systemstandard</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>ingenamn</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Öppna fil</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Program</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Kan inte läsa filen %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Fil</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Kan inte skriva filen %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Spara fil </translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Osparat dokument</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;Dokumentet &quot;%1&quot; har ändrats.&lt;br/&gt;Vill du spara ändringarna?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;OBS!&lt;/b&gt; Om du inte sparar dessa filer kommer ändringarna att förloras.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Signaturuppgifter</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>Kunde inte validera signaturen</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>Texten är signerad den
+ %1 av:
+</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>Texten är delvis signerad den
+ %1 av:
+</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Importera från nyckelserver</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Status:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Fingeravtryck:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Nyckel finns inte i nyckellistan</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>Ingen befintlig nyckel med ID 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Namn:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>E-postadress:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>Fel på nyckel med ID 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Importera saknad nyckel från nyckelserver</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Visa detaljerad verifieringsinformation</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>Detaljer</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>Ingen nyckel med ID 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>Kunde inte validera signatur av: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>Texten är signerad av: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>Texten är delvis signerad av: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Fel på nyckel med fingeravtrycket </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>Startguide</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>Importfel</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>Kunde inte hitta någon nyckelringsfil i %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>Importfel</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>Kunde inte öppna den private nyckelringsfilen: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>Kunde inte öppna den publika nyckelringsfilen: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_vi.ts b/release/ts/gpg4usb_vi.ts
new file mode 100644
index 00000000..67a2e37d
--- /dev/null
+++ b/release/ts/gpg4usb_vi.ts
@@ -0,0 +1,1972 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>Kích thước biểu tượng</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>nhỏ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>vừa</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>lớn</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>Dạng biểu tượng</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>chỉ gồm chữ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>chỉ gồm biểu tượng</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>gồm chữ và biểu tượng</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>Trạng thái Cửa sổ</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>Lưu kích thước và vị trí cửa sổ khi thoát.</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>Tên tệp</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>Dạng nội dung</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>Lưu Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>Lưu tệp hiện hành</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>Mở Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>Mở tệp hiện hành</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Không thể ghi lên tệp %1:%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>Mã hóa / Giải mã Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>Thực hiện</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>Tệp nguồn</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>Kết quả</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>&amp;Mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>&amp;Giải mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>Mở Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>Lưu Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Không thể ghi lên tệp %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>Tệp đã tồn tại! Bạn có muốn ghi đè lên tệp?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>Ghi nhớ Mật khẩu</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>Ghi nhớ mật khẩu đến khi tắt gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>Lưu Khóa đã chọn</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>Lưu các khóa riêng được chọn khi thoát chương trình và khởi động các khóa này trong lần chạy chương trình tiếp theo.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>Xác nhận nhập khóa bằng kéo thả</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>Nhập các tệp được đưa vào danh sách khóa và không cần xác nhận.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>Ngôn ngữ</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation type="unfinished">Không có Khóa được chọn</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation type="unfinished">Thuật toán không được hỗ trợ</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation type="unfinished">Lỗi giải mã hóa:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation type="unfinished">Mật khẩu không chính xác</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation type="unfinished">Nhập Mật khẩu</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation type="unfinished">Chọn Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation type="unfinished">Không có Khóa riêng được chọn</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation type="unfinished">Lỗi tạo chữ ký số:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>Thông tin Người sở hữu khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>Chi tiết khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>Vân tay số</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>Tên:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>Địa chỉ Email:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>Nhận xét:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>Ngày hết hạn:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>Ngày tạo:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>Thông tin khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>Tệp Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>Kích thước khóa:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>Thuật toán:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>Vô hạn</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation>/ Vô hạn</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>Khóa riêng</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>Xuất Khóa Riêng</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>Đang xuất Khóa riêng</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>Xuất Khóa ra Tệp</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation type="unfinished">Tạo Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation type="unfinished">Độ mạnh Mật khẩu</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation type="unfinished">Tên:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation type="unfinished">Địa chỉ Email:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation type="unfinished">Nhận xét:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation type="unfinished">Ngày hết hạn:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation type="unfinished">Không bao giời hết hạn</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation type="unfinished">Kích thước Khóa (Bit):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation type="unfinished">Mật khẩu:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation type="unfinished">Mật khẩu: Độ mạnh
+Yếu -&gt; Mạnh</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation type="unfinished">Nhập lại Mật khẩu:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation type="unfinished"> Tên phải gồm ít nhất năm ký tự.
+</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation type="unfinished">Mật khẩu và Xác nhận mật khẩu không khớp.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation type="unfinished">Đang Tạo Khóa...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation type="unfinished">Đang lấy dữ liệu ngẫu nhiên để tạo khóa.
+ Thao tác này có thể mất chút thời gian.
+ Để đẩy nhanh tiến trình, hãy sử dụng máy tính
+ (ví dụ vào Internet, nghe nhạc,...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation type="unfinished">Tên</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished">Vân tay số</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>Tên</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>EMail</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>Nhập Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>Bạn vừa thêm dữ liệu vào danh sách khóa.
+ gpg4usb sẽ cố gắng nhập khóa.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>Luôn thực hiện nhập không cần hỏi.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Không thể mở Tệp:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>Quản lý khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>&amp;Đóng trình Quản lý khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>Đóng trình Quản lý khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>Nhập Khóa mới từ Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>Nhập Khóa mới từ Clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>&amp;Máy chủ Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>Nhập Khóa mới từ Máy chủ Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>Xuất Ra &amp;Clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>Xuất Khóa được chọn ra Clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>Xuất ra &amp;Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>Xuất Khóa được chọn ra Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>Xóa Khóa được chọn</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>Xóa khóa đang được chọn</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>Xóa Khóa đã chọn</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>Xóa Khóa đã chọn</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>Tạo Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>Tạo Khóa mới</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>Hiển thị thông tin Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>Hiển thị thông tin cho Khóa đang chọn</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>&amp;Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>&amp;Clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>&amp;Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>&amp;Nhập Khóa từ...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>Mở Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>Tệp Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>Không thể mở Tệp:</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>Đang xóa Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Bạn có chắc bạn muốn xóa các khóa này?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;Thao tác không thể hoàn tác.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>Xuất Khóa ra Tệp</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>&amp;Đóng</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>&amp;Nhập</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>&amp;Tìm kiếm</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>Tìm kiếm chuỗi:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>Máy chủ Khóa:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>Nhập Khóa từ Máy chủ Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>Ngày tạo</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>IDKhóa</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>Không thể kết nối máy chủ khóa!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>Quá nhiều trả lời từ máy chủ khóa!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>Không tìm thấy khóa chứa chuỗi tìm kiếm!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>Chuỗi tìm kiếm không đủ riêng biệt!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>%1 khóa được tìm thấy. Nhấn đúp chuột để nhập khóa.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>Lỗi kết nối máy chủ khóa!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>Khóa được nhập</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>Nhập khóa từ Máy chủ Khóa mặc định:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Tạo mới</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation type="unfinished">Mở một tệp mới</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation type="unfinished">&amp;Mở...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation type="unfinished">Mở tệp đã tồn tại</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Lưu</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation type="unfinished">Lưu Tệp hiện hành</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation type="unfinished">Lưu &amp;như</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation type="unfinished">Lưu Tệp hiện hành như...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation type="unfinished">&amp;In</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation type="unfinished">In Tài liệu</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation type="unfinished">&amp;Đóng</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation type="unfinished">Đóng tệp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished">&amp;Thoát</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation type="unfinished">Thoát Chương trình</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation type="unfinished">&amp;Hoàn tác</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation type="unfinished">Hoàn tác Thao tác Soạn thảo Sau cùng</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation type="unfinished">&amp;Hủy hoàn tác</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation type="unfinished">Thực hiện lại Thao tác Soạn thảo Sau cùng</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation type="unfinished">&amp;Dán</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation type="unfinished">Chép Văn bản từ Clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation type="unfinished">Cắ&amp;t</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished">Cắt và sao nội dung được chọn vào clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished">&amp;Sao chép</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished">Chép nội dung được chọn vào clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation type="unfinished">&amp;Trích dẫn</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation type="unfinished">Trích dẫn toàn bộ đoạn văn bản</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation type="unfinished">Chọn &amp;Toàn bộ</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation type="unfinished">Chọn toàn bộ đoạn văn bản</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation type="unfinished">Bỏ dấu cách dòng kép, ví dụ trong các đoạn văn bản sao chép từ thư từ trang web</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation type="unfinished">Thiế&amp;t đặt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation type="unfinished">Mở hộp thoại thiết đặt</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation type="unfinished">&amp;Mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation type="unfinished">Mã hóa Tin nhắn</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation type="unfinished">&amp;Giải mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation type="unfinished">Giải mã Tin nhắn</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation type="unfinished">&amp;Mã hóa Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation type="unfinished">Mã hóa/Giải mã Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation type="unfinished">&amp;Ký số</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation type="unfinished">Ký Tin nhắn</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation type="unfinished">&amp;Kiểm tra</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation type="unfinished">Kiểm tra Tin nhắn</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation type="unfinished">&amp;Trình soạn thảo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation type="unfinished">Nhập Khóa Mới Từ Trình Soạn Thảo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation type="unfinished">Mở Trình Quản lý Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation type="unfinished">&amp;Thông tin</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation type="unfinished">Hiện hộp Thông tin Ứng dụng</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation type="unfinished">Chuyển ngữ cho gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation type="unfinished">Bạn hãy dịch gpg4usb sang ngôn ngữ khác</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation type="unfinished">Nối tiếp Khóa Được Chọn vào Văn bản</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation type="unfinished">Nối tiếp Khóa Được Chọn Vào Văn bản trong Trình Soạn Thảo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation type="unfinished">Chép Địa chỉ EMail</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation type="unfinished">Chép Địa chỉ Email được chọn vào clipboard</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation type="unfinished">Hiển thị thông tin Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation type="unfinished">Hiển thị thông tin cho Khóa đang chọn</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Soạn thảo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation type="unfinished">&amp;Mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation type="unfinished">&amp;Khóa mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation type="unfinished">&amp;Nhập Khóa từ...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>Thông tin</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation type="unfinished">&amp;Hiển thị</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">&amp;Trợ giúp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation type="unfinished">Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation type="unfinished">Mã hóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation type="unfinished">Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation type="unfinished">Soạn thảo</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation type="unfinished">Sẵn sàng</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation type="unfinished">Mã hóa cho:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation type="unfinished">Các tệp đính kèm:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">Thông tin</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation type="unfinished">Có một tệp không được mã hóa trong phần đính kèm</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation type="unfinished">Có</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation type="unfinished">các tệp không được mã hóa trong phần đính kèm</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>Giải mã đoạn trích dẫn có thể in</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>Nhận dạng đoạn trích dẫn có thể in.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>Phân tích PGP/MIME (Thử nghiệm)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>Phân tách tệp đính kèm từ tin nhắn mã hóa PGP-MIME.</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>Mở bằng ứng dụng bên ngoài (Thử nghiệm)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>Mở tệp đính kèm sử dụng ứng dụng mặc định cho dạng tệp.&lt;br&gt; Có hai vấn đề khi sử dụng lệnh này:&lt;ol&gt;&lt;li&gt;Tệp cần được lưu dưới dạng không mã hóa vào thư mục đính kèm.&lt;br&gt; Bạn phải tự đảm bảo xóa sạch thư mục này.&lt;/li&gt;&lt;li&gt;Ứng dụng ngoài có thể tạo các tệp tạm thời riêng.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>Cho phép mở bằng ứng dụng bên ngoài.</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>Tệp không được lưu</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 tệp chứa thông tin chưa được lưu.&lt;br/&gt;Lưu tệp trước khi đóng?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>Chọn tệp bạn muốn lưu:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Lưu ý:&lt;/b&gt;Nếu bạn không lưu các tệp này, mọi thay đổi sẽ không được lưu.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>Tổng quát</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>Giao diện</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>Máy chủ Khóa</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>Thiết đặt</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation type="unfinished">Mặc định Hệ thống</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>untitled</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>Mở tệp</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>Ứng dụng</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>Không đọc được tệp %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>Tệp</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>Không thể ghi lên tệp %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>Lưu tệp</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>Tài liệu không được lưu</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;Tài liệu &quot;%1&quot; đã được sửa đổi &lt;br/&gt;Bạn có muốn lưu những thay đổi này không?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;Lưu ý:&lt;/b&gt; Nếu bạn không lưu tệp, mọi thay đổi sẽ bị mất.&lt;/br&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>Thông tin Chữ ký số</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>Nhập từ máy chủ khóa</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>Trạng thái:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>Vân tay số:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>Khóa không nằm trong danh sách khóa</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>Tên:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>Email:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>Nhập khóa còn thiếu từ Máy chủ khóa</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>Hiển thị chi tiết thông tin xác minh</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>Lỗi khóa với Vân tay số</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_zh.ts b/release/ts/gpg4usb_zh.ts
new file mode 100644
index 00000000..adc096f1
--- /dev/null
+++ b/release/ts/gpg4usb_zh.ts
@@ -0,0 +1,1981 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN" sourcelanguage="en_US">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation type="unfinished">显示速记式加密选项【高级】</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation type="unfinished">显示速记式加密选项</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation type="unfinished">图标尺寸</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation type="unfinished">小</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation type="unfinished">中</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation type="unfinished">大</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation type="unfinished">图标风格</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation type="unfinished">仅文字</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation type="unfinished">仅图标</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation type="unfinished">文字和图标</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation type="unfinished">窗口状态</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation type="unfinished">大退出时保存窗口位置和大小</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation type="unfinished">文件名</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation type="unfinished">内容格式</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation type="unfinished">保存文件</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation type="unfinished">保存此文件</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation type="unfinished">打开文件</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation type="unfinished">打开此文件</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished">无法写出文件 %1:
+%2.</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation type="unfinished">选择你要执行的动作...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation type="unfinished">点击相应的链接</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation type="unfinished">如果你从来没有使用过gpg4usb并且也没有一个属于自己的密钥,你可以会需要</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation type="unfinished">创建一个新的密钥对</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation type="unfinished">如果你是从一个之前的旧版本升级而来你可能需要</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation type="unfinished">从gpg4usb中导入设置或是密钥</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation type="unfinished">如果你正使用GnuPG你可能需要</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation type="unfinished">从GnuPG导入密钥</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation type="unfinished">准备使用</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation type="unfinished">欢迎使用gpg4usb!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation type="unfinished">你已经可以开始使用gpg4usb了.&lt;br&gt;&lt;br&gt;请使用离线帮助开始学习使用. 离线帮助将会在主窗口显示.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation type="unfinished">打开离线帮助.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation type="unfinished">不要再显示开始向导.</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation type="unfinished">加密/解密文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation type="unfinished">动作</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished">解密文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished">加密文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation type="unfinished">输入</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation type="unfinished">输出</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation type="unfinished">加密</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation type="unfinished">解密</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation type="unfinished">打开文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation type="unfinished">保存文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation type="unfinished">无法打开文件</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished">无法写出文件 %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation type="unfinished">文件已存在!是否要覆盖此文件?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation type="unfinished">记住密码</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation type="unfinished">在软件关闭前记住密码</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation type="unfinished">保存已选中的密钥</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation type="unfinished">在退出时保存已选中的私钥并在下次打开时恢复</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation type="unfinished">确认拖拽导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation type="unfinished">拖拽将文件导入密钥列表时不需要确认</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation type="unfinished">语言</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation type="unfinished">没有选择密钥</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation type="unfinished">&lt;br&gt;在密钥圈中没有发现ID %1</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation type="unfinished">不支持此算法</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation type="unfinished">加密错误:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation type="unfinished">密码错误</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation type="unfinished">输入密码</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation type="unfinished">输入密码</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation type="unfinished">选择密钥</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation type="unfinished">没有选择私钥</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation type="unfinished">签名错误:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation type="unfinished">导入密钥...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation type="unfinished">从已安装的GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation type="unfinished">你可以从本地已安装的GnuPG中导入密钥.&lt;br&gt;&lt;br&gt; 安装位置从Windows系统的注册表中读出或是默认Linux系统home目录的.gnupg文件夹.&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation type="unfinished">从GnuPG中导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation type="unfinished">导入错误</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation type="unfinished">找不到GnuPG的安装位置</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation type="unfinished">导入</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation type="unfinished">从已有gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation type="unfinished">你可以从已有中导入密钥或是设置. &lt;br&gt;&lt;br&gt;选择你要导入的项目, 点击导入按钮并在对话框中浏览至你已有的gpg4usb文件夹位置.</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation type="unfinished">密钥</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation type="unfinished">设置</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation type="unfinished">从gpg4usb中导入</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation type="unfinished">其它的gpg4usb路径</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation type="unfinished">设置已导入</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation type="unfinished">已从之前的旧版gpg4usb中导入设置.&lt;br&gt;现在将重启程并激活导入设置.</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation type="unfinished">现在开始...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation type="unfinished">使用gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation type="unfinished">要使用gpg4usb加密和签名信息你需要一个私钥.下面的页面会帮助你生成或是导入密钥.&lt;br&gt;&lt;br&gt;更多信息请浏览&lt;a href=&apos;docu_concepts.html&apos;&gt;有关概念&lt;/a&gt; (点击链接页面会在主窗口打开). &lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation type="unfinished">选择语言</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation type="unfinished">所有者细节</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation type="unfinished">密钥内容</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished">指纹</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation type="unfinished">附加Uid</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation type="unfinished">名称</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation type="unfinished">电邮地址</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation type="unfinished">说明</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation type="unfinished">失效于:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation type="unfinished">生成于:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation type="unfinished">密钥ID:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation type="unfinished">复制指纹到剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation type="unfinished">警告:密钥已失效</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation type="unfinished">警告:密钥已失效</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation type="unfinished">密钥内容</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation type="unfinished">你正准备导出你的私人密钥.
+此密钥不是你的公共密钥, 不要将它散发
+并确保此密钥的安全.你真的确认要导出私人密钥吗?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation type="unfinished">密钥文件</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation type="unfinished">导入错误</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation type="unfinished">无法打开%1以进行写入操作</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation type="unfinished">密钥大小</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation type="unfinished">加密算法</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation type="unfinished">永不</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation type="unfinished">/永不</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation type="unfinished">私钥</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation type="unfinished">导出私钥</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation type="unfinished">正在导出私钥</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation type="unfinished">导出密钥到文件</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation type="unfinished">生成密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation type="unfinished">密码强度</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation type="unfinished">名称</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation type="unfinished">电邮地址</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation type="unfinished">备注</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation type="unfinished">失效日期:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation type="unfinished">永不失效</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation type="unfinished">密钥大小(字节):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation type="unfinished">密码:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation type="unfinished">密码:强度
+弱-&gt;强</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation type="unfinished">重复密码:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation type="unfinished">名称必须包含至少五个字符.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation type="unfinished">密码与重复密码内容不同.</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation type="unfinished">正在生成密钥...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation type="unfinished">正在为密钥采集随机数据.
+这可能会花费一些时间.
+使用电脑可加速此过程(如: 浏览网页,听音乐,...)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation type="unfinished">成功</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation type="unfinished">新密钥已创建</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation type="unfinished">创建一个密钥对...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation type="unfinished">用于加密和签名信息</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation type="unfinished">你需要创建一个新的密钥对.一个密钥对包含一个公共用密钥(公钥)和私人密钥(私钥).&lt;br&gt;其它用户可以使用公钥加密发送给你的邮件或是验证由你发送出来的邮件.你可以使用私钥来解密由你的公钥加密的邮件或是签名邮件.&lt;br&gt;更多信息请参见离线教程 (教程将会显示在主窗口):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation type="unfinished">离线教程</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation type="unfinished">创建新密钥</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation type="unfinished">密钥导入细节</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation type="unfinished">未发现可以导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation type="unfinished">密钥导入信息</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation type="unfinished">已选择</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation type="unfinished">公钥修改</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation type="unfinished">已导入</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation type="unfinished">未导入</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation type="unfinished">私钥读入</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation type="unfinished">已导入私钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation type="unfinished">私钥无改变</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation type="unfinished">名称</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation type="unfinished">电邮</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation type="unfinished">状态</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation type="unfinished">指纹</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation type="unfinished">私钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation type="unfinished">公钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation type="unfinished">无改变</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation type="unfinished">新密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation type="unfinished">新子密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation type="unfinished">新签名</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation type="unfinished">新UID</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation type="unfinished">名称</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation type="unfinished">电邮</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation type="unfinished">导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation type="unfinished">你已将文件拖入密钥列表,
+gpg4usb将尝试导入密钥.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation type="unfinished">总是直接导入.</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation type="unfinished">无法打开文件:</translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation type="unfinished">密钥管理</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation type="unfinished">关闭密钥管理</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation type="unfinished">关闭密钥管理</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation type="unfinished">从文件中导入新密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation type="unfinished">从剪切板中导入新密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation type="unfinished">密钥服务器</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation type="unfinished">从密钥服务器导入新密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation type="unfinished">导出到剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation type="unfinished">导出选定的密钥到剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation type="unfinished">导出到文件</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation type="unfinished">导出选定的密钥到文件</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation type="unfinished">删除选定的密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation type="unfinished">删除选定的密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation type="unfinished">删除选中的密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation type="unfinished">删除选中的密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation type="unfinished">生成密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation type="unfinished">生成新密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation type="unfinished">显示密钥内容</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation type="unfinished">显示此密钥内容</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation type="unfinished">密钥已导出</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation type="unfinished">剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation type="unfinished">密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation type="unfinished">从...中导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation type="unfinished">密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation type="unfinished">导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation type="unfinished">导入密钥从</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation type="unfinished">打开密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation type="unfinished">密钥文件</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation type="unfinished">钥匙圈文件</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation type="unfinished">无法打开文件</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation type="unfinished">正在删除密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation type="unfinished">&lt;b&gt;你确定要删除下列密钥吗? &lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation type="unfinished">&lt;br/&gt;删除后无法恢复.</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation type="unfinished">导出密钥到文件</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation type="unfinished">关闭</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation type="unfinished">导入</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation type="unfinished">查找</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation type="unfinished">查找字符串</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation type="unfinished">密钥服务器</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation type="unfinished">从密钥服务器中导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation type="unfinished">UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation type="unfinished">生成日期</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation type="unfinished">KEYID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation type="unfinished">标记</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation type="unfinished">无法与密钥服务器通讯!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation type="unfinished">密钥服务器回应过多!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation type="unfinished">未发现密钥, 输入kexid , 尝试用0x再次查找.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation type="unfinished">没有找到含有查询字符串的密钥!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation type="unfinished">无效的查询字符串!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation type="unfinished">已失效</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation type="unfinished">已禁用</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation type="unfinished">找到%1个密钥. 双击密钥将其导入.</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation type="unfinished">与密钥服务器通讯时发生错误!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation type="unfinished">密钥已导入</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation type="unfinished">默认导入密钥服务器:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation type="unfinished">打开...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation type="unfinished">打开现有文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation type="unfinished">保存</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation type="unfinished">保存当前文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation type="unfinished">另存为</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation type="unfinished">当前文件另存为...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation type="unfinished">打印</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation type="unfinished">打印文档</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation type="unfinished">关闭</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation type="unfinished">关闭文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished">退出</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation type="unfinished">退出程序</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation type="unfinished">撤消</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation type="unfinished">撤消最后的修改</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation type="unfinished">重做</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation type="unfinished">重做最后的修改</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation type="unfinished">粘贴</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation type="unfinished">从剪切板粘贴</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation type="unfinished">剪切</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished">把当前选定内容剪切到剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation type="unfinished">复制</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation type="unfinished">把当前选定内容复制到剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation type="unfinished">查询</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation type="unfinished">查询整个文档</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation type="unfinished">选择全部</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation type="unfinished">选择全部文字</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation type="unfinished">管理密钥</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>关于</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;本程序可对文字信息或是文件进行加密或是解密.&lt;br&gt;本程序遵循GPL v3授权协议.&lt;br&gt;&lt;br&gt;&lt;b&gt;开发人员:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;软件本地化:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(简体中文), Viriato (es)&lt;br&gt;&lt;br&gt;如果你有任何建议或是问题请浏览&lt;br/&gt; &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;联系方式&lt;/a&gt; 或是发电子邮件给我们&lt;br/&gt; &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.&lt;br&gt;中文版问题可联系&lt;br/&gt;&lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation type="unfinished">删除两换行符如从网页邮件中复制过来的文字</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation type="unfinished">打开设置对话框</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation type="unfinished">加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation type="unfinished">加密信息</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation type="unfinished">解密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation type="unfinished">解密信息</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation type="unfinished">文件加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation type="unfinished">加密/解密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation type="unfinished">加密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation type="unfinished">加密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation type="unfinished">解密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation type="unfinished">解密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation type="unfinished">签名</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation type="unfinished">签名信息</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation type="unfinished">验证</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation type="unfinished">验证信息</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation type="unfinished">从编辑器中获得密钥</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation type="unfinished">打开密钥管理</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation type="unfinished">关于</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation type="unfinished">显示关于对话框</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation type="unfinished">内置帮助</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation type="unfinished">打开内置帮助</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation type="unfinished">在线教程</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation type="unfinished">打开在线教程</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">编辑</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished">帮助</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation type="unfinished">用所选密钥为文字加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation type="unfinished">删除空行</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation type="unfinished">设置</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation type="unfinished">新建</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation type="unfinished">打新文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation type="unfinished">翻译本软件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation type="unfinished">帮助我们翻译gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation type="unfinished">打开向导</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation type="unfinished">打开向导</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation type="unfinished">用所选密钥加密编辑器中的文字</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation type="unfinished">复制电邮地址</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation type="unfinished">将选定的电邮地址复制到剪切板</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation type="unfinished">显示密钥内容</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation type="unfinished">显示此密钥的内容</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation type="unfinished">删除PGP头</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation type="unfinished">添加PGP头</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation type="unfinished">密钥</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation type="unfinished">导入密钥...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation type="unfinished">速记式加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation type="unfinished">查看</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation type="unfinished">特殊修改</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation type="unfinished">导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation type="unfinished">导入密钥</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation type="unfinished">加密或解密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation type="unfinished">准备</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation type="unfinished">加密用途</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation type="unfinished">附加文件</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;本程序可对文字信息或是文件进行加密或是解密.&lt;br&gt;本程序遵循GPL v3授权协议.&lt;br&gt;&lt;br&gt;&lt;b&gt;开发人员:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;软件本地化:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(简体中文), Viriato (es)&lt;br&gt;&lt;br&gt;如果你有任何建议或是问题请浏览&lt;br/&gt; &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;联系方式&lt;/a&gt; 或是发电子邮件给我们&lt;br/&gt; &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.&lt;br&gt;中文版问题可联系&lt;br/&gt;&lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation type="unfinished">在附件中有一个未加密文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation type="unfinished">在附件中</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation type="unfinished">有多个未加密的文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation type="unfinished">编辑器</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation type="unfinished">加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation type="unfinished">加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation type="unfinished">密钥</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation type="unfinished">编辑</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">关于</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation type="unfinished">解码使可以打印</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation type="unfinished">尝试识别打印</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation type="unfinished">解析PGP/MIME(尝试)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation type="unfinished">尝试从PGP-MIME加密信息中分离附件</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation type="unfinished">用外部程序打开(尝试)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation type="unfinished">用默认外部关联程序打开附件.&lt;br&gt; 但是这样有至少两个问题:&lt;ol&gt;&lt;li&gt;文件需要被以非加密方式保存到附件文件夹.&lt;br&gt; 你需要自己清理此文件夹.&lt;/li&gt;&lt;li&gt;外部关联程序有可以有它自己的临时文件.&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation type="unfinished">使用外部程序打开</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation type="unfinished">已保存文件</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation type="unfinished">&lt;h3&gt;%1 文件包含有未保存信息.&lt;br/&gt;保存修改然后关闭?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation type="unfinished">选择你想要保存的文件:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation type="unfinished">&lt;b&gt;注意:&lt;/b&gt; 如果你不保存这些文件, 所有的修改工作都将丢失.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation type="unfinished">普通</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation type="unfinished">界面</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation type="unfinished">PGP/Mime</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation type="unfinished">密钥服务器</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation type="unfinished">设置</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation type="unfinished">系统默认</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation type="unfinished">未命名</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation type="unfinished">打开文件</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation type="unfinished">程序</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation type="unfinished">无法读入文件 %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation type="unfinished">文件</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation type="unfinished">无法写入文件 %1:
+%2.</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation type="unfinished">保存文件</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation type="unfinished">未保存文档</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation type="unfinished">&lt;h3&gt;文档&quot;%1&quot; 已被修改.&lt;br/&gt;需要保存修改吗?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation type="unfinished">&lt;b&gt;注意:&lt;/b&gt;如果你不保存这些文件, 所有的修改都将丢失.&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation type="unfinished">签名内容</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation type="unfinished">错误非法签名</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation type="unfinished">文字已经被完整签名
+%1 使用:
+</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation type="unfinished">文字已经被部分签名
+%1 使用:
+</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation type="unfinished">从密钥服务器导入</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation type="unfinished">状态:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished">指纹:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation type="unfinished">密钥不在密钥列表中</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation type="unfinished">密钥不在id 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation type="unfinished">名称</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation type="unfinished">电邮</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation type="unfinished">确定</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation type="unfinished">密钥错误id 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation type="unfinished">从密钥服务器中导入丢失密钥</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation type="unfinished">显示验证信息内容</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation type="unfinished">内容</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation type="unfinished">密钥无id 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation type="unfinished">验证签名错误:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation type="unfinished">文字已经完全加密使用:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation type="unfinished">文字被部分加密使用:</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation type="unfinished">密钥指纹错误:</translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation type="unfinished">导入错误</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/release/ts/gpg4usb_zh_tw.ts b/release/ts/gpg4usb_zh_tw.ts
new file mode 100644
index 00000000..fa5aa217
--- /dev/null
+++ b/release/ts/gpg4usb_zh_tw.ts
@@ -0,0 +1,1983 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW" sourcelanguage="en_US">
+<context>
+ <name>AdvancedTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="448"/>
+ <source>Show Steganography Options [Advanced]</source>
+ <translation>顯示資訊偽裝選項 [進階]</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="450"/>
+ <source>Show Steganographic Options.</source>
+ <translation>顯示資訊偽裝選項。</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="279"/>
+ <source>Iconsize</source>
+ <translation>圖示尺寸</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="281"/>
+ <source>small</source>
+ <translation>小</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="282"/>
+ <source>medium</source>
+ <translation>中</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="283"/>
+ <source>large</source>
+ <translation>大</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="299"/>
+ <source>Iconstyle</source>
+ <translation>圖示樣式</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="301"/>
+ <source>just text</source>
+ <translation>僅文字</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="302"/>
+ <source>just icons</source>
+ <translation>僅圖示</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="303"/>
+ <source>text and icons</source>
+ <translation>文字與圖示</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="319"/>
+ <source>Windowstate</source>
+ <translation>視窗狀態</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="321"/>
+ <source>Save window size and position on exit.</source>
+ <translation>離開時儲存視窗尺寸及位置。</translation>
+ </message>
+</context>
+<context>
+ <name>AttachmentTableModel</name>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="128"/>
+ <source>Filename</source>
+ <translation>檔案名稱</translation>
+ </message>
+ <message>
+ <location filename="../../attachmenttablemodel.cpp" line="131"/>
+ <source>Contenttype</source>
+ <translation>內容類型</translation>
+ </message>
+</context>
+<context>
+ <name>Attachments</name>
+ <message>
+ <location filename="../../attachments.cpp" line="78"/>
+ <location filename="../../attachments.cpp" line="115"/>
+ <source>Save File</source>
+ <translation>儲存檔案</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="79"/>
+ <source>Save this file</source>
+ <translation>儲存此檔案</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="83"/>
+ <source>Open File</source>
+ <translation>開啟檔案</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="84"/>
+ <source>Open this file</source>
+ <translation>開啟此檔案</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="121"/>
+ <location filename="../../attachments.cpp" line="166"/>
+ <source>File</source>
+ <translation>檔案</translation>
+ </message>
+ <message>
+ <location filename="../../attachments.cpp" line="122"/>
+ <location filename="../../attachments.cpp" line="167"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>無法寫入檔案 %1:
+%2。</translation>
+ </message>
+</context>
+<context>
+ <name>ChoosePage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="163"/>
+ <source>Choose your action...</source>
+ <translation>請選擇你的行動...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="164"/>
+ <source>...by clicking on the apropriate link.</source>
+ <translation>...點擊相對應的連結。</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="166"/>
+ <source>If you have never used gpg4usb before and also don&apos;t own a gpg key yet you may possibly want to </source>
+ <translation>如果你從未使用過 gpg4usb,也還沒有任何 gpg 金鑰,你可能會想要</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="168"/>
+ <source>create a new keypair</source>
+ <translation>打造新的金鑰對</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="172"/>
+ <source>If you upgrade from an older version of gpg4usb you may want to </source>
+ <translation>如果你是從舊版的 gpg4usb 升級上來,你可能會想要</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="174"/>
+ <source>import settings and/or keys from gpg4usb</source>
+ <translation>匯入 gpg4usb 的設定和金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="178"/>
+ <source>If you are already using GnuPG you may want to </source>
+ <translation>如果你已經在使用 GnuPG,你可能會想要</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="180"/>
+ <source>import keys from GnuPG</source>
+ <translation>匯入 GnuPG 的金鑰</translation>
+ </message>
+</context>
+<context>
+ <name>ConclusionPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="403"/>
+ <source>Ready.</source>
+ <translation>準備就緒。</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="404"/>
+ <source>Have fun with gpg4usb!</source>
+ <translation>祝你 gpg4usb 用得愉快!</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="406"/>
+ <source>You are ready to use gpg4usb now.&lt;br&gt;&lt;br&gt;The offline help will get you started with gpg4usb. It will open in the main window.&lt;br&gt;</source>
+ <translation>你已經準備好開始使用 gpg4usb 了。&lt;br&gt;&lt;br&gt;離線說明文件將帶領你開始使用 gpg4usb。該說明文件將開啟於主視窗。&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="411"/>
+ <source>Open offline help.</source>
+ <translation>開啟離線說明文件。</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="414"/>
+ <source>Dont show the wizard again.</source>
+ <translation>不要再顯示這個精靈。</translation>
+ </message>
+</context>
+<context>
+ <name>FileEncryptionDialog</name>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="36"/>
+ <source>Encrypt / Decrypt File</source>
+ <translation>檔案加密/解密</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="46"/>
+ <location filename="../../fileencryptiondialog.cpp" line="170"/>
+ <location filename="../../fileencryptiondialog.cpp" line="179"/>
+ <source>File</source>
+ <translation>檔案</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="47"/>
+ <source>Action</source>
+ <translation>行動</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="31"/>
+ <source>Decrypt File</source>
+ <translation>檔案解密</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="33"/>
+ <source>Encrypt File</source>
+ <translation>檔案加密</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="53"/>
+ <source>Input</source>
+ <translation>輸入</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="59"/>
+ <source>Output</source>
+ <translation>輸出</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="78"/>
+ <source>&amp;Encrypt</source>
+ <translation>加密 (&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="80"/>
+ <source>&amp;Decrypt</source>
+ <translation>解密 (&amp;D)</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="116"/>
+ <source>Open File</source>
+ <translation>開啟檔案</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="142"/>
+ <source>Save File</source>
+ <translation>儲存檔案</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="153"/>
+ <source>Couldn&apos;t Open file: </source>
+ <translation>無法開啟檔案: </translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="180"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>無法寫入檔案 %1:
+%2。</translation>
+ </message>
+ <message>
+ <location filename="../../fileencryptiondialog.cpp" line="171"/>
+ <source>File exists! Do you want to overwrite it?</source>
+ <translation>檔案已存在!請問你是否想要覆蓋掉原本的檔案?</translation>
+ </message>
+</context>
+<context>
+ <name>GeneralTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="105"/>
+ <source>Remember Password</source>
+ <translation>記住密碼</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="107"/>
+ <source>Remember password until closing gpg4usb</source>
+ <translation>記住密碼直到 gpg4usb 關閉</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="114"/>
+ <source>Save Checked Keys</source>
+ <translation>儲存已核選的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="116"/>
+ <source>Save checked private keys on exit and restore them on next start.</source>
+ <translation>離開時儲存已核選的私鑰,並於下次執行時加以還原。</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="123"/>
+ <source>Confirm drag&apos;n&apos;drop key import</source>
+ <translation>確認拖曳金鑰匯入的動作</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="125"/>
+ <source>Import files dropped on the keylist without confirmation.</source>
+ <translation>將檔案拖曳至金鑰清單時,不另確認即匯入。</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="132"/>
+ <source>Language</source>
+ <translation>語言</translation>
+ </message>
+</context>
+<context>
+ <name>GpgME::GpgContext</name>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="309"/>
+ <source>No Key Selected</source>
+ <translation>未選擇任何金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="381"/>
+ <source>&lt;br&gt;No private key with id %1 present in keyring</source>
+ <translation>&lt;br&gt;金鑰鑰匙圈中沒有 ID 為 %1 的私鑰</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="389"/>
+ <source>Unsupported algorithm</source>
+ <translation>未支援的演算法</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="399"/>
+ <source>Error decrypting:</source>
+ <translation>解密時出錯:</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="473"/>
+ <source>Wrong password</source>
+ <translation>密碼錯誤</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="481"/>
+ <source>Enter Password for</source>
+ <translation>請輸入密碼: </translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="485"/>
+ <source>Enter Password</source>
+ <translation>輸入密碼</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>Key Selection</source>
+ <translation>金鑰選擇</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="649"/>
+ <source>No Private Key Selected</source>
+ <translation>未選擇任何私鑰</translation>
+ </message>
+ <message>
+ <location filename="../../gpgcontext.cpp" line="697"/>
+ <source>Error signing:</source>
+ <translation>簽署時出錯:</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGnupgPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="292"/>
+ <source>Import keys...</source>
+ <translation>匯入金鑰...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="293"/>
+ <source>...from existing GnuPG installation</source>
+ <translation>...自原已安裝的 GnuPG</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="295"/>
+ <source>You can import keys from a locally installed GnuPG.&lt;br&gt;&lt;br&gt; The location is read from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.&lt;br&gt;</source>
+ <translation>你可以從本地原已安裝的 GnuPG 匯入金鑰。&lt;br&gt;&lt;br&gt;其安裝路徑會從 Windows 的登錄中讀取,或者假定為目前 Linux 使用者家目錄的 .gnupg 子目錄。&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="299"/>
+ <source>Import keys from GnuPG</source>
+ <translation>從 GnuPG 匯入金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Import Error</source>
+ <translation>匯入出錯</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="314"/>
+ <source>Couldn&apos;t locate GnuPG home directory</source>
+ <translation>無法找出 GnuPG 的家目錄</translation>
+ </message>
+</context>
+<context>
+ <name>ImportFromGpg4usbPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="212"/>
+ <source>Import from...</source>
+ <translation>匯入自...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="213"/>
+ <source>...existing gpg4usb</source>
+ <translation>....原有的 gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="215"/>
+ <source>You can import keys and/or settings from existing gpg4usb. &lt;br&gt;&lt;br&gt;Just check what you want to import, click the import button and choose the directory of your other gpg4usb in the appearing file dialog.</source>
+ <translation>你可以從原有的 gpg4usb 匯入金鑰和設定。&lt;br&gt;&lt;br&gt;只要核選想匯入的東西,按下匯入按鈕,然後從接下來出現的檔案對話框中,選擇其他 gpg4usb 目錄即可。</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="222"/>
+ <source>Keys</source>
+ <translation>金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="226"/>
+ <source>Configuration</source>
+ <translation>組態設定</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="228"/>
+ <source>Import from gpg4usb</source>
+ <translation>從 gpg4usb 匯入</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="244"/>
+ <source>Other gpg4usb directory</source>
+ <translation>其他的 gpg4usb 目錄</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Configuration Imported</source>
+ <translation>已匯入組態設定</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="264"/>
+ <source>Imported Configuration from old gpg4usb.&lt;br&gt;Will now restart to activate the configuration.</source>
+ <translation>已匯入舊有 gpg4usb 的組態設定。&lt;br&gt;現在將重新啟動以啟用這些組態設定。</translation>
+ </message>
+</context>
+<context>
+ <name>IntroPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="110"/>
+ <source>Getting started...</source>
+ <translation>入門使用....</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="111"/>
+ <source>... with gpg4usb</source>
+ <translation>...gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="113"/>
+ <source>To use gpg4usb for decrypting and signing messages, you need a private key. The next page will help you with key generation or import.&lt;br&gt;&lt;br&gt;For more information have a look at the &lt;a href=&apos;docu_concepts.html&apos;&gt;concepts&lt;/a&gt; (by clicking the link, the page will open in the main window). &lt;br&gt;</source>
+ <translation>如欲使用 gpg4usb 解密和簽署訊息,將需要用到私鑰。下一頁將協助你產生或匯入金鑰。&lt;br&gt;&lt;br&gt;更多資訊請參見&lt;a href=&apos;docu_concepts.html&apos;&gt;概念說明文件&lt;/a&gt;(按下連結後將在主視窗開出該頁面)。&lt;br&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="122"/>
+ <source>Choose a Language</source>
+ <translation>選擇語言</translation>
+ </message>
+</context>
+<context>
+ <name>KeyDetailsDialog</name>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="30"/>
+ <source>Owner details</source>
+ <translation>持有人詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="31"/>
+ <source>Key details</source>
+ <translation>金鑰詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="32"/>
+ <source>Fingerprint</source>
+ <translation>指紋</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="33"/>
+ <source>Additional Uids</source>
+ <translation>附加的 UID</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="81"/>
+ <source>Name:</source>
+ <translation>姓名:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="82"/>
+ <source>E-Mailaddress:</source>
+ <translation>電子郵件地址:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="83"/>
+ <source>Comment:</source>
+ <translation>註解:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="89"/>
+ <source>Expires on: </source>
+ <translation>有效期限: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="91"/>
+ <source>Created on: </source>
+ <translation>打造日期: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="92"/>
+ <source>Key ID: </source>
+ <translation>金鑰 ID: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="116"/>
+ <source>copy fingerprint to clipboard</source>
+ <translation>將指紋複製到剪貼簿</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="158"/>
+ <source>Warning: Key expired</source>
+ <translation>警告:金鑰已過期</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="161"/>
+ <source>Warning: Key revoked</source>
+ <translation>警告:金鑰已撤銷</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="176"/>
+ <source>Keydetails</source>
+ <translation>金鑰詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="187"/>
+ <source>You are about to export your private key.
+This is NOT your public key, so don&apos;t give it away.
+Make sure you keep it save.Do you really want to export your private key?</source>
+ <translation>你正要匯出私鑰。
+私鑰可不是公鑰,請千萬不要交給任何其他人。
+請確保私鑰安全。請問你是否真的想要匯出私鑰?</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Key Files</source>
+ <translation>金鑰檔案</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Export error</source>
+ <translation>匯出出錯</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="202"/>
+ <source>Couldn&apos;t open %1 for writing</source>
+ <translation>無法開啟 %1 寫入</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="88"/>
+ <source>Key size:</source>
+ <translation>金鑰尺寸:</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="90"/>
+ <source>Algorithm: </source>
+ <translation>演算法: </translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="50"/>
+ <source>Never</source>
+ <translation>永遠不過期</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="62"/>
+ <source> / Never</source>
+ <translation> / 永遠不過期</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="139"/>
+ <source>Private Key</source>
+ <translation>私鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="142"/>
+ <source>Export Private Key</source>
+ <translation>匯出私鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="186"/>
+ <source>Exporting private Key</source>
+ <translation>正在匯出私鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keydetailsdialog.cpp" line="199"/>
+ <source>Export Key To File</source>
+ <translation>匯出金鑰至檔案</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenDialog</name>
+ <message>
+ <location filename="../../keygendialog.cpp" line="31"/>
+ <source>Generate Key</source>
+ <translation>產生金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="68"/>
+ <source>Password Strength</source>
+ <translation>密碼強度</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="73"/>
+ <source>Name:</source>
+ <translation>姓名:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="74"/>
+ <source>E-Mailaddress:</source>
+ <translation>電子郵件地址:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="75"/>
+ <source>Comment:</source>
+ <translation>註解:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="76"/>
+ <source>Expiration Date:</source>
+ <translation>有效期限:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="77"/>
+ <source>Never Expire</source>
+ <translation>永遠不會過期</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="78"/>
+ <source>KeySize (in Bit):</source>
+ <translation>金鑰尺寸 (位元):</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="79"/>
+ <source>Password:</source>
+ <translation>密碼:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="80"/>
+ <source>Password: Strength
+Weak -&gt; Strong</source>
+ <translation>密碼: 強度
+弱 -&gt; 強</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="81"/>
+ <source>Repeat Password:</source>
+ <translation>再輸入一次密碼:</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="117"/>
+ <source> Name must contain at least five characters.
+</source>
+ <translation> 姓名至少要包含五個字符。
+</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="120"/>
+ <source> Password and Repeat don&apos;t match. </source>
+ <translation> 兩次輸入的密碼不相符合。 </translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="159"/>
+ <source>Generating Key...</source>
+ <translation>正在產生金鑰...</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="161"/>
+ <source>Collecting random data for key generation.
+ This may take a while.
+ To speed up the process use your computer
+ (e.g. browse the net, listen to music,...)</source>
+ <translation>正在蒐集隨機資料以便產生金鑰。
+這可能會花上一段時間。
+如欲加速進行,請隨意使用電腦
+(例如瀏覽網頁、聽音樂等)</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>Success</source>
+ <translation>成功</translation>
+ </message>
+ <message>
+ <location filename="../../keygendialog.cpp" line="177"/>
+ <source>New key created</source>
+ <translation>已建立新的金鑰</translation>
+ </message>
+</context>
+<context>
+ <name>KeyGenPage</name>
+ <message>
+ <location filename="../../wizard.cpp" line="360"/>
+ <source>Create a keypair...</source>
+ <translation>建立金鑰對...</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="361"/>
+ <source>...for decrypting and signing messages</source>
+ <translation>...以便解密和簽署訊息</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="362"/>
+ <source>You should create a new keypair.The pair consists of a public and a private key.&lt;br&gt;Other users can use the public key to encrypt messages for you and verify messages signed by you.You can use the private key to decrypt and sign messages.&lt;br&gt;For more information have a look at the offline tutorial (which then is shown in the main window):</source>
+ <translation>你應該建立新的金鑰對。金鑰對由公鑰及私鑰組成。&lt;br&gt;其他使用者可以用你的公鑰,將訊息加密給你,並驗證由你所簽署的訊息;你則可以使用私鑰來解密及簽署訊息。&lt;br&gt;更多資訊請查看離線教學文件(會顯示在主視窗):</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="369"/>
+ <source>Offline tutorial</source>
+ <translation>離線教學</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="376"/>
+ <source>Create New Key</source>
+ <translation>建立新的金鑰</translation>
+ </message>
+</context>
+<context>
+ <name>KeyImportDetailDialog</name>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <location filename="../../keyimportdetaildialog.cpp" line="47"/>
+ <source>Key import details</source>
+ <translation>金鑰匯入詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="31"/>
+ <source>No keys found to import</source>
+ <translation>找不到可匯入的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="56"/>
+ <source>Genral key import info</source>
+ <translation>一般金鑰匯入資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="59"/>
+ <source>Considered:</source>
+ <translation>已處理:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="63"/>
+ <source>Public unchanged:</source>
+ <translation>公鑰未變更:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="68"/>
+ <source>Imported:</source>
+ <translation>已匯入:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="73"/>
+ <source>Not imported:</source>
+ <translation>未匯入:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="78"/>
+ <source>Private read:</source>
+ <translation>私鑰已讀取:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="83"/>
+ <source>Private imported:</source>
+ <translation>私鑰已匯入:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="88"/>
+ <source>Private unchanged:</source>
+ <translation>私鑰未變更:</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Name</source>
+ <translation>姓名</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Email</source>
+ <translation>電子郵件</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Status</source>
+ <translation>狀態</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="104"/>
+ <source>Fingerprint</source>
+ <translation>指紋</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="128"/>
+ <source>private</source>
+ <translation>私鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="131"/>
+ <source>public</source>
+ <translation>公鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="134"/>
+ <source>unchanged</source>
+ <translation>未變更</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="137"/>
+ <source>new key</source>
+ <translation>新金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="140"/>
+ <source>new subkey</source>
+ <translation>新子鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="144"/>
+ <source>new signature</source>
+ <translation>新簽章</translation>
+ </message>
+ <message>
+ <location filename="../../keyimportdetaildialog.cpp" line="148"/>
+ <source>new uid</source>
+ <translation>新 UID</translation>
+ </message>
+</context>
+<context>
+ <name>KeyList</name>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>Name</source>
+ <translation>姓名</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="50"/>
+ <source>EMail</source>
+ <translation>電子郵件</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="193"/>
+ <source>Import Keys</source>
+ <translation>匯入金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="195"/>
+ <source>You&apos;ve dropped something on the keylist.
+ gpg4usb will now try to import key(s).</source>
+ <translation>你拖曳了某些東西到金鑰清單上。
+ 現在 gpg4usb 將嘗試匯入金鑰。</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="198"/>
+ <source>Always import without bothering.</source>
+ <translation>以後都直接匯入,別再煩我。</translation>
+ </message>
+ <message>
+ <location filename="../../keylist.cpp" line="234"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>無法開啟檔案: </translation>
+ </message>
+</context>
+<context>
+ <name>KeyMgmt</name>
+ <message>
+ <location filename="../../keymgmt.cpp" line="61"/>
+ <source>Keymanagement</source>
+ <translation>金鑰管理</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="68"/>
+ <source>&amp;Close Key Management</source>
+ <translation>關閉金鑰管理 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="69"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="71"/>
+ <source>Close Key Management</source>
+ <translation>關閉金鑰管理</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="76"/>
+ <source>Import New Key From File</source>
+ <translation>從檔案匯入新的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="81"/>
+ <source>Import New Key From Clipboard</source>
+ <translation>從剪貼簿匯入新的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="84"/>
+ <source>&amp;Keyserver</source>
+ <translation>金鑰伺服器 (&amp;K)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="86"/>
+ <source>Import New Key From Keyserver</source>
+ <translation>從金鑰伺服器匯入新的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="89"/>
+ <source>Export To &amp;Clipboard</source>
+ <translation>匯出至剪貼簿 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="91"/>
+ <source>Export Selected Key(s) To Clipboard</source>
+ <translation>匯出所選的金鑰至剪貼簿</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="94"/>
+ <source>Export To &amp;File</source>
+ <translation>匯出至檔案 (&amp;F)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="96"/>
+ <source>Export Selected Key(s) To File</source>
+ <translation>匯出所選的金鑰至檔案</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="99"/>
+ <source>Delete Selected Key(s)</source>
+ <translation>刪除所選的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="100"/>
+ <source>Delete the Selected keys</source>
+ <translation>刪除所選的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="103"/>
+ <source>Delete Checked Key(s)</source>
+ <translation>刪除已核選的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="104"/>
+ <source>Delete the Checked keys</source>
+ <translation>刪除已核選的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="108"/>
+ <source>Generate Key</source>
+ <translation>產生金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="109"/>
+ <source>Generate New Key</source>
+ <translation>產生新的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="113"/>
+ <source>Show Keydetails</source>
+ <translation>顯示金鑰詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="114"/>
+ <source>Show Details for this Key</source>
+ <translation>顯示此金鑰的詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="145"/>
+ <source>Import key</source>
+ <translation>匯入金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="146"/>
+ <source>Import key from</source>
+ <translation>匯入金鑰自</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="260"/>
+ <source>key(s) exported</source>
+ <translation>把金鑰已匯出</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="74"/>
+ <location filename="../../keymgmt.cpp" line="120"/>
+ <source>&amp;File</source>
+ <translation>檔案 (&amp;F)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="79"/>
+ <source>&amp;Clipboard</source>
+ <translation>剪貼簿 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="123"/>
+ <source>&amp;Key</source>
+ <translation>金鑰 (&amp;K)</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="124"/>
+ <source>&amp;Import Key From...</source>
+ <translation>匯入金鑰自 (&amp;I)...</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="137"/>
+ <source>Key</source>
+ <translation>金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Open Key</source>
+ <translation>開啟金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Key Files</source>
+ <translation>金鑰檔案</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="167"/>
+ <source>Keyring files</source>
+ <translation>金鑰鑰匙圈檔案</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="172"/>
+ <source>Couldn&apos;t Open File: </source>
+ <translation>無法開啟檔案: </translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="221"/>
+ <source>Deleting Keys</source>
+ <translation>正在刪除金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="222"/>
+ <source>&lt;b&gt;Are you sure that you want to delete the following keys?.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</source>
+ <translation>&lt;b&gt;請問你是否確定要刪除下列金鑰?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="223"/>
+ <source>&lt;br/&gt;The action can not be undone.</source>
+ <translation>&lt;br/&gt;這項操作的結果將無可挽回。</translation>
+ </message>
+ <message>
+ <location filename="../../keymgmt.cpp" line="252"/>
+ <source>Export Key To File</source>
+ <translation>匯出金鑰至檔案</translation>
+ </message>
+</context>
+<context>
+ <name>KeyServerImportDialog</name>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="31"/>
+ <source>&amp;Close</source>
+ <translation>關閉 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="32"/>
+ <source>&amp;Import</source>
+ <translation>匯入 (&amp;I)</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="33"/>
+ <source>&amp;Search</source>
+ <translation>搜尋 (&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="36"/>
+ <source>Search string:</source>
+ <translation>搜尋字串:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="40"/>
+ <source>Keyserver:</source>
+ <translation>金鑰伺服器:</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="71"/>
+ <source>Import Keys from Keyserver</source>
+ <translation>從金鑰伺服器匯入金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>UID</source>
+ <translation>UID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Creation date</source>
+ <translation>建立日期</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>KeyID</source>
+ <translation>金鑰 ID</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="112"/>
+ <source>Tag</source>
+ <translation>標籤</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="154"/>
+ <source>Couldn&apos;t contact keyserver!</source>
+ <translation>無法連上金鑰伺服器!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="162"/>
+ <source>Too many responses from keyserver!</source>
+ <translation>金鑰伺服器傳回太多回應!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="168"/>
+ <source>No keys found, input may be kexId, retrying search with 0x.</source>
+ <translation>找不到金鑰,也許輸入值為金鑰 ID,正以 0x 開頭重新嘗試。</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="172"/>
+ <source>No keys found containing the search string!</source>
+ <translation>找不到含有搜尋字串的金鑰!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="175"/>
+ <source>Insufficiently specific search string!</source>
+ <translation>指定的搜尋字串不足!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="203"/>
+ <source>revoked</source>
+ <translation>已撤銷</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="206"/>
+ <source>disabled</source>
+ <translation>已停用</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="245"/>
+ <source>%1 keys found. Doubleclick a key to import it.</source>
+ <translation>找到 %1 把金鑰。雙擊金鑰即可匯入。</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="291"/>
+ <source>Error while contacting keyserver!</source>
+ <translation>聯繫金鑰伺服器時出錯!</translation>
+ </message>
+ <message>
+ <location filename="../../keyserverimportdialog.cpp" line="295"/>
+ <source>Key imported</source>
+ <translation>已匯入金鑰</translation>
+ </message>
+</context>
+<context>
+ <name>KeyserverTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="404"/>
+ <source>Default Keyserver for import:</source>
+ <translation>預設用來匯入的金鑰伺服器:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../mainwindow.cpp" line="152"/>
+ <source>&amp;New</source>
+ <translation>新增 (&amp;N)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="158"/>
+ <source>Open a new file</source>
+ <translation>開啟新檔</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="161"/>
+ <source>&amp;Open...</source>
+ <translation>開啟 (&amp;O)...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="164"/>
+ <source>Open an existing file</source>
+ <translation>開啟既有的檔案</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="167"/>
+ <source>&amp;Save</source>
+ <translation>儲存 (&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="170"/>
+ <source>Save the current File</source>
+ <translation>儲存目前的檔案</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="173"/>
+ <source>Save &amp;As</source>
+ <translation>另存新檔 (&amp;A)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="176"/>
+ <source>Save the current File as...</source>
+ <translation>將目前的檔案另存為...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="179"/>
+ <source>&amp;Print</source>
+ <translation>列印 (&amp;P)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="182"/>
+ <source>Print Document</source>
+ <translation>列印文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="185"/>
+ <location filename="../../mainwindow.cpp" line="640"/>
+ <source>&amp;Close</source>
+ <translation>關閉 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="187"/>
+ <source>Close file</source>
+ <translation>關閉檔案</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="190"/>
+ <source>&amp;Quit</source>
+ <translation>離開 (&amp;Q)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="193"/>
+ <source>Quit Program</source>
+ <translation>離開程式</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="198"/>
+ <source>&amp;Undo</source>
+ <translation>還原 (&amp;U)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="200"/>
+ <source>Undo Last Edit Action</source>
+ <translation>還原最後的編輯動作</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="203"/>
+ <source>&amp;Redo</source>
+ <translation>重做 (&amp;R)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="205"/>
+ <source>Redo Last Edit Action</source>
+ <translation>重做一次最後的編輯動作</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="208"/>
+ <source>Zoom In</source>
+ <translation>拉近</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="212"/>
+ <source>Zoom Out</source>
+ <translation>拉遠</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="216"/>
+ <source>&amp;Paste</source>
+ <translation>貼上 (&amp;P)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="219"/>
+ <source>Paste Text From Clipboard</source>
+ <translation>從剪貼簿貼上文字</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="222"/>
+ <source>Cu&amp;t</source>
+ <translation>剪下 (&amp;t)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="225"/>
+ <source>Cut the current selection&apos;s contents to the clipboard</source>
+ <translation>將目前選取的內容剪下並存放至剪貼簿</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="229"/>
+ <source>&amp;Copy</source>
+ <translation>複製 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="232"/>
+ <source>Copy the current selection&apos;s contents to the clipboard</source>
+ <translation>將目前選取的內容複製到剪貼簿</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="236"/>
+ <source>&amp;Quote</source>
+ <translation>引用 (&amp;Q)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="238"/>
+ <source>Quote whole text</source>
+ <translation>引用整段文字</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="241"/>
+ <source>Select &amp;All</source>
+ <translation>全選 (&amp;A)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="244"/>
+ <source>Select the whole text</source>
+ <translation>選取整段文字</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="247"/>
+ <source>Remove &amp;spacing</source>
+ <translation>移除空行 (&amp;s)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="250"/>
+ <source>Remove double linebreaks, e.g. in pasted text from webmailer</source>
+ <translation>移除連續兩次的換列,可用於從網頁郵件服務貼上文字的時機</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="253"/>
+ <source>Se&amp;ttings</source>
+ <translation>設定 (&amp;t)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="254"/>
+ <source>Open settings dialog</source>
+ <translation>開啟設定對話框</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="260"/>
+ <source>&amp;Encrypt</source>
+ <translation>加密 (&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="263"/>
+ <source>Encrypt Message</source>
+ <translation>訊息加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="266"/>
+ <source>&amp;Decrypt</source>
+ <translation>解密 (&amp;D)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="269"/>
+ <source>Decrypt Message</source>
+ <translation>訊息解密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="272"/>
+ <source>&amp;File Encryption</source>
+ <translation>檔案加密 (&amp;F)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="274"/>
+ <source>Encrypt/Decrypt File</source>
+ <translation>檔案加密/解密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="280"/>
+ <source>&amp;Encrypt File</source>
+ <translation>檔案加密 (&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="282"/>
+ <source>Encrypt File</source>
+ <translation>檔案加密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="285"/>
+ <source>&amp;Decrypt File</source>
+ <translation>檔案解密 (&amp;D)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="287"/>
+ <source>Decrypt File</source>
+ <translation>檔案解密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="290"/>
+ <source>&amp;Sign</source>
+ <translation>簽署 (&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="293"/>
+ <source>Sign Message</source>
+ <translation>簽署訊息</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="296"/>
+ <source>&amp;Verify</source>
+ <translation>驗證 (&amp;V)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="299"/>
+ <source>Verify Message</source>
+ <translation>驗證訊息</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="305"/>
+ <source>&amp;Editor</source>
+ <translation>編輯器 (&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="307"/>
+ <source>Import New Key From Editor</source>
+ <translation>從編輯器匯入新的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="310"/>
+ <source>Manage &amp;keys</source>
+ <translation>管理金鑰 (&amp;k)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="312"/>
+ <source>Open Keymanagement</source>
+ <translation>開啟金鑰管理</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="317"/>
+ <source>&amp;About</source>
+ <translation>關於 (&amp;A)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="319"/>
+ <source>Show the application&apos;s About box</source>
+ <translation>顯示應用程式的「關於」對話方塊</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="322"/>
+ <source>Integrated Help</source>
+ <translation>內建說明文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="323"/>
+ <source>Open integrated Help</source>
+ <translation>開啟內建說明文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="326"/>
+ <source>Online &amp;Tutorials</source>
+ <translation>線上教學文件 (&amp;T)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="327"/>
+ <source>Open Online Tutorials</source>
+ <translation>開啟線上教學文件</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="330"/>
+ <source>Translate gpg4usb</source>
+ <translation>翻譯 gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="331"/>
+ <source>Translate gpg4usb yourself</source>
+ <translation>自行翻譯 gpg4usb</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="334"/>
+ <source>Open &amp;Wizard</source>
+ <translation>開啟精靈 (&amp;W)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="335"/>
+ <source>Open the wizard</source>
+ <translation>開啟精靈</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="340"/>
+ <source>Append Selected Key(s) To Text</source>
+ <translation>將所選的金鑰附加至文字後</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="341"/>
+ <source>Append The Selected Keys To Text in Editor</source>
+ <translation>在編輯器中,將所選的金鑰附加至文字後</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="344"/>
+ <source>Copy EMail-address</source>
+ <translation>複製電子郵件地址</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="345"/>
+ <source>Copy selected EMailaddress to clipboard</source>
+ <translation>將所選的電子郵件地址複製到剪貼簿</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="349"/>
+ <source>Show Keydetails</source>
+ <translation>顯示金鑰詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="350"/>
+ <source>Show Details for this Key</source>
+ <translation>顯示此金鑰的詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="410"/>
+ <source>&amp;File</source>
+ <translation>檔案 (&amp;F)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="422"/>
+ <source>&amp;Edit</source>
+ <translation>編輯 (&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="438"/>
+ <source>&amp;Crypt</source>
+ <translation>編密 (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="448"/>
+ <source>&amp;Keys</source>
+ <translation>金鑰 (&amp;K)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="449"/>
+ <source>&amp;Import Key From...</source>
+ <translation>匯入金鑰自 (&amp;I)...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="458"/>
+ <source>&amp;Steganography</source>
+ <translation>資訊偽裝 (&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="620"/>
+ <source>About</source>
+ <translation>關於 </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="623"/>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation>&lt;center&gt;本應用程式讓你能夠輕鬆地對文字訊息和檔案&lt;br&gt;予以加密和解密。&lt;br&gt;本程式係採用 GPL v3 授權&lt;br&gt;&lt;br&gt;&lt;b&gt;開發者:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;正體中文翻譯:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;如果你有任何疑問或建議事項,請至我們的&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;聯絡頁面&lt;/a&gt;或寫信至我們的郵遞論壇: &lt;br/&gt;&lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;&lt;br/&gt;繁體中文翻譯方面的建議或更正事項,請直接&lt;br/&gt;與 Jedi 聯繫: &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="365"/>
+ <source>Remove PGP Header</source>
+ <translation>移除 PGP 標頭</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="368"/>
+ <source>Add PGP Header</source>
+ <translation>加上 PGP 標頭</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="467"/>
+ <source>&amp;View</source>
+ <translation>檢視 (&amp;V)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="469"/>
+ <source>&amp;Help</source>
+ <translation>說明 (&amp;H)</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="482"/>
+ <source>File</source>
+ <translation>檔案</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="490"/>
+ <source>Crypt</source>
+ <translation>編密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="499"/>
+ <source>Key</source>
+ <translation>金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="504"/>
+ <source>Edit</source>
+ <translation>編輯</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="511"/>
+ <source>Special edit</source>
+ <translation>特殊編輯</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="522"/>
+ <source>Import key from...</source>
+ <translation>匯入金鑰自...</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="523"/>
+ <source>Import key</source>
+ <translation>匯入金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="534"/>
+ <source>Encrypt or decrypt File</source>
+ <translation>檔案加密或解密</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="535"/>
+ <source>File..</source>
+ <translation>檔案..</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="553"/>
+ <source>Ready</source>
+ <translation>就緒</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="561"/>
+ <source>Encrypt for:</source>
+ <translation>加密對象:</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="580"/>
+ <source>Attached files:</source>
+ <translation>附加檔案:</translation>
+ </message>
+ <message>
+ <source>About </source>
+ <translation type="obsolete">關於 </translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;This application allows simple encryption &lt;br&gt;and decryption of text messages or files.&lt;br&gt;It&apos;s licensed under the GPL v3&lt;br&gt;&lt;br&gt;&lt;b&gt;Developer:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;Translation:&lt;/b&gt;&lt;br&gt;Viriato/Phol (es), &lt;br&gt;Serse (it), Russell (my),&lt;br&gt;Alessandro (pt_br), Kirill (ru), Tom (vi)&lt;br&gt;&lt;br&gt;If you have any questions or suggestions have a look&lt;br/&gt;at our &lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;contact page&lt;/a&gt; or send a mail to our&lt;br/&gt; mailing list at &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;.</source>
+ <translation type="obsolete">&lt;center&gt;本應用程式讓你能夠輕鬆地對文字訊息和檔案&lt;br&gt;予以加密和解密。&lt;br&gt;本程式係採用 GPL v3 授權&lt;br&gt;&lt;br&gt;&lt;b&gt;開發者:&lt;/b&gt;&lt;br&gt;Bene, Heimer, Juergen, Nils, Ubbo&lt;br&gt;&lt;br&gt;&lt;b&gt;正體中文翻譯:&lt;/b&gt;&lt;br&gt;Ahmad (ar), Alessandro (pt_br), Åke (sv),&lt;br/&gt;Elad (he), George (el), Jedi Lin (zh_tw),&lt;br/&gt;Kirill (ru), Marek Bogacz (pl), Phol (es),&lt;br/&gt;Russell (my), Serse (it), Tom (vi),&lt;br/&gt;Toughworm(zh), Viriato (es)&lt;br&gt;&lt;br&gt;如果你有任何疑問或建議事項,請至我們的&lt;br/&gt;&lt;a href=&quot;http://gpg4usb.cpunk.de/contact.php&quot;&gt;聯絡頁面&lt;/a&gt;或寫信至我們的郵遞論壇: &lt;br/&gt;&lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;&lt;br/&gt;繁體中文翻譯方面的建議或更正事項,請直接&lt;br/&gt;與 Jedi 聯繫: &lt;a href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="635"/>
+ <source>&lt;br&gt;&lt;br&gt; Built with Qt </source>
+ <translation>&lt;br&gt;&lt;br&gt; 建造工具: Qt </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="636"/>
+ <source> and GPGME </source>
+ <translation> 及 GPGME </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="741"/>
+ <source>There is one unencrypted file in attachment folder</source>
+ <translation>在附加檔案資料夾內有個未加密的檔案</translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source>There are </source>
+ <translation>在附加檔案資料夾內有 </translation>
+ </message>
+ <message>
+ <location filename="../../mainwindow.cpp" line="743"/>
+ <source> unencrypted files in attachment folder</source>
+ <translation> 個未加密的檔案</translation>
+ </message>
+</context>
+<context>
+ <name>MimeTab</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="204"/>
+ <source>Decode quoted printable</source>
+ <translation>QP 解碼</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="206"/>
+ <source>Try to recognize quoted printable.</source>
+ <translation>嘗試辨認 QP 編碼過的內容。</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="210"/>
+ <source>Parse PGP/MIME (Experimental)</source>
+ <translation>剖析 PGP/MIME (實驗性功能)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="212"/>
+ <source>Try to split attachments from PGP-MIME ecrypted messages.</source>
+ <translation>嘗試將附加檔案從 PGP/MIME 加密過的訊息中分離出來。</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="216"/>
+ <source>Open with external application (Experimental)</source>
+ <translation>以外部應用程式開啟 (實驗性功能)</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="218"/>
+ <source>Open attachments with default application for the filetype.&lt;br&gt; There are at least two possible problems with this behaviour:&lt;ol&gt;&lt;li&gt;File needs to be saved unencrypted to attachments folder.&lt;br&gt; Its your job to clean this folder.&lt;/li&gt;&lt;li&gt;The external application may have its own temp files.&lt;/li&gt;&lt;/ol&gt;</source>
+ <translation>按照附加檔案的檔案型別,以預設的應用程式開啟。&lt;br&gt;這個行為至少有兩種可能的問題:&lt;ol&gt;&lt;li&gt;檔案需要先以未加密的型態儲存於附加檔案資料夾。&lt;br&gt;你必須要自己手動清理這個資料夾。&lt;/li&gt;&lt;li&gt;外部應用程式可能會自己產生暫存檔。&lt;/li&gt;&lt;/ol&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="225"/>
+ <source>Enable opening with external applications.</source>
+ <translation>啟用以外部應用程式開啟檔案的功能。</translation>
+ </message>
+</context>
+<context>
+ <name>QuitDialog</name>
+ <message>
+ <location filename="../../quitdialog.cpp" line="28"/>
+ <source>Unsaved files</source>
+ <translation>未儲存的檔案</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="74"/>
+ <source>&lt;h3&gt;%1 files contain unsaved information.&lt;br/&gt;Save the changes before closing?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;%1 個檔案含有未儲存的資訊。&lt;br/&gt;請問是否要在關閉前儲存這些變更?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="85"/>
+ <source>Check the files you want to save:</source>
+ <translation>請核選欲儲存的檔案:</translation>
+ </message>
+ <message>
+ <location filename="../../quitdialog.cpp" line="86"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;注意:&lt;/b&gt; 如果你不儲存這些檔案,將失去所有的變動。&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="34"/>
+ <source>General</source>
+ <translation>一般</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="35"/>
+ <source>Appearance</source>
+ <translation>外觀</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="36"/>
+ <source>PGP/Mime</source>
+ <translation>PGP/MIME</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="37"/>
+ <source>Keyserver</source>
+ <translation>金鑰伺服器</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="38"/>
+ <source>Advanced</source>
+ <translation>進階</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="51"/>
+ <source>Settings</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <location filename="../../settingsdialog.cpp" line="72"/>
+ <source>System Default</source>
+ <translation>系統預設</translation>
+ </message>
+</context>
+<context>
+ <name>TextEdit</name>
+ <message>
+ <location filename="../../textedit.cpp" line="45"/>
+ <source>untitled</source>
+ <translation>未命名</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="66"/>
+ <source>Open file</source>
+ <translation>開啟檔案</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="90"/>
+ <location filename="../../textedit.cpp" line="378"/>
+ <source>Application</source>
+ <translation>應用程式</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="91"/>
+ <location filename="../../textedit.cpp" line="379"/>
+ <source>Cannot read file %1:
+%2.</source>
+ <translation>無法讀取檔案 %1:
+%2。</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="142"/>
+ <source>File</source>
+ <translation>檔案</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="143"/>
+ <source>Cannot write file %1:
+%2.</source>
+ <translation>無法寫入檔案 %1:
+%2。</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="165"/>
+ <source>Save file </source>
+ <translation>儲存檔案 </translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="231"/>
+ <source>Unsaved document</source>
+ <translation>未儲存的文件</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="232"/>
+ <source>&lt;h3&gt;The document &quot;%1&quot; has been modified.&lt;br/&gt;Do you want to save your changes?&lt;/h3&gt;</source>
+ <translation>&lt;h3&gt;此文件 &quot;%1&quot; 業已更動。&lt;br/&gt;請問你是否想要儲存你所做的變更?&lt;/h3&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../textedit.cpp" line="233"/>
+ <source>&lt;b&gt;Note:&lt;/b&gt; If you don&apos;t save these files, all changes are lost.&lt;br/&gt;</source>
+ <translation>&lt;b&gt;注意:&lt;/b&gt; 如果你不儲存這些檔案,將失去所有的變動。&lt;br/&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyDetailsDialog</name>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="30"/>
+ <source>Signaturedetails</source>
+ <translation>簽章詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="61"/>
+ <source>Error Validating signature</source>
+ <translation>驗證簽章時出錯</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="67"/>
+ <source>Text was completely signed on
+ %1 by:
+</source>
+ <translation>文字係經完整簽署於
+ %1 由:
+</translation>
+ </message>
+ <message>
+ <location filename="../../verifydetailsdialog.cpp" line="72"/>
+ <source>Text was partially signed on
+ %1 by:
+</source>
+ <translation>文字係經部分簽署於
+ %1 由:
+</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyKeyDetailBox</name>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="37"/>
+ <source>Import from keyserver</source>
+ <translation>從金鑰伺服器匯入</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="42"/>
+ <location filename="../../verifykeydetailbox.cpp" line="57"/>
+ <location filename="../../verifykeydetailbox.cpp" line="72"/>
+ <source>Status:</source>
+ <translation>狀態:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="56"/>
+ <location filename="../../verifykeydetailbox.cpp" line="73"/>
+ <source>Fingerprint:</source>
+ <translation>指紋:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="44"/>
+ <source>Key not present in keylist</source>
+ <translation>金鑰不存在於金鑰清單</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="40"/>
+ <source>Key not present with id 0x</source>
+ <translation>具此 ID 的金鑰不存在: 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="54"/>
+ <location filename="../../verifykeydetailbox.cpp" line="70"/>
+ <source>Name:</source>
+ <translation>姓名:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="55"/>
+ <location filename="../../verifykeydetailbox.cpp" line="71"/>
+ <source>EMail:</source>
+ <translation>電子郵件:</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="62"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../verifykeydetailbox.cpp" line="69"/>
+ <source>Error for key with id 0x</source>
+ <translation>具此 ID 的金鑰出錯: 0x</translation>
+ </message>
+</context>
+<context>
+ <name>VerifyNotification</name>
+ <message>
+ <location filename="../../verifynotification.cpp" line="35"/>
+ <source>Import missing key from Keyserver</source>
+ <translation>從金鑰伺服器匯入缺少的金鑰</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="38"/>
+ <source>Show detailed verify information</source>
+ <translation>顯示詳細的驗證資訊</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="47"/>
+ <source>Details</source>
+ <translation>詳細資訊</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="117"/>
+ <source>Key not present with id 0x</source>
+ <translation>具此 ID 之金鑰不存在: 0x</translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="159"/>
+ <source>Error validating signature by: </source>
+ <translation>驗證以下簽章時出錯: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="164"/>
+ <source>Text was completely signed by: </source>
+ <translation>文字係經此人完整簽署: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="169"/>
+ <source>Text was partially signed by: </source>
+ <translation>文字係經此人部分簽署: </translation>
+ </message>
+ <message>
+ <location filename="../../verifynotification.cpp" line="147"/>
+ <source>Error for key with fingerprint </source>
+ <translation>具此指紋之金鑰出錯: </translation>
+ </message>
+</context>
+<context>
+ <name>Wizard</name>
+ <message>
+ <location filename="../../wizard.cpp" line="44"/>
+ <source>First Start Wizard</source>
+ <translation>初次啟動精靈</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Import Error</source>
+ <translation>匯入出錯</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="77"/>
+ <source>Couldn&apos;t locate any keyring file in %1</source>
+ <translation>無法在 %1 找到任何金鑰鑰匙圈</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Import error</source>
+ <translation>匯入出錯</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="85"/>
+ <source>Couldn&apos;t open private keyringfile: %1</source>
+ <translation>無法開啟私鑰鑰匙圈檔案: %1</translation>
+ </message>
+ <message>
+ <location filename="../../wizard.cpp" line="95"/>
+ <source>Couldn&apos;t open public keyringfile: %1</source>
+ <translation>無法開啟公鑰鑰匙圈檔案: %1</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp
new file mode 100644
index 00000000..3362342a
--- /dev/null
+++ b/src/aboutdialog.cpp
@@ -0,0 +1,92 @@
+/*
+ * aboutdialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "aboutdialog.h"
+
+AboutDialog::AboutDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ this->setWindowTitle(tr("About ")+ qApp->applicationName());
+
+ QTabWidget *tabWidget = new QTabWidget;
+ InfoTab *infoTab = new InfoTab;
+ TranslatorsTab *translatorsTab = new TranslatorsTab;
+
+ tabWidget->addTab(infoTab, tr("General"));
+ tabWidget->addTab(translatorsTab, tr("Translators"));
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok);
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(close()));
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(tabWidget);
+ mainLayout->addWidget(buttonBox);
+ setLayout(mainLayout);
+
+ this->exec();
+}
+
+InfoTab::InfoTab(QWidget *parent)
+ : QWidget(parent)
+{
+ QPixmap *pixmap = new QPixmap(":gpg4usb-logo.png");
+ QString *text = new QString("<center><h2>" + qApp->applicationName() + " "
+ + qApp->applicationVersion() + "</h2></center>"
+ + tr("<center>This application allows simple encryption <br>"
+ "and decryption of text messages or files.<br>"
+ "It's licensed under the GPL v3<br><br>"
+ "<b>Developer:</b><br>"
+ "Bene, Heimer, Juergen, Nils, Ubbo<br><br>"
+ "If you have any questions or suggestions have a look<br/>"
+ "at our <a href=\"http://gpg4usb.cpunk.de/contact.php\">"
+ "contact page</a> or send a mail to our<br/> mailing list at"
+ " <a href=\"mailto:[email protected]\">[email protected]</a>.") + tr("<br><br> Built with Qt ") + qVersion()
+ + tr(" and GPGME ") + GpgME::GpgContext::getGpgmeVersion() +"</center>");
+
+ QGridLayout *layout = new QGridLayout();
+ QLabel *pixmapLabel = new QLabel();
+ pixmapLabel->setPixmap(*pixmap);
+ layout->addWidget(pixmapLabel, 0, 0, 1, -1, Qt::AlignCenter);
+ QLabel *aboutLabel = new QLabel();
+ aboutLabel->setText(*text);
+ aboutLabel->setOpenExternalLinks(true);
+ layout->addWidget(aboutLabel, 1, 0, 1, -1);
+ layout->addItem(new QSpacerItem(20, 10, QSizePolicy::Minimum,
+ QSizePolicy::Fixed), 2, 1, 1, 1);
+
+ setLayout(layout);
+}
+
+TranslatorsTab::TranslatorsTab(QWidget *parent)
+ : QWidget(parent)
+{
+ QFile translatorsFile;
+ translatorsFile.setFileName(qApp->applicationDirPath()+"/TRANSLATORS");
+ translatorsFile.open(QIODevice::ReadOnly);
+ QByteArray inBuffer = translatorsFile.readAll();
+
+ QLabel *label = new QLabel(inBuffer);
+ QVBoxLayout *mainLayout = new QVBoxLayout(this);
+ mainLayout->addWidget(label);
+
+ setLayout(mainLayout);
+}
+
diff --git a/src/attachments.cpp b/src/attachments.cpp
new file mode 100644
index 00000000..1110464a
--- /dev/null
+++ b/src/attachments.cpp
@@ -0,0 +1,183 @@
+/*
+ * attachments.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+/* TODO:
+ * - check content encoding (base64 / quoted-printable) and apply appropriate opperation (maybe already in mime.cpp)
+ * - check memory usage, use less copy operations / more references
+ * - possibility to clear attachment-view , e.g. with decryption or encrypting a new message
+ * - save all: like in thunderbird, one folder, all files go there
+ */
+
+/*
+ * - save, delete (clear) all
+ * - each line save & clear button
+ * - attached files to view-menu
+ * - also an open button, whichs should save file to tmp-folder, and open with correct app (via QDesktopServices)
+ */
+
+
+#include "attachments.h"
+
+Attachments::Attachments(QWidget *parent)
+ : QWidget(parent)
+{
+ table = new AttachmentTableModel(this);
+
+ tableView = new QTableView;
+ tableView->setModel(table);
+ tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
+ // only one entry should be selected at time
+ tableView->setSelectionMode(QAbstractItemView::SingleSelection);
+ tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ tableView->setFocusPolicy(Qt::NoFocus);
+ tableView->setAlternatingRowColors(true);
+ tableView->verticalHeader()->hide();
+ tableView->setShowGrid(false);
+ tableView->setColumnWidth(0, 300);
+ tableView->horizontalHeader()->setStretchLastSection(true);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(tableView);
+ layout->setContentsMargins(0,0,0,0);
+ setLayout(layout);
+ createActions();
+
+}
+
+void Attachments::contextMenuEvent(QContextMenuEvent *event)
+{
+ QMenu menu(this);
+ menu.addAction(saveFileAct);
+ // enable open with only if allowed by user
+ if(settings.value("mime/openAttachment").toBool())
+ menu.addAction(openFileAct);
+
+ menu.exec(event->globalPos());
+}
+
+void Attachments::createActions()
+{
+ saveFileAct = new QAction(tr("Save File"), this);
+ saveFileAct->setToolTip(tr("Save this file"));
+ saveFileAct->setIcon(QIcon(":filesave.png"));
+ connect(saveFileAct, SIGNAL(triggered()), this, SLOT(slotSaveFile()));
+
+ openFileAct = new QAction(tr("Open File"), this);
+ openFileAct->setToolTip(tr("Open this file"));
+ openFileAct->setIcon(QIcon(":fileopen.png"));
+ connect(openFileAct, SIGNAL(triggered()), this, SLOT(slotOpenFile()));
+
+}
+
+void Attachments::slotSaveFile()
+{
+
+ QModelIndexList indexes = tableView->selectionModel()->selection().indexes();
+
+ if (indexes.size() < 1) {
+ return;
+ }
+
+ // only singe-selection possible now: TODO: foreach
+ MimePart mp = table->getMimePart(indexes.at(0).row());
+ QString filename = mp.header.getParam("Content-Type", "name");
+ // TODO: find out why filename is quoted
+ filename.chop(1);
+ filename.remove(0, 1);
+ // TODO: check if really base64
+ saveByteArrayToFile(QByteArray::fromBase64(mp.body), filename);
+
+}
+
+void Attachments::saveByteArrayToFile(QByteArray outBuffer, QString filename)
+{
+
+ //QString path="";
+ QString path = filename;
+ QString outfileName = QFileDialog::getSaveFileName(this, tr("Save File"), path);
+
+ if (outfileName.isEmpty()) return;
+
+ QFile outfile(outfileName);
+ if (!outfile.open(QFile::WriteOnly)) {
+ QMessageBox::warning(this, tr("File"),
+ tr("Cannot write file %1:\n%2.")
+ .arg(outfileName)
+ .arg(outfile.errorString()));
+ return;
+ }
+
+ QDataStream out(&outfile);
+ out.writeRawData(outBuffer.data(), outBuffer.length());
+ outfile.close();
+}
+
+/**
+ * WIP: TODO:
+ * - create attachments dir if not existing
+ * - ask for cleanup of dir on exit
+ * - remove code-duplication with saveByteArrayToFile
+ */
+void Attachments::slotOpenFile() {
+
+ // TODO: make attachmentdir constant or configurable
+ QString attachmentDir = qApp->applicationDirPath() + "/attachments/";
+ //QDir p = QDir(qApp->applicationDirPath() + "/attachments/");
+ if(!QDir(attachmentDir).exists()) {
+ QDir().mkpath(attachmentDir);
+ }
+
+ QModelIndexList indexes = tableView->selectionModel()->selection().indexes();
+ MimePart mp = table->getMimePart(indexes.at(0).row());
+
+// qDebug() << "mime: " << mp.header.getValue("Content-Type");
+
+ QString filename = mp.header.getParam("Content-Type", "name");
+ // TODO: find out why filename is quoted
+// qDebug() << "file: " << filename;
+ filename.chop(1);
+ filename.remove(0, 1);
+ filename.prepend(attachmentDir);
+
+ // qDebug() << "file: " << filename;
+ QByteArray outBuffer = QByteArray::fromBase64(mp.body);
+
+
+ QFile outfile(filename);
+ if (!outfile.open(QFile::WriteOnly)) {
+ QMessageBox::warning(this, tr("File"),
+ tr("Cannot write file %1:\n%2.")
+ .arg(filename)
+ .arg(outfile.errorString()));
+ return;
+ }
+
+ QDataStream out(&outfile);
+ out.writeRawData(outBuffer.data(), outBuffer.length());
+ outfile.close();
+ QDesktopServices::openUrl(QUrl("file://"+filename, QUrl::TolerantMode));
+}
+
+void Attachments::addMimePart(MimePart *mp)
+{
+ table->add(*mp);
+}
+
diff --git a/src/attachmenttablemodel.cpp b/src/attachmenttablemodel.cpp
new file mode 100644
index 00000000..6b698b61
--- /dev/null
+++ b/src/attachmenttablemodel.cpp
@@ -0,0 +1,138 @@
+/*
+ * attachmenttablemodel.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "attachmenttablemodel.h"
+
+/** compare with http://doc.qt.nokia.com/4.6/itemviews-addressbook.html
+ */
+
+AttachmentTableModel::AttachmentTableModel(QObject *parent) :
+ QAbstractTableModel(parent)
+{
+}
+
+AttachmentTableModel::AttachmentTableModel(QList<MimePart> mimeparts, QObject *parent) :
+ QAbstractTableModel(parent)
+{
+ listOfMimeparts = mimeparts;
+}
+
+
+void AttachmentTableModel::add(MimePart mp)
+{
+ listOfMimeparts.append(mp);
+ //QModelIndex changedIndex0 = createIndex(listOfMimeparts.size(), 0);
+ //QModelIndex changedIndex1 = createIndex(listOfMimeparts.size(), 1);
+
+ //emit(dataChanged(changedIndex0, changedIndex1));
+ // TODO: check the data-changed signal
+ // reset();
+}
+
+MimePart AttachmentTableModel::getSelectedMimePart(QModelIndex index)
+{
+ return listOfMimeparts.at(index.row());
+}
+
+MimePart AttachmentTableModel::getMimePart(int index)
+{
+ return listOfMimeparts.at(index);
+}
+
+/*QList<MimePart> AttachmentTableModel::getSelectedMimeParts(QModelIndexList indexes){
+
+ foreach(QModelIndex index, indexes) {
+ qDebug() << "ir: "<< index.row();
+ }
+
+}*/
+
+int AttachmentTableModel::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return listOfMimeparts.size();
+}
+
+int AttachmentTableModel::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return 2;
+}
+
+QVariant AttachmentTableModel::data(const QModelIndex &index, int role) const
+{
+
+ //qDebug() << "called, index: " << index.column();
+
+ if (!index.isValid())
+ return QVariant();
+
+ if (index.row() >= listOfMimeparts.size() || index.row() < 0)
+ return QVariant();
+
+ if (role == Qt::DisplayRole) {
+ MimePart mp = listOfMimeparts.at(index.row());
+
+ if (index.column() == 0)
+ return mp.header.getParam("Content-Type", "name");
+ if (index.column() == 1)
+ return mp.header.getValue("Content-Type");
+
+ }
+
+ // set icon
+ // TODO more generic matching, e.g. for audio
+ if (role == Qt::DecorationRole && index.column() == 0) {
+ MimePart mp = listOfMimeparts.at(index.row());
+ QString icon;
+ if (mp.header.getValue("Content-Type").startsWith("image")) {
+ icon = ":mimetypes/image-x-generic.png";
+ } else {
+ icon = mp.header.getValue("Content-Type").replace("/", "-");
+ icon = ":mimetypes/" + icon + ".png";
+ }
+ if (!QFile::exists(icon)) icon = ":mimetypes/unknown.png";
+ return QIcon(icon);
+ }
+
+ return QVariant();
+}
+
+QVariant AttachmentTableModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ //qDebug() << "called, section: " << section;
+ if (role != Qt::DisplayRole)
+ return QVariant();
+
+ if (orientation == Qt::Horizontal) {
+ switch (section) {
+ case 0:
+ return tr("Filename");
+
+ case 1:
+ return tr("Contenttype");
+
+ default:
+ return QVariant();
+ }
+ }
+ return QVariant();
+}
diff --git a/src/editorpage.cpp b/src/editorpage.cpp
new file mode 100644
index 00000000..28926a99
--- /dev/null
+++ b/src/editorpage.cpp
@@ -0,0 +1,108 @@
+/*
+ * textpage.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "editorpage.h"
+
+EditorPage::EditorPage(const QString &filePath, QWidget *parent) : QWidget(parent),
+ fullFilePath(filePath)
+{
+ // Set the Textedit properties
+ textPage = new QTextEdit();
+ textPage->setAcceptRichText(false);
+
+ // Set the layout style
+ mainLayout = new QVBoxLayout();
+ mainLayout->setSpacing(0);
+ mainLayout->addWidget(textPage);
+ mainLayout->setContentsMargins(0,0,0,0);
+ setLayout(mainLayout);
+
+ setAttribute(Qt::WA_DeleteOnClose);
+ textPage->setFocus();
+
+ //connect(textPage, SIGNAL(textChanged()), this, SLOT(formatGpgHeader()));
+}
+
+const QString& EditorPage::getFilePath() const
+{
+ return fullFilePath;
+}
+
+QTextEdit* EditorPage::getTextPage()
+{
+ return textPage;
+}
+
+void EditorPage::setFilePath(const QString &filePath)
+{
+ fullFilePath = filePath;
+}
+
+void EditorPage::showNotificationWidget(QWidget *widget, const char *className)
+{
+ widget->setProperty(className,true);
+ mainLayout->addWidget(widget);
+}
+
+void EditorPage::closeNoteByClass(const char *className)
+{
+ QList<QWidget *> widgets = findChildren<QWidget *>();
+ foreach(QWidget * widget, widgets)
+ {
+ if (widget->property(className) == true) {
+ widget->close();
+ }
+ }
+}
+
+void EditorPage::slotFormatGpgHeader() {
+
+ QString content = textPage->toPlainText();
+
+ // Get positions of the gpg-headers, if they exist
+ int start = content.indexOf(GpgConstants::PGP_SIGNED_BEGIN);
+ int startSig = content.indexOf(GpgConstants::PGP_SIGNATURE_BEGIN);
+ int endSig = content.indexOf(GpgConstants::PGP_SIGNATURE_END);
+
+ if(start < 0 || startSig < 0 || endSig < 0 || signMarked) {
+ return;
+ }
+
+ signMarked = true;
+
+ // Set the fontstyle for the header
+ QTextCharFormat signFormat;
+ signFormat.setForeground(QBrush(QColor::fromRgb(80,80,80)));
+ signFormat.setFontPointSize(9);
+
+ // set font style for the signature
+ QTextCursor cursor(textPage->document());
+ cursor.setPosition(startSig, QTextCursor::MoveAnchor);
+ cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, endSig);
+ cursor.setCharFormat(signFormat);
+
+ // set the font style for the header
+ int headEnd = content.indexOf("\n\n", start);
+ cursor.setPosition(start, QTextCursor::MoveAnchor);
+ cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, headEnd);
+ cursor.setCharFormat(signFormat);
+
+}
diff --git a/src/fileencryptiondialog.cpp b/src/fileencryptiondialog.cpp
new file mode 100755
index 00000000..38b7de56
--- /dev/null
+++ b/src/fileencryptiondialog.cpp
@@ -0,0 +1,249 @@
+/*
+ * fileencryptiondialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "fileencryptiondialog.h"
+
+FileEncryptionDialog::FileEncryptionDialog(GpgME::GpgContext *ctx, QStringList keyList, DialogAction action, QWidget *parent)
+ : QDialog(parent)
+
+{
+ mAction = action;
+ mCtx = ctx;
+ if (mAction == Decrypt) {
+ setWindowTitle(tr("Decrypt File"));
+ resize(500, 200);
+ } else if (mAction == Encrypt) {
+ setWindowTitle(tr("Encrypt File"));
+ resize(500, 400);
+ } else if (mAction == Sign) {
+ setWindowTitle(tr("Sign File"));
+ resize(500, 400);
+ } else if (mAction == Verify) {
+ setWindowTitle(tr("Verify File"));
+ resize(500, 200);
+ }
+
+ setModal(true);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(slotExecuteAction()));
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+
+ QGroupBox *groupBox1 = new QGroupBox(tr("File"));
+
+ /* Setup input & Outputfileselection*/
+ inputFileEdit = new QLineEdit();
+ QPushButton *fb1 = new QPushButton("...");
+ connect(fb1, SIGNAL(clicked()), this, SLOT(slotSelectInputFile()));
+ QLabel *fl1 = new QLabel(tr("Input"));
+ fl1->setBuddy(inputFileEdit);
+
+ outputFileEdit = new QLineEdit();
+ QPushButton *fb2 = new QPushButton("...");
+ connect(fb2, SIGNAL(clicked()), this, SLOT(slotSelectOutputFile()));
+ QLabel *fl2 = new QLabel(tr("Output"));
+ fl2->setBuddy(outputFileEdit);
+
+ QGridLayout *gLayout = new QGridLayout();
+ gLayout->addWidget(fl1, 0, 0);
+ gLayout->addWidget(inputFileEdit, 0, 1);
+ gLayout->addWidget(fb1, 0, 2);
+ signFileEdit = new QLineEdit();
+ // verify does not need outfile, but signature file
+ if(mAction != Verify) {
+ gLayout->addWidget(fl2, 1, 0);
+ gLayout->addWidget(outputFileEdit, 1, 1);
+ gLayout->addWidget(fb2, 1, 2);
+ } else {
+ QPushButton *sfb1 = new QPushButton("...");
+ connect(sfb1, SIGNAL(clicked()), this, SLOT(slotSelectSignFile()));
+ QLabel *sfl1 = new QLabel(tr("Signature"));
+ sfl1->setBuddy(signFileEdit);
+
+ gLayout->addWidget(sfl1, 1, 0);
+ gLayout->addWidget(signFileEdit, 1, 1);
+ gLayout->addWidget(sfb1, 1, 2);
+ }
+ groupBox1->setLayout(gLayout);
+
+ /*Setup KeyList*/
+ mKeyList = new KeyList(mCtx);
+ mKeyList->hide();
+ mKeyList->setColumnWidth(2, 150);
+ mKeyList->setColumnWidth(3, 150);
+ mKeyList->setChecked(&keyList);
+
+ statusLabel = new QLabel();
+ statusLabel->setStyleSheet("QLabel {color: red;}");
+
+ QVBoxLayout *vbox2 = new QVBoxLayout();
+ vbox2->addWidget(groupBox1);
+ vbox2->addWidget(mKeyList);
+ vbox2->addWidget(statusLabel);
+ vbox2->addWidget(buttonBox);
+ vbox2->addStretch(0);
+ setLayout(vbox2);
+
+ if(action == Encrypt || action == Sign) {
+ slotShowKeyList();
+ }
+
+ exec();
+}
+
+void FileEncryptionDialog::slotSelectInputFile()
+{
+ QString path = "";
+ if (inputFileEdit->text().size() > 0) {
+ path = QFileInfo(inputFileEdit->text()).absolutePath();
+ }
+
+// QString infileName = QFileDialog::getOpenFileName(this, tr("Open File"), path, tr("Files") + tr("All Files (*)"));
+ QString infileName = QFileDialog::getOpenFileName(this, tr("Open File"), path);
+ inputFileEdit->setText(infileName);
+
+ // try to find a matching output-filename, if not yet done
+ if (infileName > 0
+ && outputFileEdit->text().size() == 0
+ && signFileEdit->text().size() == 0) {
+ if (mAction == Encrypt) {
+ outputFileEdit->setText(infileName + ".asc");
+ } else if (mAction == Sign) {
+ outputFileEdit->setText(infileName + ".sig");
+ } else if (mAction == Verify) {
+ signFileEdit->setText(infileName + ".sig");
+ } else {
+ if (infileName.endsWith(".asc", Qt::CaseInsensitive)) {
+ QString ofn = infileName;
+ ofn.chop(4);
+ outputFileEdit->setText(ofn);
+ } else {
+ outputFileEdit->setText(infileName + ".out");
+ }
+ }
+ }
+}
+
+void FileEncryptionDialog::slotSelectOutputFile()
+{
+ QString path = "";
+ if (outputFileEdit->text().size() > 0) {
+ path = QFileInfo(outputFileEdit->text()).absolutePath();
+ }
+
+ QString outfileName = QFileDialog::getSaveFileName(this, tr("Save File"),path, NULL ,NULL ,QFileDialog::DontConfirmOverwrite);
+ outputFileEdit->setText(outfileName);
+
+}
+
+void FileEncryptionDialog::slotSelectSignFile()
+{
+ QString path = "";
+ if (signFileEdit->text().size() > 0) {
+ path = QFileInfo(signFileEdit->text()).absolutePath();
+ }
+
+ QString signfileName = QFileDialog::getSaveFileName(this, tr("Open File"),path, NULL ,NULL ,QFileDialog::DontConfirmOverwrite);
+ signFileEdit->setText(signfileName);
+
+ if (inputFileEdit->text().size() == 0 && signfileName.endsWith(".sig", Qt::CaseInsensitive)) {
+ QString sfn = signfileName;
+ sfn.chop(4);
+ inputFileEdit->setText(sfn);
+ }
+
+}
+
+void FileEncryptionDialog::slotExecuteAction()
+{
+
+ QFile infile;
+ infile.setFileName(inputFileEdit->text());
+ if (!infile.open(QIODevice::ReadOnly)) {
+ statusLabel->setText( tr("Couldn't open file"));
+ inputFileEdit->setStyleSheet("QLineEdit { background: yellow }");
+ return;
+ }
+
+ QByteArray inBuffer = infile.readAll();
+ QByteArray *outBuffer = new QByteArray();
+ infile.close();
+ if ( mAction == Encrypt ) {
+ if (! mCtx->encrypt(mKeyList->getChecked(), inBuffer, outBuffer)) return;
+ }
+
+ if ( mAction == Decrypt ) {
+ if (! mCtx->decrypt(inBuffer, outBuffer)) return;
+ }
+
+ if( mAction == Sign ) {
+ if(! mCtx->sign(mKeyList->getChecked(), inBuffer, outBuffer, true)) return;
+ }
+
+ if( mAction == Verify ) {
+ QFile signfile;
+ signfile.setFileName(signFileEdit->text());
+ if (!signfile.open(QIODevice::ReadOnly)) {
+ statusLabel->setText( tr("Couldn't open file"));
+ signFileEdit->setStyleSheet("QLineEdit { background: yellow }");
+ return;
+ }
+ QByteArray signBuffer = signfile.readAll();
+ new VerifyDetailsDialog(this, mCtx, mKeyList, &inBuffer, &signBuffer);
+ return;
+ }
+
+ QFile outfile(outputFileEdit->text());
+ if (outfile.exists()){
+ QMessageBox::StandardButton ret;
+ ret = QMessageBox::warning(this, tr("File"),
+ tr("File exists! Do you want to overwrite it?"),
+ QMessageBox::Ok|QMessageBox::Cancel);
+ if (ret == QMessageBox::Cancel){
+ return;
+ }
+ }
+
+ if (!outfile.open(QFile::WriteOnly)) {
+ QMessageBox::warning(this, tr("File"),
+ tr("Cannot write file %1:\n%2.")
+ .arg(outputFileEdit->text())
+ .arg(outfile.errorString()));
+ return;
+ }
+
+ QDataStream out(&outfile);
+ out.writeRawData(outBuffer->data(), outBuffer->length());
+ outfile.close();
+ QMessageBox::information(0, "Done", "Output saved to " + outputFileEdit->text());
+
+ accept();
+}
+
+void FileEncryptionDialog::slotShowKeyList()
+{
+ mKeyList->show();
+}
+
+void FileEncryptionDialog::slotHideKeyList()
+{
+ mKeyList->hide();
+}
diff --git a/src/findwidget.cpp b/src/findwidget.cpp
new file mode 100644
index 00000000..ff8de5a5
--- /dev/null
+++ b/src/findwidget.cpp
@@ -0,0 +1,135 @@
+
+#include "findwidget.h"
+
+FindWidget::FindWidget(QWidget *parent, QTextEdit *edit) :
+ QWidget(parent)
+{
+ mTextpage = edit;
+ findEdit = new QLineEdit(this);
+ QPushButton *closeButton= new QPushButton(this->style()->standardIcon(QStyle::SP_TitleBarCloseButton),"",this);
+ QPushButton *nextButton= new QPushButton(QIcon(":button_next.png"), "");
+ QPushButton *previousButton= new QPushButton(QIcon(":button_previous.png"), "");
+
+ QHBoxLayout *notificationWidgetLayout = new QHBoxLayout(this);
+ notificationWidgetLayout->setContentsMargins(10,0,0,0);
+ notificationWidgetLayout->addWidget(new QLabel(tr("Find:")));
+ notificationWidgetLayout->addWidget(findEdit,2);
+ notificationWidgetLayout->addWidget(nextButton);
+ notificationWidgetLayout->addWidget(previousButton);
+ notificationWidgetLayout->addWidget(closeButton);
+
+ this->setLayout(notificationWidgetLayout);
+ connect(findEdit,SIGNAL(textEdited(QString)),this,SLOT(slotFind()));
+ connect(findEdit,SIGNAL(returnPressed()),this,SLOT(slotFindNext()));
+ connect(nextButton,SIGNAL(clicked()),this,SLOT(slotFindNext()));
+ connect(previousButton,SIGNAL(clicked()),this,SLOT(slotFindPrevious()));
+ connect(closeButton,SIGNAL(clicked()),this,SLOT(slotClose()));
+
+ // The timer is necessary for setting the focus
+ QTimer::singleShot(0, findEdit, SLOT(setFocus()));
+}
+
+void FindWidget::setBackground()
+{
+ QTextCursor cursor = mTextpage->textCursor();
+ // if match is found set background of QLineEdit to white, otherwise to red
+ QPalette bgPalette( findEdit->palette() );
+
+ if (!findEdit->text().isEmpty() && mTextpage->document()->find(findEdit->text()).position() < 0 ) {
+ bgPalette.setColor( QPalette::Base, "#ececba");
+ } else {
+ bgPalette.setColor( QPalette::Base, Qt::white);
+ }
+ findEdit->setPalette(bgPalette);
+}
+
+void FindWidget::slotFindNext()
+{
+ QTextCursor cursor = mTextpage->textCursor();
+ cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
+
+ // if end of document is reached, restart search from beginning
+ if (cursor.position() == -1) {
+ cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
+ }
+
+ // cursor should not stay at -1, otherwise text is not editable
+ // todo: check how gedit handles this
+ if(cursor.position() != -1) {
+ mTextpage->setTextCursor(cursor);
+ }
+ this->setBackground();
+}
+
+void FindWidget::slotFind()
+{
+ QTextCursor cursor = mTextpage->textCursor();
+
+ if (cursor.anchor() == -1) {
+ cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
+ } else {
+ cursor = mTextpage->document()->find(findEdit->text(), cursor.anchor(), QTextDocument::FindCaseSensitively);
+ }
+
+ // if end of document is reached, restart search from beginning
+ if (cursor.position() == -1) {
+ cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively);
+ }
+
+ // cursor should not stay at -1, otherwise text is not editable
+ // todo: check how gedit handles this
+ if(cursor.position() != -1) {
+ mTextpage->setTextCursor(cursor);
+ }
+ this->setBackground();
+}
+
+void FindWidget::slotFindPrevious()
+{
+ QTextDocument::FindFlags flags;
+ flags |= QTextDocument::FindBackward;
+ flags |= QTextDocument::FindCaseSensitively;
+
+ QTextCursor cursor = mTextpage->textCursor();
+ cursor = mTextpage->document()->find(findEdit->text(), cursor, flags);
+
+ // if begin of document is reached, restart search from end
+ if (cursor.position() == -1) {
+ cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::End, flags);
+ }
+
+ // cursor should not stay at -1, otherwise text is not editable
+ // todo: check how gedit handles this
+ if(cursor.position() != -1) {
+ mTextpage->setTextCursor(cursor);
+ }
+ this->setBackground();
+}
+
+void FindWidget::keyPressEvent( QKeyEvent* e )
+{
+ switch ( e->key() )
+ {
+ case Qt::Key_Escape:
+ this->slotClose();
+ break;
+ case Qt::Key_F3:
+ if (e->modifiers() & Qt::ShiftModifier) {
+ this->slotFindPrevious();
+ } else {
+ this->slotFindNext();
+ }
+ break;
+ }
+}
+
+void FindWidget::slotClose() {
+ QTextCursor cursor = mTextpage->textCursor();
+
+ if ( cursor.position() == -1) {
+ cursor.setPosition(0);
+ mTextpage->setTextCursor(cursor);
+ }
+ mTextpage->setFocus();
+ close();
+}
diff --git a/src/gpgconstants.cpp b/src/gpgconstants.cpp
new file mode 100644
index 00000000..0d3306ab
--- /dev/null
+++ b/src/gpgconstants.cpp
@@ -0,0 +1,31 @@
+/*
+ * gpgconstants.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "gpgconstants.h"
+#include <QString>
+
+const char* GpgConstants::PGP_CRYPT_BEGIN = "-----BEGIN PGP MESSAGE-----";
+const char* GpgConstants::PGP_CRYPT_END = "-----END PGP MESSAGE-----";
+const char* GpgConstants::PGP_SIGNED_BEGIN = "-----BEGIN PGP SIGNED MESSAGE-----";
+const char* GpgConstants::PGP_SIGNED_END = "-----END PGP SIGNATURE-----";
+const char* GpgConstants::PGP_SIGNATURE_BEGIN = "-----BEGIN PGP SIGNATURE-----";
+const char* GpgConstants::PGP_SIGNATURE_END = "-----END PGP SIGNATURE-----";
+
diff --git a/src/gpgcontext.cpp b/src/gpgcontext.cpp
new file mode 100644
index 00000000..af42eb55
--- /dev/null
+++ b/src/gpgcontext.cpp
@@ -0,0 +1,835 @@
+/*
+ * gpgcontext.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "gpgcontext.h"
+#include <unistd.h> /* contains read/write */
+#ifdef _WIN32
+#include <windows.h>
+#endif
+namespace GpgME
+{
+
+/** Constructor
+ * Set up gpgme-context, set paths to app-run path
+ */
+GpgContext::GpgContext()
+{
+ /** get application path */
+ QString appPath = qApp->applicationDirPath();
+
+ /** The function `gpgme_check_version' must be called before any other
+ * function in the library, because it initializes the thread support
+ * subsystem in GPGME. (from the info page) */
+ gpgme_check_version(NULL);
+
+ // TODO: Set gpgme_language to config
+ /*QSettings settings;
+ qDebug() << " - " << settings.value("int/lang").toLocale().name();
+ qDebug() << " - " << QLocale(settings.value("int/lang").toString()).name();*/
+
+ // the locale set here is used for the other setlocale calls which have NULL
+ // -> NULL means use default, which is configured here
+ setlocale(LC_ALL, "");
+
+ /** set locale, because tests do also */
+ gpgme_set_locale(NULL, LC_CTYPE, setlocale(LC_CTYPE, NULL));
+ //qDebug() << "Locale set to" << LC_CTYPE << " - " << setlocale(LC_CTYPE, NULL);
+#ifndef _WIN32
+ gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
+#endif
+
+ err = gpgme_new(&mCtx);
+
+ checkErr(err);
+ /** here come the settings, instead of /usr/bin/gpg
+ * a executable in the same path as app is used.
+ * also lin/win must be checked, for calling gpg.exe if needed
+ */
+#ifdef _WIN32
+ gpgBin = appPath + "/bin/gpg.exe";
+#else
+ gpgBin = appPath + "/bin/gpg";
+#endif
+
+ QSettings settings;
+ QString accKeydbPath = settings.value("gpgpaths/keydbpath").toString();
+ QString gpgKeys = appPath + "/keydb/"+accKeydbPath;
+
+ if (accKeydbPath != "") {
+ if (!QDir(gpgKeys).exists()) {
+ QMessageBox::critical(0,tr("keydb path"),tr("Didn't find keydb directory. Switching to gpg4usb's default keydb directory for this session."));
+ gpgKeys = appPath + "/keydb";
+ }
+ }
+
+ /* err = gpgme_ctx_set_engine_info(mCtx, GPGME_PROTOCOL_OpenPGP,
+ gpgBin.toUtf8().constData(),
+ gpgKeys.toUtf8().constData());*/
+#ifndef GPG4USB_NON_PORTABLE
+ err = gpgme_ctx_set_engine_info(mCtx, GPGME_PROTOCOL_OpenPGP,
+ gpgBin.toLocal8Bit().constData(),
+ gpgKeys.toLocal8Bit().constData());
+ checkErr(err);
+#endif
+
+ gpgme_engine_info_t engineInfo;
+ engineInfo = gpgme_ctx_get_engine_info(mCtx);
+
+
+ while (engineInfo !=NULL ) {
+ qDebug() << gpgme_get_protocol_name(engineInfo->protocol);
+ engineInfo=engineInfo->next;
+ }
+
+ /** Setting the output type must be done at the beginning */
+ /** think this means ascii-armor --> ? */
+ gpgme_set_armor(mCtx, 1);
+ /** passphrase-callback */
+ gpgme_set_passphrase_cb(mCtx, passphraseCb, this);
+
+ /** check if app is called with -d from command line */
+ if (qApp->arguments().contains("-d")) {
+ qDebug() << "gpgme_data_t debug on";
+ debug = true;
+ } else {
+ debug = false;
+ }
+
+ connect(this,SIGNAL(signalKeyDBChanged()),this,SLOT(slotRefreshKeyList()));
+ slotRefreshKeyList();
+}
+
+/** Destructor
+ * Release gpgme-context
+ */
+GpgContext::~GpgContext()
+{
+ if (mCtx) gpgme_release(mCtx);
+ mCtx = 0;
+}
+
+/** Import Key from QByteArray
+ *
+ */
+GpgImportInformation GpgContext::importKey(QByteArray inBuffer)
+{
+ GpgImportInformation *importInformation = new GpgImportInformation();
+ err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
+ checkErr(err);
+ err = gpgme_op_import(mCtx, in);
+ gpgme_import_result_t result;
+
+ result = gpgme_op_import_result(mCtx);
+ if (result->unchanged){
+ importInformation->unchanged = result->unchanged;
+ }
+ if (result->considered){
+ importInformation->considered = result->considered;
+ }
+ if (result->no_user_id){
+ importInformation->no_user_id = result->no_user_id;
+ }
+ if (result->imported){
+ importInformation->imported = result->imported;
+ }
+ if (result->imported_rsa){
+ importInformation->imported_rsa = result->imported_rsa;
+ }
+ if (result->unchanged){
+ importInformation->unchanged = result->unchanged;
+ }
+ if (result->new_user_ids){
+ importInformation->new_user_ids = result->new_user_ids;
+ }
+ if (result->new_sub_keys){
+ importInformation->new_sub_keys = result->new_sub_keys;
+ }
+ if (result->new_signatures){
+ importInformation->new_signatures = result->new_signatures;
+ }
+ if (result->new_revocations){
+ importInformation->new_revocations =result->new_revocations;
+ }
+ if (result->secret_read){
+ importInformation->secret_read = result->secret_read;
+ }
+ if (result->secret_imported){
+ importInformation->secret_imported = result->secret_imported;
+ }
+ if (result->secret_unchanged){
+ importInformation->secret_unchanged = result->secret_unchanged;
+ }
+ if (result->not_imported){
+ importInformation->not_imported = result->not_imported;
+ }
+ gpgme_import_status_t status = result->imports;
+ while (status != NULL) {
+ GpgImportedKey key;
+ key.importStatus = status->status;
+ key.fpr = status->fpr;
+ importInformation->importedKeys.append(key);
+ status=status->next;
+ }
+ checkErr(err);
+ emit signalKeyDBChanged();
+ gpgme_data_release(in);
+ return *importInformation;
+}
+
+/** Generate New Key with values params
+ *
+ */
+void GpgContext::generateKey(QString *params)
+{
+ err = gpgme_op_genkey(mCtx, params->toUtf8().data(), NULL, NULL);
+ checkErr(err);
+ emit signalKeyDBChanged();
+}
+
+/** Export Key to QByteArray
+ *
+ */
+bool GpgContext::exportKeys(QStringList *uidList, QByteArray *outBuffer)
+{
+ size_t read_bytes;
+ gpgme_data_t out = 0;
+ outBuffer->resize(0);
+
+ if (uidList->count() == 0) {
+ QMessageBox::critical(0, "Export Keys Error", "No Keys Selected");
+ return false;
+ }
+
+ for (int i = 0; i < uidList->count(); i++) {
+ err = gpgme_data_new(&out);
+ checkErr(err);
+
+ err = gpgme_op_export(mCtx, uidList->at(i).toUtf8().constData(), 0, out);
+ checkErr(err);
+
+ read_bytes = gpgme_data_seek(out, 0, SEEK_END);
+
+ err = readToBuffer(out, outBuffer);
+ checkErr(err);
+ gpgme_data_release(out);
+ }
+ return true;
+}
+
+gpgme_key_t GpgContext::getKeyDetails(QString uid)
+{
+ gpgme_key_t key;
+
+ // try secret
+ gpgme_get_key(mCtx, uid.toUtf8().constData(), &key, 1);
+ // ok, its a public key
+ if (!key) {
+ gpgme_get_key(mCtx, uid.toUtf8().constData(), &key, 0);
+ }
+ return key;
+}
+
+/** List all availabe Keys (VERY much like kgpgme)
+ */
+GpgKeyList GpgContext::listKeys()
+{
+ gpgme_error_t err;
+ gpgme_key_t key;
+
+ GpgKeyList keys;
+ //TODO dont run the loop more often than necessary
+ // list all keys ( the 0 is for all )
+ err = gpgme_op_keylist_start(mCtx, NULL, 0);
+ checkErr(err);
+ while (!(err = gpgme_op_keylist_next(mCtx, &key))) {
+ GpgKey gpgkey;
+
+ if (!key->subkeys)
+ continue;
+
+ gpgkey.id = key->subkeys->keyid;
+ gpgkey.fpr = key->subkeys->fpr;
+ gpgkey.expired = (key->expired != 0);
+ gpgkey.revoked = (key->revoked != 0);
+
+ if (key->uids) {
+ gpgkey.name = QString::fromUtf8(key->uids->name);
+ gpgkey.email = QString::fromUtf8(key->uids->email);
+ }
+ keys.append(gpgkey);
+ gpgme_key_unref(key);
+ }
+ gpgme_op_keylist_end(mCtx);
+
+ // list only private keys ( the 1 does )
+ gpgme_op_keylist_start(mCtx, NULL, 1);
+ while (!(err = gpgme_op_keylist_next(mCtx, &key))) {
+ if (!key->subkeys)
+ continue;
+ // iterate keys, mark privates
+ GpgKeyList::iterator it = keys.begin();
+ while (it != keys.end()) {
+ if (key->subkeys->keyid == it->id.toStdString())
+ it->privkey = true;
+ it++;
+ }
+
+ gpgme_key_unref(key);
+ }
+ gpgme_op_keylist_end(mCtx);
+
+ return keys;
+}
+
+/** Delete keys
+ */
+
+void GpgContext::deleteKeys(QStringList *uidList)
+{
+ QString tmp;
+ gpgme_key_t key;
+
+ foreach(tmp, *uidList) {
+ gpgme_op_keylist_start(mCtx, tmp.toUtf8().constData(), 0);
+ gpgme_op_keylist_next(mCtx, &key);
+ gpgme_op_keylist_end(mCtx);
+ gpgme_op_delete(mCtx, key, 1);
+ }
+ emit signalKeyDBChanged();
+}
+
+/** Encrypt inBuffer for reciepients-uids, write
+ * result to outBuffer
+ */
+bool GpgContext::encrypt(QStringList *uidList, const QByteArray &inBuffer, QByteArray *outBuffer)
+{
+
+ gpgme_data_t in = 0, out = 0;
+ outBuffer->resize(0);
+
+ if (uidList->count() == 0) {
+ QMessageBox::critical(0, tr("No Key Selected"), tr("No Key Selected"));
+ return false;
+ }
+
+ //gpgme_encrypt_result_t e_result;
+ gpgme_key_t recipients[uidList->count()+1];
+
+ /* get key for user */
+ for (int i = 0; i < uidList->count(); i++) {
+ // the last 0 is for public keys, 1 would return private keys
+ gpgme_op_keylist_start(mCtx, uidList->at(i).toUtf8().constData(), 0);
+ gpgme_op_keylist_next(mCtx, &recipients[i]);
+ gpgme_op_keylist_end(mCtx);
+ }
+ //Last entry in array has to be NULL
+ recipients[uidList->count()] = NULL;
+
+ //If the last parameter isnt 0, a private copy of data is made
+ if (mCtx) {
+ err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
+ checkErr(err);
+ if (!err) {
+ err = gpgme_data_new(&out);
+ checkErr(err);
+ if (!err) {
+ err = gpgme_op_encrypt(mCtx, recipients, GPGME_ENCRYPT_ALWAYS_TRUST, in, out);
+ checkErr(err);
+ if (!err) {
+ err = readToBuffer(out, outBuffer);
+ checkErr(err);
+ }
+ }
+ }
+ }
+ /* unref all keys */
+ for (int i = 0; i <= uidList->count(); i++) {
+ gpgme_key_unref(recipients[i]);
+ }
+ if (in) {
+ gpgme_data_release(in);
+ }
+ if (out) {
+ gpgme_data_release(out);
+ }
+ return (err == GPG_ERR_NO_ERROR);
+}
+
+/** Decrypt QByteAarray, return QByteArray
+ * mainly from http://basket.kde.org/ (kgpgme.cpp)
+ */
+bool GpgContext::decrypt(const QByteArray &inBuffer, QByteArray *outBuffer)
+{
+ gpgme_data_t in = 0, out = 0;
+ gpgme_decrypt_result_t result = 0;
+ QString errorString;
+
+ outBuffer->resize(0);
+ if (mCtx) {
+ err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
+ checkErr(err);
+ if (!err) {
+ err = gpgme_data_new(&out);
+ checkErr(err);
+ if (!err) {
+ err = gpgme_op_decrypt(mCtx, in, out);
+ checkErr(err);
+
+ if(gpg_err_code(err) == GPG_ERR_DECRYPT_FAILED) {
+ errorString.append(gpgErrString(err)).append("<br>");
+ result = gpgme_op_decrypt_result(mCtx);
+ checkErr(result->recipients->status);
+ errorString.append(gpgErrString(result->recipients->status)).append("<br>");
+ errorString.append(tr("<br>No private key with id %1 present in keyring").arg(result->recipients->keyid));
+ } else {
+ errorString.append(gpgErrString(err)).append("<br>");
+ }
+
+ if (!err) {
+ result = gpgme_op_decrypt_result(mCtx);
+ if (result->unsupported_algorithm) {
+ QMessageBox::critical(0, tr("Unsupported algorithm"), result->unsupported_algorithm);
+ } else {
+ err = readToBuffer(out, outBuffer);
+ checkErr(err);
+ }
+ }
+ }
+ }
+ }
+ if (gpg_err_code(err) != GPG_ERR_NO_ERROR && gpg_err_code(err) != GPG_ERR_CANCELED) {
+ QMessageBox::critical(0, tr("Error decrypting:"), errorString);
+ return false;
+ }
+
+ if (! settings.value("general/rememberPassword").toBool()) {
+ clearPasswordCache();
+ }
+
+ if (in) {
+ gpgme_data_release(in);
+ }
+ if (out) {
+ gpgme_data_release(out);
+ }
+ return (err == GPG_ERR_NO_ERROR);
+}
+
+/** Read gpgme-Data to QByteArray
+ * mainly from http://basket.kde.org/ (kgpgme.cpp)
+ */
+#define BUF_SIZE (32 * 1024)
+gpgme_error_t GpgContext::readToBuffer(gpgme_data_t in, QByteArray *outBuffer)
+{
+ int ret;
+ gpgme_error_t err = GPG_ERR_NO_ERROR;
+
+ ret = gpgme_data_seek(in, 0, SEEK_SET);
+ if (ret) {
+ err = gpgme_err_code_from_errno(errno);
+ checkErr(err, "failed dataseek in readToBuffer");
+ } else {
+ char *buf = new char[BUF_SIZE + 2];
+
+ if (buf) {
+ while ((ret = gpgme_data_read(in, buf, BUF_SIZE)) > 0) {
+ uint size = outBuffer->size();
+ outBuffer->resize(size + ret);
+ memcpy(outBuffer->data() + size, buf, ret);
+ }
+ if (ret < 0) {
+ err = gpgme_err_code_from_errno(errno);
+ checkErr(err, "failed data_read in readToBuffer");
+ }
+ delete[] buf;
+ }
+ }
+ return err;
+}
+
+/** The Passphrase window, if not provided by env-Var GPG_AGENT_INFO
+ * originally copied from http://basket.kde.org/ (kgpgme.cpp), but modified
+ */
+gpgme_error_t GpgContext::passphraseCb(void *hook, const char *uid_hint,
+ const char *passphrase_info,
+ int last_was_bad, int fd)
+{
+ GpgContext *gpg = static_cast<GpgContext*>(hook);
+ return gpg->passphrase(uid_hint, passphrase_info, last_was_bad, fd);
+}
+
+gpgme_error_t GpgContext::passphrase(const char *uid_hint,
+ const char * /*passphrase_info*/,
+ int last_was_bad, int fd)
+{
+ gpgme_error_t returnValue = GPG_ERR_CANCELED;
+ QString passwordDialogMessage;
+ QString gpgHint = QString::fromUtf8(uid_hint);
+ bool result;
+#ifdef _WIN32
+ DWORD written;
+ HANDLE hd = (HANDLE)fd;
+#endif
+
+ if (last_was_bad) {
+ passwordDialogMessage += "<i>"+tr("Wrong password")+".</i><br><br>\n\n";
+ clearPasswordCache();
+ }
+
+ /** if uid provided */
+ if (!gpgHint.isEmpty()) {
+ // remove UID, leave only username & email
+ gpgHint.remove(0, gpgHint.indexOf(" "));
+ passwordDialogMessage += "<b>"+tr("Enter Password for")+"</b><br>" + gpgHint + "<br>";
+ }
+
+ if (mPasswordCache.isEmpty()) {
+ QString password = QInputDialog::getText(QApplication::activeWindow(), tr("Enter Password"),
+ passwordDialogMessage, QLineEdit::Password,
+ "", &result);
+
+ if (result) mPasswordCache = password.toUtf8();
+ } else {
+ result = true;
+ }
+
+ if (result) {
+
+#ifndef _WIN32
+ if (write(fd, mPasswordCache.data(), mPasswordCache.length()) == -1) {
+ qDebug() << "something is terribly broken";
+ }
+#else
+ WriteFile(hd, mPasswordCache.data(), mPasswordCache.length(), &written, 0);
+#endif
+
+ returnValue = GPG_ERR_NO_ERROR;
+ }
+
+#ifndef _WIN32
+ if (write(fd, "\n", 1) == -1) {
+ qDebug() << "something is terribly broken";
+ }
+#else
+ WriteFile(hd, "\n", 1, &written, 0);
+
+ /* program will hang on cancel if hd not closed */
+ if(!result) {
+ CloseHandle(hd);
+ }
+#endif
+
+ return returnValue;
+}
+
+/** also from kgpgme.cpp, seems to clear password from mem */
+void GpgContext::clearPasswordCache()
+{
+ if (mPasswordCache.size() > 0) {
+ mPasswordCache.fill('\0');
+ mPasswordCache.truncate(0);
+ }
+}
+
+// error-handling
+int GpgContext::checkErr(gpgme_error_t err, QString comment) const
+{
+ //if (err != GPG_ERR_NO_ERROR && err != GPG_ERR_CANCELED) {
+ if (err != GPG_ERR_NO_ERROR) {
+ qDebug() << "[Error " << comment << "] Source: " << gpgme_strsource(err) << " String: " << gpgErrString(err);
+ }
+ return err;
+}
+
+int GpgContext::checkErr(gpgme_error_t err) const
+{
+ //if (err != GPG_ERR_NO_ERROR && err != GPG_ERR_CANCELED) {
+ if (err != GPG_ERR_NO_ERROR) {
+ qDebug() << "[Error] Source: " << gpgme_strsource(err) << " String: " << gpgErrString(err);
+ }
+ return err;
+}
+
+QString GpgContext::gpgErrString(gpgme_error_t err) {
+ return QString::fromUtf8(gpgme_strerror(err));
+}
+
+/** export private key, TODO errohandling, e.g. like in seahorse (seahorse-gpg-op.c) **/
+
+void GpgContext::exportSecretKey(QString uid, QByteArray *outBuffer)
+{
+ qDebug() << *outBuffer;
+ // export private key to outBuffer
+ QStringList arguments;
+ arguments << "--armor" << "--export-secret-key" << uid;
+ QByteArray *err = new QByteArray();
+ executeGpgCommand(arguments, outBuffer, err);
+
+ // append public key to outBuffer
+ QByteArray *pubKey = new QByteArray();
+ QStringList keyList;
+ keyList.append(uid);
+ exportKeys(&keyList,pubKey);
+ outBuffer->append(*pubKey);
+}
+
+/** return type should be gpgme_error_t*/
+void GpgContext::executeGpgCommand(QStringList arguments, QByteArray *stdOut, QByteArray *stdErr)
+{
+ QStringList args;
+ args << "--homedir" << gpgKeys << "--batch" << arguments;
+
+ qDebug() << args;
+ QProcess gpg;
+ // qDebug() << "engine->file_name" << engine->file_name;
+
+ gpg.start(gpgBin, args);
+ gpg.waitForFinished();
+
+ *stdOut = gpg.readAllStandardOutput();
+ *stdErr = gpg.readAllStandardError();
+ qDebug() << *stdOut;
+}
+
+/***
+ * if sigbuffer not set, the inbuffer should contain signed text
+ *
+ * TODO: return type should contain:
+ * -> list of sigs
+ * -> valid
+ * -> errors
+ */
+gpgme_signature_t GpgContext::verify(QByteArray *inBuffer, QByteArray *sigBuffer) {
+
+ int error=0;
+ gpgme_data_t in;
+ gpgme_error_t err;
+ gpgme_signature_t sign;
+ gpgme_verify_result_t result;
+
+ err = gpgme_data_new_from_mem(&in, inBuffer->data(), inBuffer->size(), 1);
+ checkErr(err);
+
+ if (sigBuffer != NULL ) {
+ gpgme_data_t sigdata;
+ err = gpgme_data_new_from_mem(&sigdata, sigBuffer->data(), sigBuffer->size(), 1);
+ err = gpgme_op_verify (mCtx, sigdata, in, NULL);
+ } else {
+ err = gpgme_op_verify (mCtx, in, NULL, in);
+ }
+ error = checkErr(err);
+
+ if (error != 0) {
+ return NULL;
+ }
+
+ result = gpgme_op_verify_result (mCtx);
+ sign = result->signatures;
+ return sign;
+}
+
+/***
+ * return type should contain:
+ * -> list of sigs
+ * -> valid
+ * -> decrypted message
+ */
+//void GpgContext::decryptVerify(QByteArray in) {
+
+/* gpgme_error_t err;
+ gpgme_data_t in, out;
+
+ gpgme_decrypt_result_t decrypt_result;
+ gpgme_verify_result_t verify_result;
+
+ err = gpgme_op_decrypt_verify (mCtx, in, out);
+ decrypt_result = gpgme_op_decrypt_result (mCtx);
+
+ verify_result = gpgme_op_verify_result (mCtx);
+ */
+//}
+
+bool GpgContext::sign(QStringList *uidList, const QByteArray &inBuffer, QByteArray *outBuffer, bool detached) {
+
+ gpgme_error_t err;
+ gpgme_data_t in, out;
+ gpgme_sign_result_t result;
+ gpgme_sig_mode_t mode;
+
+ if (uidList->count() == 0) {
+ QMessageBox::critical(0, tr("Key Selection"), tr("No Private Key Selected"));
+ return false;
+ }
+
+ // at start or end?
+ gpgme_signers_clear(mCtx);
+
+ //gpgme_encrypt_result_t e_result;
+ gpgme_key_t signers[uidList->count()+1];
+
+
+ // TODO: do we really need array? adding one key in loop should be ok
+ for (int i = 0; i < uidList->count(); i++) {
+ // the last 0 is for public keys, 1 would return private keys
+ gpgme_op_keylist_start(mCtx, uidList->at(i).toUtf8().constData(), 0);
+ gpgme_op_keylist_next(mCtx, &signers[i]);
+ gpgme_op_keylist_end(mCtx);
+
+ err = gpgme_signers_add (mCtx, signers[i]);
+ checkErr(err);
+ }
+
+ err = gpgme_data_new_from_mem(&in, inBuffer.data(), inBuffer.size(), 1);
+ checkErr(err);
+ err = gpgme_data_new (&out);
+ checkErr(err);
+
+ /*
+ `GPGME_SIG_MODE_NORMAL'
+ A normal signature is made, the output includes the plaintext
+ and the signature.
+
+ `GPGME_SIG_MODE_DETACH'
+ A detached signature is made.
+
+ `GPGME_SIG_MODE_CLEAR'
+ A clear text signature is made. The ASCII armor and text
+ mode settings of the context are ignored.
+ */
+
+ if(detached) {
+ mode = GPGME_SIG_MODE_DETACH;
+ } else {
+ mode = GPGME_SIG_MODE_CLEAR;
+ }
+
+ err = gpgme_op_sign (mCtx, in, out, mode);
+ checkErr (err);
+
+ if (err == GPG_ERR_CANCELED) {
+ return false;
+ }
+
+ if (err != GPG_ERR_NO_ERROR) {
+ QMessageBox::critical(0, tr("Error signing:"), QString::fromUtf8(gpgme_strerror(err)));
+ return false;
+ }
+
+ result = gpgme_op_sign_result (mCtx);
+ err = readToBuffer(out, outBuffer);
+ checkErr (err);
+
+ gpgme_data_release(in);
+ gpgme_data_release(out);
+
+ if (! settings.value("general/rememberPassword").toBool()) {
+ clearPasswordCache();
+ }
+
+ return (err == GPG_ERR_NO_ERROR);
+}
+
+/*
+ * if there is no '\n' before the PGP-Begin-Block, but for example a whitespace,
+ * GPGME doesn't recognise the Message as encrypted. This function adds '\n'
+ * before the PGP-Begin-Block, if missing.
+ */
+void GpgContext::preventNoDataErr(QByteArray *in)
+{
+ int block_start = in->indexOf(GpgConstants::PGP_CRYPT_BEGIN);
+ if (block_start > 0 && in->at(block_start - 1) != '\n') {
+ in->insert(block_start, '\n');
+ }
+ block_start = in->indexOf(GpgConstants::PGP_SIGNED_BEGIN);
+ if (block_start > 0 && in->at(block_start - 1) != '\n') {
+ in->insert(block_start, '\n');
+ }
+}
+
+/*
+ * isSigned returns:
+ * - 0, if text isn't signed at all
+ * - 1, if text is partially signed
+ * - 2, if text is completly signed
+ */
+int GpgContext::textIsSigned(const QByteArray &text) {
+ if (text.trimmed().startsWith(GpgConstants::PGP_SIGNED_BEGIN) && text.trimmed().endsWith(GpgConstants::PGP_SIGNED_END)) {
+ return 2;
+ }
+ if (text.contains(GpgConstants::PGP_SIGNED_BEGIN) && text.contains(GpgConstants::PGP_SIGNED_END)) {
+ return 1;
+ }
+ return 0;
+}
+
+QString GpgContext::beautifyFingerprint(QString fingerprint)
+{
+ uint len = fingerprint.length();
+ if ((len > 0) && (len % 4 == 0))
+ for (uint n = 0; 4 *(n + 1) < len; ++n)
+ fingerprint.insert(5 * n + 4, ' ');
+ return fingerprint;
+}
+
+void GpgContext::slotRefreshKeyList() {
+ mKeyList = this->listKeys();
+}
+
+/**
+ * note: privkey status is not returned
+ */
+GpgKey GpgContext::getKeyByFpr(QString fpr) {
+
+ //GpgKeyList list = this->listKeys();
+ foreach (GpgKey key, mKeyList) {
+ if(key.fpr == fpr) {
+ return key;
+ }
+ }
+
+ return GpgKey();
+}
+
+/**
+ * note: privkey status is not returned
+ */
+GpgKey GpgContext::getKeyById(QString id) {
+
+ //GpgKeyList list = this->listKeys();
+ foreach (GpgKey key, mKeyList) {
+ if(key.id == id) {
+ return key;
+ }
+ }
+
+ return GpgKey();
+}
+
+QString GpgContext::getGpgmeVersion() {
+ return QString(gpgme_check_version(NULL));
+}
+
+}
+
+
+
+
+
diff --git a/src/helppage.cpp b/src/helppage.cpp
new file mode 100644
index 00000000..ace8c92c
--- /dev/null
+++ b/src/helppage.cpp
@@ -0,0 +1,81 @@
+/*
+ * helppage.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "helppage.h"
+
+HelpPage::HelpPage(const QString path, QWidget *parent) :
+ QWidget(parent)
+{
+
+ browser = new QTextBrowser();
+ QVBoxLayout* mainLayout = new QVBoxLayout();
+ mainLayout->setSpacing(0);
+ mainLayout->addWidget(browser);
+ mainLayout->setContentsMargins(0,0,0,0);
+ setLayout(mainLayout);
+ //setAttribute(Qt::WA_DeleteOnClose);
+ //browser->setSource(QUrl::fromLocalFile(path));
+
+ connect(browser, SIGNAL(anchorClicked(QUrl)), this, SLOT(slotOpenUrl(QUrl)));
+ browser->setOpenLinks(false);
+ browser->setSource(localizedHelp(QUrl(path)));
+ browser->setFocus();
+
+}
+
+void HelpPage::slotOpenUrl(QUrl url) {
+ browser->setSource(localizedHelp(url));
+};
+
+/**
+ * @brief HelpPage::localizedHelp
+ * check if the requested file is also available with the locale,
+ * e.g. return index.de.html if index.html was requested but the
+ * locale is de and index.de.html is available
+ * @param url
+ * @return
+ */
+QUrl HelpPage::localizedHelp(QUrl url) {
+ QString path = url.toLocalFile();
+ QString filename = path.mid(path.lastIndexOf("/") + 1 );
+ QString filepath = path.left(path.lastIndexOf("/") + 1 );
+ QStringList fileparts = filename.split(".");
+
+ //QSettings settings;
+ QString lang = QSettings().value("int/lang", QLocale::system().name()).toString();
+ if (lang.isEmpty()) {
+ lang = QLocale::system().name();
+ }
+
+ fileparts.insert(1,lang);
+ QString langfile = filepath + fileparts.join(".");
+
+ if(QFile(QUrl(langfile).toLocalFile()).exists()) {
+ return langfile;
+ } else {
+ return path;
+ }
+
+}
+
+QTextBrowser* HelpPage::getBrowser() {
+ return browser;
+}
diff --git a/src/keydetailsdialog.cpp b/src/keydetailsdialog.cpp
new file mode 100644
index 00000000..36f2e4aa
--- /dev/null
+++ b/src/keydetailsdialog.cpp
@@ -0,0 +1,225 @@
+/*
+ * keydetailsdialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keydetailsdialog.h"
+
+KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWidget *parent)
+ : QDialog(parent)
+{
+ mCtx = ctx;
+ keyid = new QString(key->subkeys->keyid);
+
+ ownerBox = new QGroupBox(tr("Owner details"));
+ keyBox = new QGroupBox(tr("Key details"));
+ fingerprintBox = new QGroupBox(tr("Fingerprint"));
+ additionalUidBox = new QGroupBox(tr("Additional Uids"));
+ buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
+
+ nameVarLabel = new QLabel(QString::fromUtf8(key->uids->name));
+ nameVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
+ emailVarLabel = new QLabel(QString::fromUtf8(key->uids->email));
+ emailVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
+
+ commentVarLabel = new QLabel(QString::fromUtf8(key->uids->comment));
+ commentVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
+ keyidVarLabel = new QLabel(key->subkeys->keyid);
+ keyidVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
+
+ QString keySizeVal, keyExpireVal, keyCreatedVal, keyAlgoVal;
+
+ if (key->subkeys->expires == 0) {
+ keyExpireVal = tr("Never");
+ } else {
+ keyExpireVal = QDateTime::fromTime_t(key->subkeys->expires).toString("dd. MMM. yyyy");
+ }
+
+ keyAlgoVal = gpgme_pubkey_algo_name(key->subkeys->pubkey_algo);
+ keyCreatedVal = QDateTime::fromTime_t(key->subkeys->timestamp).toString("dd. MMM. yyyy");
+
+ // have el-gamal key?
+ if (key->subkeys->next) {
+ keySizeVal.sprintf("%d / %d", int(key->subkeys->length), int(key->subkeys->next->length));
+ if (key->subkeys->next->expires == 0) {
+ keyExpireVal += tr(" / Never");
+ } else {
+ keyExpireVal += " / " + QDateTime::fromTime_t(key->subkeys->next->expires).toString("dd. MMM. yyyy");
+ }
+ keyAlgoVal.append(" / ").append(gpgme_pubkey_algo_name(key->subkeys->next->pubkey_algo));
+ keyCreatedVal += " / " + QDateTime::fromTime_t(key->subkeys->next->timestamp).toString("dd. MMM. yyyy");
+ } else {
+ keySizeVal.setNum(int(key->subkeys->length));
+ }
+
+ keySizeVarLabel = new QLabel(keySizeVal);
+ expireVarLabel = new QLabel(keyExpireVal);
+ createdVarLabel = new QLabel(keyCreatedVal);
+ algorithmVarLabel = new QLabel(keyAlgoVal);
+
+ QVBoxLayout *mvbox = new QVBoxLayout();
+ QGridLayout *vboxKD = new QGridLayout();
+ QGridLayout *vboxOD = new QGridLayout();
+
+ vboxOD->addWidget(new QLabel(tr("Name:")), 0, 0);
+ vboxOD->addWidget(new QLabel(tr("E-Mailaddress:")), 1, 0);
+ vboxOD->addWidget(new QLabel(tr("Comment:")), 2, 0);
+ vboxOD->addWidget(nameVarLabel, 0, 1);
+ vboxOD->addWidget(emailVarLabel, 1, 1);
+ vboxOD->addWidget(commentVarLabel, 2, 1);
+
+ vboxKD->addWidget(new QLabel(tr("Key size:")), 0, 0);
+ vboxKD->addWidget(new QLabel(tr("Expires on: ")), 1, 0);
+ vboxKD->addWidget(new QLabel(tr("Algorithm: ")), 3, 0);
+ vboxKD->addWidget(new QLabel(tr("Created on: ")), 4, 0);
+ vboxKD->addWidget(new QLabel(tr("Key ID: ")), 5, 0);
+ vboxKD->addWidget(keySizeVarLabel, 0, 1);
+ vboxKD->addWidget(expireVarLabel, 1, 1);
+ vboxKD->addWidget(algorithmVarLabel, 3, 1);
+ vboxKD->addWidget(createdVarLabel, 4, 1);
+ vboxKD->addWidget(keyidVarLabel, 5, 1);
+
+ ownerBox->setLayout(vboxOD);
+ mvbox->addWidget(ownerBox);
+
+ keyBox->setLayout(vboxKD);
+ mvbox->addWidget(keyBox);
+
+ fingerPrintVarLabel = new QLabel(beautifyFingerprint(key->subkeys->fpr));
+ fingerPrintVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
+ fingerPrintVarLabel->setStyleSheet("margin-left: 20; margin-right: 20;");
+ QHBoxLayout *hboxFP = new QHBoxLayout();
+
+ hboxFP->addWidget(fingerPrintVarLabel);
+ QIcon ico(":button_copy.png");
+
+ QPushButton copyFingerprintButton(QIcon(ico.pixmap(12, 12)), "");
+ //copyFingerprintButton.setStyleSheet("QPushButton {border: 0px; } QPushButton:Pressed {} ");
+ copyFingerprintButton.setFlat(true);
+ copyFingerprintButton.setToolTip(tr("copy fingerprint to clipboard"));
+ connect(&copyFingerprintButton, SIGNAL(clicked()), this, SLOT(slotCopyFingerprint()));
+
+ hboxFP->addWidget(&copyFingerprintButton);
+
+ fingerprintBox->setLayout(hboxFP);
+ mvbox->addWidget(fingerprintBox);
+
+ // If key has more than primary uid, also show the other uids
+ gpgme_user_id_t addUserIds = key->uids->next;
+ if (addUserIds !=NULL) {
+ QVBoxLayout *vboxUID = new QVBoxLayout();
+ while (addUserIds != NULL){
+ addUserIdsVarLabel = new QLabel(QString::fromUtf8(addUserIds->name)+ QString(" <")+addUserIds->email+">");
+ addUserIdsVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
+ vboxUID->addWidget(addUserIdsVarLabel);
+ addUserIds=addUserIds->next;
+ }
+ additionalUidBox->setLayout(vboxUID);
+ mvbox->addWidget(additionalUidBox);
+ }
+
+ if (key->secret) {
+ QGroupBox *privKeyBox = new QGroupBox(tr("Private Key"));
+ QVBoxLayout *vboxPK = new QVBoxLayout();
+
+ QPushButton *exportButton = new QPushButton(tr("Export Private Key"));
+ vboxPK->addWidget(exportButton);
+ connect(exportButton, SIGNAL(clicked()), this, SLOT(slotExportPrivateKey()));
+
+ privKeyBox->setLayout(vboxPK);
+ mvbox->addWidget(privKeyBox);
+ }
+
+ if((key->expired) || (key->revoked)) {
+ QHBoxLayout *expBox = new QHBoxLayout();
+ QIcon icon = QIcon::fromTheme("dialog-warning");
+ QPixmap pixmap = icon.pixmap(QSize(32,32),QIcon::Normal,QIcon::On);
+
+ QLabel *expLabel = new QLabel();
+ QLabel *iconLabel = new QLabel();
+ if (key->expired) {
+ expLabel->setText(tr("Warning: Key expired"));
+ }
+ if (key->revoked) {
+ expLabel->setText(tr("Warning: Key revoked"));
+ }
+
+ iconLabel->setPixmap(pixmap);
+ QFont font = expLabel->font();
+ font.setBold(true);
+ expLabel->setFont(font);
+ expBox->addWidget(iconLabel);
+ expBox->addWidget(expLabel);
+ mvbox->addLayout(expBox);
+ }
+
+ mvbox->addWidget(buttonBox);
+
+ this->setLayout(mvbox);
+ this->setWindowTitle(tr("Keydetails"));
+ this->setModal(true);
+ this->show();
+
+ exec();
+}
+
+void KeyDetailsDialog::slotExportPrivateKey()
+{
+ // Show a information box with explanation about private key
+ int ret = QMessageBox::information(this, tr("Exporting private Key"),
+ tr("You are about to export your private key.\n"
+ "This is NOT your public key, so don't give it away.\n"
+ "Make sure you keep it save."
+ "Do you really want to export your private key?"),
+ QMessageBox::Cancel | QMessageBox::Ok);
+
+ // export key, if ok was clicked
+ if (ret == QMessageBox::Ok) {
+ QByteArray *keyArray = new QByteArray();
+ mCtx->exportSecretKey(*keyid, keyArray);
+ gpgme_key_t key = mCtx->getKeyDetails(*keyid);
+ QString fileString = QString::fromUtf8(key->uids->name) + " " + QString::fromUtf8(key->uids->email) + "(" + QString(key->subkeys->keyid)+ ")_pub_sec.asc";
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Export Key To File"), fileString, tr("Key Files") + " (*.asc *.txt);;All Files (*)");
+ QFile file(fileName);
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ QMessageBox::critical(0,tr("Export error"),tr("Couldn't open %1 for writing").arg(fileName));
+ return;
+ }
+ QTextStream stream(&file);
+ stream << *keyArray;
+ file.close();
+ delete keyArray;
+ }
+}
+
+QString KeyDetailsDialog::beautifyFingerprint(QString fingerprint)
+{
+ uint len = fingerprint.length();
+ if ((len > 0) && (len % 4 == 0))
+ for (uint n = 0; 4 *(n + 1) < len; ++n)
+ fingerprint.insert(5 * n + 4, ' ');
+ return fingerprint;
+}
+
+void KeyDetailsDialog::slotCopyFingerprint() {
+ QString fpr = fingerPrintVarLabel->text().trimmed().replace(" ", "");
+ QClipboard *cb = QApplication::clipboard();
+ cb->setText(fpr);
+}
diff --git a/src/keygendialog.cpp b/src/keygendialog.cpp
new file mode 100644
index 00000000..2aa5f81f
--- /dev/null
+++ b/src/keygendialog.cpp
@@ -0,0 +1,255 @@
+/*
+ *
+ * keygendialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keygendialog.h"
+
+KeyGenDialog::KeyGenDialog(GpgME::GpgContext *ctx, QWidget *parent)
+ : QDialog(parent)
+{
+ mCtx = ctx;
+ buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+
+ this->setWindowTitle(tr("Generate Key"));
+ this->setModal(true);
+ generateKeyDialog();
+}
+
+void KeyGenDialog::generateKeyDialog()
+{
+ errorLabel = new QLabel(tr(""));
+ nameEdit = new QLineEdit(this);
+ emailEdit = new QLineEdit(this);
+ commentEdit = new QLineEdit(this);
+
+ keySizeSpinBox = new QSpinBox(this);
+ keySizeSpinBox->setRange(1024, 4096);
+ keySizeSpinBox->setValue(2048);
+
+ keySizeSpinBox->setSingleStep(1024);
+
+ keyTypeComboBox = new QComboBox(this);
+ keyTypeComboBox->addItem("RSA");
+ keyTypeComboBox->addItem("DSA/Elgamal");
+ keyTypeComboBox->setCurrentIndex(0);
+ dateEdit = new QDateEdit(QDate::currentDate().addYears(5), this);
+ dateEdit->setMinimumDate(QDate::currentDate());
+ dateEdit->setDisplayFormat("dd/MM/yyyy");
+ dateEdit->setCalendarPopup(true);
+ dateEdit->setEnabled(true);
+
+ expireCheckBox = new QCheckBox(this);
+ expireCheckBox->setCheckState(Qt::Unchecked);
+
+ passwordEdit = new QLineEdit(this);
+ repeatpwEdit = new QLineEdit(this);
+
+ passwordEdit->setEchoMode(QLineEdit::Password);
+ repeatpwEdit->setEchoMode(QLineEdit::Password);
+
+ pwStrengthSlider = new QSlider(this);
+ pwStrengthSlider->setOrientation(Qt::Horizontal);
+ pwStrengthSlider->setMaximum(6);
+ pwStrengthSlider->setDisabled(true);
+ pwStrengthSlider->setToolTip(tr("Password Strength"));
+ pwStrengthSlider->setTickPosition(QSlider::TicksBelow);
+
+ QGridLayout *vbox1 = new QGridLayout;
+
+ vbox1->addWidget(new QLabel(tr("Name:")), 0, 0);
+ vbox1->addWidget(new QLabel(tr("E-Mailaddress:")), 1, 0);
+ vbox1->addWidget(new QLabel(tr("Comment:")), 2, 0);
+ vbox1->addWidget(new QLabel(tr("Expiration Date:")), 3, 0);
+ vbox1->addWidget(new QLabel(tr("Never Expire")), 3, 3);
+ vbox1->addWidget(new QLabel(tr("KeySize (in Bit):")), 4, 0);
+ vbox1->addWidget(new QLabel(tr("Key Type:")), 5, 0);
+ vbox1->addWidget(new QLabel(tr("Password:")), 6, 0);
+ vbox1->addWidget(new QLabel(tr("Password: Strength\nWeak -> Strong")), 6, 3);
+ vbox1->addWidget(new QLabel(tr("Repeat Password:")), 7, 0);
+
+ vbox1->addWidget(nameEdit, 0, 1);
+ vbox1->addWidget(emailEdit, 1, 1);
+ vbox1->addWidget(commentEdit, 2, 1);
+ vbox1->addWidget(dateEdit, 3, 1);
+ vbox1->addWidget(expireCheckBox, 3, 2);
+ vbox1->addWidget(keySizeSpinBox, 4, 1);
+ vbox1->addWidget(keyTypeComboBox,5, 1);
+ vbox1->addWidget(passwordEdit, 6, 1);
+ vbox1->addWidget(repeatpwEdit, 7, 1);
+ vbox1->addWidget(pwStrengthSlider, 7, 3);
+
+ QWidget *nameList = new QWidget(this);
+ nameList->setLayout(vbox1);
+
+ QVBoxLayout *vbox2 = new QVBoxLayout();
+ vbox2->addWidget(nameList);
+ vbox2->addWidget(errorLabel);
+ vbox2->addWidget(buttonBox);
+
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(slotKeyGenAccept()));
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+
+ connect(expireCheckBox, SIGNAL(stateChanged(int)), this, SLOT(slotExpireBoxChanged()));
+ connect(passwordEdit, SIGNAL(textChanged(QString)), this, SLOT(slotPasswordEditChanged()));
+// connect(keyTypeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(slotKeyTypeChanged()));
+// connect(keySizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(slotKeySizeChanged()));
+ this->setLayout(vbox2);
+}
+
+void KeyGenDialog::slotKeyGenAccept()
+{
+ QString errorString = "";
+ QString keyGenParams = "";
+ /**
+ * check for errors in keygen dialog input
+ */
+ if ((nameEdit->text()).size() < 5) {
+ errorString.append(tr(" Name must contain at least five characters. \n"));
+ }
+ if (passwordEdit->text() != repeatpwEdit->text()) {
+ errorString.append(tr(" Password and Repeat don't match. "));
+ }
+
+ if (errorString.isEmpty()) {
+ /**
+ * create the string for key generation
+ */
+
+ if(keyTypeComboBox->currentText() == "RSA") {
+ keyGenParams = "<GnupgKeyParms format=\"internal\">\n"
+ "Key-Type: RSA\n"
+ "Key-Usage: sign\n"
+ "Key-Length: " + keySizeSpinBox->cleanText() + "\n"
+ "Subkey-Type: RSA\n"
+ "Subkey-Length: " + keySizeSpinBox->cleanText() + "\n"
+ "Subkey-Usage: encrypt\n";
+ } else {
+ keyGenParams = "<GnupgKeyParms format=\"internal\">\n"
+ "Key-Type: DSA\n"
+ "Key-Length: " + keySizeSpinBox->cleanText() + "\n"
+ "Subkey-Type: ELG-E\n"
+ "Subkey-Length: " + keySizeSpinBox->cleanText() + "\n";
+ }
+
+ keyGenParams += "Name-Real: " + nameEdit->text().toUtf8() + "\n";
+ if (!(commentEdit->text().isEmpty())) {
+ keyGenParams += "Name-Comment: " + commentEdit->text().toUtf8() + "\n";
+ }
+ if (!(emailEdit->text().isEmpty())) {
+ keyGenParams += "Name-Email: " + emailEdit->text().toUtf8() + "\n";
+ }
+ if (expireCheckBox->checkState()) {
+ keyGenParams += "Expire-Date: 0\n";
+ } else {
+ keyGenParams += "Expire-Date: " + dateEdit->sectionText(QDateTimeEdit::YearSection) + "-" + dateEdit->sectionText(QDateTimeEdit::MonthSection) + "-" + dateEdit->sectionText(QDateTimeEdit::DaySection) + "\n";
+ }
+ if (!(passwordEdit->text().isEmpty())) {
+ keyGenParams += "Passphrase: " + passwordEdit->text() + "\n";
+ }
+ keyGenParams += "</GnupgKeyParms>";
+
+ KeyGenThread *kg = new KeyGenThread(keyGenParams, mCtx);
+ kg->start();
+
+ this->accept();
+
+ QDialog *dialog = new QDialog(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint);
+ dialog->setModal(true);
+ dialog->setWindowTitle(tr("Generating Key..."));
+
+ QLabel *waitMessage = new QLabel(tr("Collecting random data for key generation.\n This may take a while.\n To speed up the process use your computer\n (e.g. browse the net, listen to music,...)"));
+ QProgressBar *pb = new QProgressBar();
+ pb->setRange(0, 0);
+
+ QVBoxLayout *layout = new QVBoxLayout(dialog);
+ layout->addWidget(waitMessage);
+ layout->addWidget(pb);
+ dialog->setLayout(layout);
+
+ dialog->show();
+
+ while (kg->isRunning()) {
+ QCoreApplication::processEvents();
+ }
+
+ dialog->close();
+ QMessageBox::information(0,tr("Success"),tr("New key created"));
+ } else {
+ /**
+ * create error message
+ */
+ errorLabel->setAutoFillBackground(true);
+ QPalette error = errorLabel->palette();
+ error.setColor(QPalette::Background, "#ff8080");
+ errorLabel->setPalette(error);
+ errorLabel->setText(errorString);
+
+ this->show();
+ }
+}
+
+void KeyGenDialog::slotExpireBoxChanged()
+{
+ if (expireCheckBox->checkState()) {
+ dateEdit->setEnabled(false);
+ } else {
+ dateEdit->setEnabled(true);
+ }
+}
+
+void KeyGenDialog::slotPasswordEditChanged()
+{
+ pwStrengthSlider->setValue(checkPassWordStrength());
+ update();
+}
+
+int KeyGenDialog::checkPassWordStrength()
+{
+ int strength = 0;
+
+ // increase strength by two, if password has more than 7 characters
+ if ((passwordEdit->text()).length() > 7) {
+ strength = strength + 2;
+ }
+
+ // increase strength by one, if password contains a digit
+ if ((passwordEdit->text()).contains(QRegExp("\\d"))) {
+ strength++;
+ }
+
+ // increase strength by one, if password contains a lowercase character
+ if ((passwordEdit->text()).contains(QRegExp("[a-z]"))) {
+ strength++;
+ }
+
+ // increase strength by one, if password contains an uppercase character
+ if ((passwordEdit->text()).contains(QRegExp("[A-Z]"))) {
+ strength++;
+ }
+
+ // increase strength by one, if password contains a non-word character
+ if ((passwordEdit->text()).contains(QRegExp("\\W"))) {
+ strength++;
+ }
+
+ return strength;
+}
+
diff --git a/src/keygenthread.cpp b/src/keygenthread.cpp
new file mode 100644
index 00000000..c5588773
--- /dev/null
+++ b/src/keygenthread.cpp
@@ -0,0 +1,34 @@
+/*
+ * keygenthread.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keygenthread.h"
+
+KeyGenThread::KeyGenThread(QString keyGenParams, GpgME::GpgContext *ctx)
+{
+ this->keyGenParams = keyGenParams;
+ this->mCtx = ctx;
+ abort = false;
+}
+
+void KeyGenThread::run()
+{
+ mCtx->generateKey(&keyGenParams);
+}
diff --git a/src/keyimportdetaildialog.cpp b/src/keyimportdetaildialog.cpp
new file mode 100644
index 00000000..e606ca8b
--- /dev/null
+++ b/src/keyimportdetaildialog.cpp
@@ -0,0 +1,160 @@
+/*
+ * keyimportdetailsdialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keyimportdetaildialog.h"
+
+KeyImportDetailDialog::KeyImportDetailDialog(GpgME::GpgContext* ctx, GpgImportInformation result, QWidget *parent)
+ : QDialog(parent)
+{
+ mCtx = ctx;
+ mResult = result;
+ // If no key for import found, just show a message
+ if (mResult.considered == 0) {
+ QMessageBox::information(0, tr("Key import details"), tr("No keys found to import"));
+ return;
+ }
+
+ QVBoxLayout *mvbox = new QVBoxLayout();
+
+ this->createGeneralInfoBox();
+ mvbox->addWidget(generalInfoBox);
+
+ this->createKeysTable();
+ mvbox->addWidget(keysTable);
+
+ this->createButtonBox();
+ mvbox->addWidget(buttonBox);
+
+ this->setLayout(mvbox);
+ this->setWindowTitle(tr("Key import details"));
+ this->resize(QSize(600,300));
+ this->setModal(true);
+ this->exec();
+}
+
+void KeyImportDetailDialog::createGeneralInfoBox()
+{
+ // GridBox for general import information
+ generalInfoBox = new QGroupBox(tr("Genral key import info"));
+ QGridLayout *generalInfoBoxLayout = new QGridLayout(generalInfoBox);
+
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Considered:")),1,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.considered)),1,1);
+ int row=2;
+ if (mResult.unchanged != 0){
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Public unchanged:")),row,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.unchanged)),row,1);
+ row++;
+ }
+ if (mResult.imported != 0){
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Imported:")),row,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.imported)),row,1);
+ row++;
+ }
+ if (mResult.not_imported != 0){
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Not imported:")),row,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.not_imported)),row,1);
+ row++;
+ }
+ if (mResult.secret_read != 0){
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Private read:")),row,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.secret_read)),row,1);
+ row++;
+ }
+ if (mResult.secret_imported != 0){
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Private imported:")),row,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.secret_imported)),row,1);
+ row++;
+ }
+ if (mResult.secret_unchanged != 0){
+ generalInfoBoxLayout->addWidget(new QLabel(tr("Private unchanged:")),row,0);
+ generalInfoBoxLayout->addWidget(new QLabel(QString::number(mResult.secret_unchanged)),row,1);
+ row++;
+ }
+}
+
+void KeyImportDetailDialog::createKeysTable()
+{
+ keysTable = new QTableWidget(this);
+ keysTable->setRowCount(0);
+ keysTable->setColumnCount(4);
+ keysTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ // Nothing is selectable
+ keysTable->setSelectionMode(QAbstractItemView::NoSelection);
+
+ QStringList headerLabels;
+ headerLabels << tr("Name") << tr("Email") << tr("Status") << tr("Fingerprint");
+ keysTable->verticalHeader()->hide();
+
+ keysTable->setHorizontalHeaderLabels(headerLabels);
+ int row = 0;
+ foreach (GpgImportedKey impKey, mResult.importedKeys) {
+ keysTable->setRowCount(row+1);
+ GpgKey key = mCtx->getKeyByFpr(impKey.fpr);
+ keysTable->setItem(row, 0, new QTableWidgetItem(key.name));
+ keysTable->setItem(row, 1, new QTableWidgetItem(key.email));
+ keysTable->setItem(row, 2 ,new QTableWidgetItem(getStatusString(impKey.importStatus)));
+ keysTable->setItem(row, 3, new QTableWidgetItem(impKey.fpr));
+ row++;
+ }
+ keysTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
+ keysTable->horizontalHeader()->setStretchLastSection(true);
+ keysTable->resizeColumnsToContents();
+}
+
+QString KeyImportDetailDialog::getStatusString(int keyStatus)
+{
+ QString statusString;
+ // keystatus is greater than 15, if key is private
+ if (keyStatus > 15) {
+ statusString.append(tr("private"));
+ keyStatus=keyStatus-16;
+ } else {
+ statusString.append(tr("public"));
+ }
+ if (keyStatus == 0) {
+ statusString.append(", "+tr("unchanged"));
+ } else {
+ if (keyStatus == 1) {
+ statusString.append(", "+tr("new key"));
+ } else {
+ if (keyStatus > 7) {
+ statusString.append(", "+tr("new subkey"));
+ keyStatus=keyStatus-8;
+ }
+ if (keyStatus > 3) {
+ statusString.append(", "+tr("new signature"));
+ keyStatus=keyStatus-4;
+ }
+ if (keyStatus > 1) {
+ statusString.append(", "+tr("new uid"));
+ keyStatus=keyStatus-2;
+ }
+ }
+ }
+ return statusString;
+}
+
+void KeyImportDetailDialog::createButtonBox()
+{
+ buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok);
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(close()));
+}
diff --git a/src/keylist.cpp b/src/keylist.cpp
new file mode 100644
index 00000000..e0178481
--- /dev/null
+++ b/src/keylist.cpp
@@ -0,0 +1,326 @@
+/*
+ * keylist.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keylist.h"
+
+KeyList::KeyList(GpgME::GpgContext *ctx, QWidget *parent)
+ : QWidget(parent)
+{
+ mCtx = ctx;
+
+ mKeyList = new QTableWidget(this);
+ mKeyList->setColumnCount(6);
+ mKeyList->verticalHeader()->hide();
+ mKeyList->setShowGrid(false);
+ mKeyList->setColumnWidth(0, 24);
+ mKeyList->setColumnWidth(1, 20);
+ mKeyList->sortByColumn(2, Qt::AscendingOrder);
+ mKeyList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ // hide id and fingerprint of key
+ mKeyList->setColumnHidden(4, true);
+ mKeyList->setColumnHidden(5, true);
+
+ // tableitems not editable
+ mKeyList->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ // no focus (rectangle around tableitems)
+ // may be it should focus on whole row
+ mKeyList->setFocusPolicy(Qt::NoFocus);
+
+ mKeyList->setAlternatingRowColors(true);
+
+ QStringList labels;
+ labels << "" << "" << tr("Name") << tr("EMail") << "id" << "fpr";
+ mKeyList->setHorizontalHeaderLabels(labels);
+ mKeyList->horizontalHeader()->setStretchLastSection(true);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(mKeyList);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(3);
+ setLayout(layout);
+
+ popupMenu = new QMenu(this);
+ connect(mCtx, SIGNAL(signalKeyDBChanged()), this, SLOT(slotRefresh()));
+ setAcceptDrops(true);
+ slotRefresh();
+}
+
+void KeyList::slotRefresh()
+{
+ QStringList *keyList;
+ keyList = getChecked();
+ // while filling the table, sort enabled causes errors
+ mKeyList->setSortingEnabled(false);
+ mKeyList->clearContents();
+
+ GpgKeyList keys = mCtx->listKeys();
+ mKeyList->setRowCount(keys.size());
+
+ int row = 0;
+ GpgKeyList::iterator it = keys.begin();
+ while (it != keys.end()) {
+
+ QTableWidgetItem *tmp0 = new QTableWidgetItem();
+ tmp0->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ tmp0->setCheckState(Qt::Unchecked);
+ mKeyList->setItem(row, 0, tmp0);
+
+ if (it->privkey) {
+ QTableWidgetItem *tmp1 = new QTableWidgetItem(QIcon(":kgpg_key2.png"), "");
+ mKeyList->setItem(row, 1, tmp1);
+ }
+ QTableWidgetItem *tmp2 = new QTableWidgetItem(it->name);
+ tmp2->setToolTip(it->name);
+ mKeyList->setItem(row, 2, tmp2);
+ QTableWidgetItem *tmp3 = new QTableWidgetItem(it->email);
+ tmp3->setToolTip(it->email);
+ // strike out expired keys
+ if(it->expired || it->revoked) {
+ QFont strike = tmp2->font();
+ strike.setStrikeOut(true);
+ tmp2->setFont(strike);
+ tmp3->setFont(strike);
+ }
+ mKeyList->setItem(row, 3, tmp3);
+ QTableWidgetItem *tmp4 = new QTableWidgetItem(it->id);
+ mKeyList->setItem(row, 4, tmp4);
+ QTableWidgetItem *tmp5 = new QTableWidgetItem(it->fpr);
+ mKeyList->setItem(row, 5, tmp5);
+
+
+ it++;
+ ++row;
+ }
+ mKeyList->setSortingEnabled(true);
+ setChecked(keyList);
+}
+
+QStringList *KeyList::getChecked()
+{
+ QStringList *ret = new QStringList();
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if (mKeyList->item(i, 0)->checkState() == Qt::Checked) {
+ *ret << mKeyList->item(i, 4)->text();
+ }
+ }
+ return ret;
+}
+
+QStringList *KeyList::getAllPrivateKeys()
+{
+ QStringList *ret = new QStringList();
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if (mKeyList->item(i, 1)) {
+ *ret << mKeyList->item(i, 4)->text();
+ }
+ }
+ return ret;
+}
+
+QStringList *KeyList::getPrivateChecked()
+{
+ QStringList *ret = new QStringList();
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if ((mKeyList->item(i, 0)->checkState() == Qt::Checked) && (mKeyList->item(i, 1))) {
+ *ret << mKeyList->item(i, 4)->text();
+ }
+ }
+ return ret;
+}
+
+void KeyList::setChecked(QStringList *keyIds)
+{
+ if (!keyIds->isEmpty()) {
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if (keyIds->contains(mKeyList->item(i, 4)->text())) {
+ mKeyList->item(i, 0)->setCheckState(Qt::Checked);
+ }
+ }
+ }
+}
+
+QStringList *KeyList::getSelected()
+{
+ QStringList *ret = new QStringList();
+
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if (mKeyList->item(i, 0)->isSelected() == 1) {
+ *ret << mKeyList->item(i, 4)->text();
+ }
+ }
+ return ret;
+}
+
+bool KeyList::containsPrivateKeys()
+{
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if (mKeyList->item(i, 1)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+void KeyList::setColumnWidth(int row, int size)
+{
+ mKeyList->setColumnWidth(row, size);
+}
+
+void KeyList::contextMenuEvent(QContextMenuEvent *event)
+{
+ popupMenu->exec(event->globalPos());
+}
+
+void KeyList::addMenuAction(QAction *act)
+{
+ popupMenu->addAction(act);
+}
+
+void KeyList::dropEvent(QDropEvent* event)
+{
+// importKeyDialog();
+ QSettings settings;
+
+ QDialog *dialog = new QDialog();
+
+ dialog->setWindowTitle(tr("Import Keys"));
+ QLabel *label;
+ label = new QLabel(tr("You've dropped something on the keylist.\n gpg4usb will now try to import key(s).")+"\n");
+
+ // "always import keys"-CheckBox
+ QCheckBox *checkBox = new QCheckBox(tr("Always import without bothering."));
+ if (settings.value("general/confirmImportKeys").toBool()) checkBox->setCheckState(Qt::Unchecked);
+
+ // Buttons for ok and cancel
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject()));
+
+ QVBoxLayout *vbox = new QVBoxLayout();
+ vbox->addWidget(label);
+ vbox->addWidget(checkBox);
+ vbox->addWidget(buttonBox);
+
+ dialog->setLayout(vbox);
+
+ if (settings.value("general/confirmImportKeys",Qt::Checked).toBool())
+ {
+ dialog->exec();
+ if (dialog->result() == QDialog::Rejected) {
+ return;
+ }
+ if (checkBox->isChecked()){
+ settings.setValue("general/confirmImportKeys", false);
+ } else {
+ settings.setValue("general/confirmImportKeys", true);
+
+ }
+ }
+
+ if (event->mimeData()->hasUrls())
+ {
+ foreach (QUrl tmp, event->mimeData()->urls())
+ {
+ QFile file;
+ file.setFileName(tmp.toLocalFile());
+ if (!file.open(QIODevice::ReadOnly)) {
+ qDebug() << tr("Couldn't Open File: ") + tmp.toString();
+ }
+ QByteArray inBuffer = file.readAll();
+ this->importKeys(inBuffer);
+ file.close();
+ }
+ } else {
+ QByteArray inBuffer(event->mimeData()->text().toUtf8());
+ this->importKeys(inBuffer);
+ }
+}
+
+void KeyList::dragEnterEvent(QDragEnterEvent *event)
+{
+ event->acceptProposedAction();
+}
+
+/** set background color for Keys and put them to top
+ *
+ */
+void KeyList::markKeys(QStringList *keyIds)
+{
+ foreach(QString id, *keyIds) {
+ qDebug() << "marked: " << id;
+ }
+}
+
+void KeyList::importKeys(QByteArray inBuffer)
+{
+ GpgImportInformation result = mCtx->importKey(inBuffer);
+ new KeyImportDetailDialog(mCtx, result, this);
+}
+
+void KeyList::uploadKeyToServer(QByteArray *keys)
+{
+ QUrl reqUrl("http://localhost:11371/pks/add");
+ qnam = new QNetworkAccessManager(this);
+
+ QUrl params;
+ keys->replace("\n", "%0D%0A")
+ .replace("(", "%28")
+ .replace(")", "%29")
+ .replace("/", "%2F")
+ .replace(":", "%3A")
+ .replace("+","%2B")
+ .replace(' ', '+');
+
+ QUrlQuery q;
+
+ q.addQueryItem("keytext", *keys);
+
+ params = q.query(QUrl::FullyEncoded).toUtf8();
+
+ QNetworkRequest req(reqUrl);
+
+ req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
+
+ QNetworkReply *reply = qnam->post(req,params.toEncoded());
+ connect(reply, SIGNAL(finished()),
+ this, SLOT(uploadFinished()));
+ qDebug() << "REQURL: " << reqUrl;
+ qDebug() << "PARAMS.ENCODED: " << params.toEncoded();
+}
+
+void KeyList::uploadFinished()
+{
+ QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
+
+ QByteArray response = reply->readAll();
+ qDebug() << "RESPNOSE: " << response.data();
+ //reply->readAll();
+ qDebug() << "ERROR: " << reply->error();
+ if (reply->error()) {
+ qDebug() << "Error while contacting keyserver!";
+ return;
+ } else {
+ qDebug() << "Success while contacting keyserver!";
+ }
+
+ reply->deleteLater();
+ reply = 0;
+}
diff --git a/src/keymgmt.cpp b/src/keymgmt.cpp
new file mode 100755
index 00000000..70e8d30e
--- /dev/null
+++ b/src/keymgmt.cpp
@@ -0,0 +1,289 @@
+/*
+ *
+ * keymgmt.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keymgmt.h"
+
+KeyMgmt::KeyMgmt(GpgME::GpgContext *ctx, QWidget *parent ) : QMainWindow(parent)
+{
+ mCtx = ctx;
+
+ /* the list of Keys available*/
+ mKeyList = new KeyList(mCtx);
+ mKeyList->setColumnWidth(2, 250);
+ mKeyList->setColumnWidth(3, 250);
+ setCentralWidget(mKeyList);
+
+ createActions();
+ createMenus();
+ createToolBars();
+ connect(this,SIGNAL(signalStatusBarChanged(QString)),this->parent(),SLOT(slotSetStatusBarText(QString)));
+
+ /* Restore the iconstyle */
+ QSettings settings;
+ settings.sync();
+ QSize iconSize = settings.value("toolbar/iconsize", QSize(32, 32)).toSize();
+ Qt::ToolButtonStyle buttonStyle = static_cast<Qt::ToolButtonStyle>(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt());
+ this->setIconSize(iconSize);
+ this->setToolButtonStyle(buttonStyle);
+
+ // state sets pos & size of dock-widgets
+ this->restoreState(settings.value("keymgmt/windowState").toByteArray());
+
+ // Restore window size & location
+ if (settings.value("window/windowSave").toBool()) {
+ QPoint pos = settings.value("keymgmt/pos", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("keymgmt/size", QSize(800, 450)).toSize();
+ this->resize(size);
+ this->move(pos);
+ } else {
+ this->resize(QSize(800, 400));
+ }
+
+ setWindowTitle(tr("Keymanagement"));
+ mKeyList->addMenuAction(deleteSelectedKeysAct);
+ mKeyList->addMenuAction(showKeyDetailsAct);
+}
+
+void KeyMgmt::createActions()
+{
+ closeAct = new QAction(tr("&Close Key Management"), this);
+ closeAct->setShortcut(tr("Ctrl+Q"));
+ closeAct->setIcon(QIcon(":exit.png"));
+ closeAct->setToolTip(tr("Close Key Management"));
+ connect(closeAct, SIGNAL(triggered()), this, SLOT(close()));
+
+ importKeyFromFileAct = new QAction(tr("&File"), this);
+ importKeyFromFileAct->setIcon(QIcon(":import_key_from_file.png"));
+ importKeyFromFileAct->setToolTip(tr("Import New Key From File"));
+ connect(importKeyFromFileAct, SIGNAL(triggered()), this, SLOT(slotImportKeyFromFile()));
+
+ importKeyFromClipboardAct = new QAction(tr("&Clipboard"), this);
+ importKeyFromClipboardAct->setIcon(QIcon(":import_key_from_clipboard.png"));
+ importKeyFromClipboardAct->setToolTip(tr("Import New Key From Clipboard"));
+ connect(importKeyFromClipboardAct, SIGNAL(triggered()), this, SLOT(slotImportKeyFromClipboard()));
+
+ importKeyFromKeyServerAct = new QAction(tr("&Keyserver"), this);
+ importKeyFromKeyServerAct->setIcon(QIcon(":import_key_from_server.png"));
+ importKeyFromKeyServerAct->setToolTip(tr("Import New Key From Keyserver"));
+ connect(importKeyFromKeyServerAct, SIGNAL(triggered()), this, SLOT(slotImportKeyFromKeyServer()));
+
+ exportKeyToClipboardAct = new QAction(tr("Export To &Clipboard"), this);
+ exportKeyToClipboardAct->setIcon(QIcon(":export_key_to_clipboard.png"));
+ exportKeyToClipboardAct->setToolTip(tr("Export Selected Key(s) To Clipboard"));
+ connect(exportKeyToClipboardAct, SIGNAL(triggered()), this, SLOT(slotExportKeyToClipboard()));
+
+ exportKeyToFileAct = new QAction(tr("Export To &File"), this);
+ exportKeyToFileAct->setIcon(QIcon(":export_key_to_file.png"));
+ exportKeyToFileAct->setToolTip(tr("Export Selected Key(s) To File"));
+ connect(exportKeyToFileAct, SIGNAL(triggered()), this, SLOT(slotExportKeyToFile()));
+
+ deleteSelectedKeysAct = new QAction(tr("Delete Selected Key(s)"), this);
+ deleteSelectedKeysAct->setToolTip(tr("Delete the Selected keys"));
+ connect(deleteSelectedKeysAct, SIGNAL(triggered()), this, SLOT(slotDeleteSelectedKeys()));
+
+ deleteCheckedKeysAct = new QAction(tr("Delete Checked Key(s)"), this);
+ deleteCheckedKeysAct->setToolTip(tr("Delete the Checked keys"));
+ deleteCheckedKeysAct->setIcon(QIcon(":button_cancel.png"));
+ connect(deleteCheckedKeysAct, SIGNAL(triggered()), this, SLOT(slotDeleteCheckedKeys()));
+
+ generateKeyDialogAct = new QAction(tr("Generate Key"), this);
+ generateKeyDialogAct->setToolTip(tr("Generate New Key"));
+ generateKeyDialogAct->setIcon(QIcon(":key_generate.png"));
+ connect(generateKeyDialogAct, SIGNAL(triggered()), this, SLOT(slotGenerateKeyDialog()));
+
+ showKeyDetailsAct = new QAction(tr("Show Keydetails"), this);
+ showKeyDetailsAct->setToolTip(tr("Show Details for this Key"));
+ connect(showKeyDetailsAct, SIGNAL(triggered()), this, SLOT(slotShowKeyDetails()));
+}
+
+void KeyMgmt::createMenus()
+{
+ fileMenu = menuBar()->addMenu(tr("&File"));
+ fileMenu->addAction(closeAct);
+
+ keyMenu = menuBar()->addMenu(tr("&Key"));
+ importKeyMenu = keyMenu->addMenu(tr("&Import Key From..."));
+ importKeyMenu->addAction(importKeyFromFileAct);
+ importKeyMenu->addAction(importKeyFromClipboardAct);
+ importKeyMenu->addAction(importKeyFromKeyServerAct);
+ keyMenu->addAction(exportKeyToFileAct);
+ keyMenu->addAction(exportKeyToClipboardAct);
+ keyMenu->addSeparator();
+ keyMenu->addAction(deleteCheckedKeysAct);
+ keyMenu->addAction(generateKeyDialogAct);
+}
+
+void KeyMgmt::createToolBars()
+{
+ QToolBar *keyToolBar = addToolBar(tr("Key"));
+ keyToolBar->setObjectName("keytoolbar");
+
+ // add button with popup menu for import
+ QToolButton* toolButton = new QToolButton(this);
+ toolButton->setMenu(importKeyMenu);
+ toolButton->setPopupMode(QToolButton::InstantPopup);
+ toolButton->setIcon(QIcon(":key_import.png"));
+ toolButton->setToolTip(tr("Import key"));
+ toolButton->setText(tr("Import key from"));
+ toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
+ keyToolBar->addWidget(toolButton);
+
+ keyToolBar->addSeparator();
+ keyToolBar->addAction(deleteCheckedKeysAct);
+ keyToolBar->addSeparator();
+ keyToolBar->addAction(exportKeyToFileAct);
+ keyToolBar->addAction(exportKeyToClipboardAct);
+
+}
+
+void KeyMgmt::slotImportKeys(QByteArray inBuffer)
+{
+ GpgImportInformation result = mCtx->importKey(inBuffer);
+ new KeyImportDetailDialog(mCtx, result, this);
+
+}
+
+void KeyMgmt::slotImportKeyFromFile()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open Key"), "", tr("Key Files") + " (*.asc *.txt);;"+tr("Keyring files")+" (*.gpg);;All Files (*)");
+ if (! fileName.isNull()) {
+ QFile file;
+ file.setFileName(fileName);
+ if (!file.open(QIODevice::ReadOnly)) {
+ qDebug() << tr("Couldn't Open File: ") + fileName;
+ return;
+ }
+ QByteArray inBuffer = file.readAll();
+ slotImportKeys(inBuffer);
+ file.close();
+ }
+}
+
+void KeyMgmt::slotImportKeyFromKeyServer()
+{
+ importDialog = new KeyServerImportDialog(mCtx, mKeyList, this);
+ importDialog->show();
+}
+
+void KeyMgmt::slotImportKeyFromClipboard()
+{
+ QClipboard *cb = QApplication::clipboard();
+ slotImportKeys(cb->text(QClipboard::Clipboard).toUtf8());
+}
+
+void KeyMgmt::slotDeleteSelectedKeys()
+{
+ deleteKeysWithWarning(mKeyList->getSelected());
+}
+
+void KeyMgmt::slotDeleteCheckedKeys()
+{
+ deleteKeysWithWarning(mKeyList->getChecked());
+}
+
+void KeyMgmt::deleteKeysWithWarning(QStringList *uidList)
+{
+ /**
+ * TODO: Different Messages for private/public key, check if
+ * more than one selected... compare to seahorse "delete-dialog"
+ */
+
+ if (uidList->isEmpty()) {
+ return;
+ }
+ QString keynames;
+ foreach (QString uid, *uidList) {
+ keynames.append(QString::fromUtf8(mCtx->getKeyDetails(uid)->uids->name));
+ keynames.append("<i> &lt;");
+ keynames.append(QString::fromUtf8(mCtx->getKeyDetails(uid)->uids->email));
+ keynames.append("&gt; </i><br/>");
+ }
+
+ int ret = QMessageBox::warning(this, tr("Deleting Keys"),
+ "<b>"+tr("Are you sure that you want to delete the following keys?")+"</b><br/><br/>"+keynames+
+ +"<br/>"+tr("The action can not be undone."),
+ QMessageBox::No | QMessageBox::Yes);
+
+ if (ret == QMessageBox::Yes) {
+ mCtx->deleteKeys(uidList);
+ }
+}
+
+void KeyMgmt::slotShowKeyDetails()
+{
+ if (mKeyList->getSelected()->isEmpty()) {
+ return;
+ }
+
+ // TODO: first...?
+ gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
+
+ new KeyDetailsDialog(mCtx, key);
+}
+
+void KeyMgmt::slotExportKeyToFile()
+{
+ QByteArray *keyArray = new QByteArray();
+ if (!mCtx->exportKeys(mKeyList->getChecked(), keyArray)) {
+ return;
+ }
+ gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getChecked()->first());
+ QString fileString = QString::fromUtf8(key->uids->name) + " " + QString::fromUtf8(key->uids->email) + "(" + QString(key->subkeys->keyid)+ ")_pub.asc";
+
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Export Key To File"), fileString, tr("Key Files") + " (*.asc *.txt);;All Files (*)");
+ QFile file(fileName);
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ return;
+ QTextStream stream(&file);
+ stream << *keyArray;
+ file.close();
+ delete keyArray;
+ emit signalStatusBarChanged(QString(tr("key(s) exported")));
+}
+
+void KeyMgmt::slotExportKeyToClipboard()
+{
+ QByteArray *keyArray = new QByteArray();
+ QClipboard *cb = QApplication::clipboard();
+ if (!mCtx->exportKeys(mKeyList->getChecked(), keyArray)) {
+ return;
+ }
+ cb->setText(*keyArray);
+ delete keyArray;
+}
+
+void KeyMgmt::slotGenerateKeyDialog()
+{
+ KeyGenDialog *keyGenDialog = new KeyGenDialog(mCtx,this);
+ keyGenDialog->show();
+}
+
+void KeyMgmt::closeEvent(QCloseEvent *event)
+{
+ QSettings settings;
+ //settings.setValue("geometry", saveGeometry());
+ settings.setValue("keymgmt/windowState", saveState());
+ settings.setValue("keymgmt/pos", pos());
+ settings.setValue("keymgmt/size", size());
+
+ QMainWindow::closeEvent(event);
+}
diff --git a/src/keyserverimportdialog.cpp b/src/keyserverimportdialog.cpp
new file mode 100644
index 00000000..e581234a
--- /dev/null
+++ b/src/keyserverimportdialog.cpp
@@ -0,0 +1,313 @@
+/*
+ *
+ * keyserverimportdialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "keyserverimportdialog.h"
+
+KeyServerImportDialog::KeyServerImportDialog(GpgME::GpgContext *ctx, KeyList *keyList, QWidget *parent)
+ : QDialog(parent)
+{
+ mCtx = ctx;
+ mKeyList = keyList;
+ // Buttons
+ closeButton = createButton(tr("&Close"), SLOT(close()));
+ importButton = createButton(tr("&Import"), SLOT(slotImport()));
+ searchButton = createButton(tr("&Search"), SLOT(slotSearch()));
+
+ // Line edit for search string
+ searchLabel = new QLabel(tr("Search string:"));
+ searchLineEdit = new QLineEdit();
+
+ // combobox for keyserverlist
+ keyServerLabel = new QLabel(tr("Keyserver:"));
+ keyServerComboBox = createComboBox();
+
+ // table containing the keys found
+ createKeysTable();
+ message = new QLabel;
+ icon = new QLabel;
+
+ // Layout for messagebox
+ QHBoxLayout *messageLayout= new QHBoxLayout;
+ messageLayout->addWidget(icon);
+ messageLayout->addWidget(message);
+ messageLayout->addStretch();
+
+ // Layout for import and close button
+ QHBoxLayout *buttonsLayout = new QHBoxLayout;
+ buttonsLayout->addStretch();
+ buttonsLayout->addWidget(importButton);
+ buttonsLayout->addWidget(closeButton);
+
+ QGridLayout *mainLayout = new QGridLayout;
+ mainLayout->addWidget(searchLabel, 1, 0);
+ mainLayout->addWidget(searchLineEdit, 1, 1);
+ mainLayout->addWidget(searchButton,1, 2);
+ mainLayout->addWidget(keyServerLabel, 2, 0);
+ mainLayout->addWidget(keyServerComboBox, 2, 1);
+ mainLayout->addWidget(keysTable, 3, 0, 1, 3);
+ mainLayout->addLayout(messageLayout, 4, 0, 1, 3);
+ mainLayout->addLayout(buttonsLayout, 5, 0, 1, 3);
+
+ this->setLayout(mainLayout);
+ this->setWindowTitle(tr("Import Keys from Keyserver"));
+ this->resize(700, 300);
+ this->setModal(true);
+}
+
+QPushButton *KeyServerImportDialog::createButton(const QString &text, const char *member)
+{
+ QPushButton *button = new QPushButton(text);
+ connect(button, SIGNAL(clicked()), this, member);
+ return button;
+}
+
+QComboBox *KeyServerImportDialog::createComboBox()
+{
+ QComboBox *comboBox = new QComboBox;
+ comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+
+ // Read keylist from ini-file and fill it into combobox
+ QSettings settings;
+ comboBox->addItems(settings.value("keyserver/keyServerList").toStringList());
+
+ // set default keyserver in combobox
+ QString keyserver = settings.value("keyserver/defaultKeyServer").toString();
+ comboBox->setCurrentIndex(comboBox->findText(keyserver));
+
+ return comboBox;
+}
+
+void KeyServerImportDialog::createKeysTable()
+{
+ keysTable = new QTableWidget();
+ keysTable->setColumnCount(4);
+
+ // always a whole row is marked
+ keysTable->setSelectionBehavior(QAbstractItemView::SelectRows);
+ keysTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
+
+ // Make just one row selectable
+ keysTable->setSelectionMode(QAbstractItemView::SingleSelection);
+
+ QStringList labels;
+ labels << tr("UID") << tr("Creation date") << tr("KeyID") << tr("Tag");
+ keysTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
+ keysTable->setHorizontalHeaderLabels(labels);
+ keysTable->verticalHeader()->hide();
+
+ connect(keysTable, SIGNAL(cellActivated(int,int)),
+ this, SLOT(slotImport()));
+}
+
+void KeyServerImportDialog::setMessage(const QString &text, bool error)
+{
+ message->setText(text);
+ if (error) {
+ QIcon undoicon = QIcon::fromTheme("dialog-error");
+ QPixmap pixmap = undoicon.pixmap(QSize(32,32),QIcon::Normal,QIcon::On);
+ icon->setPixmap(pixmap);
+ } else {
+ QIcon undoicon = QIcon::fromTheme("dialog-information");
+ QPixmap pixmap = undoicon.pixmap(QSize(32,32),QIcon::Normal,QIcon::On);
+ icon->setPixmap(pixmap);
+ }
+}
+
+void KeyServerImportDialog::slotSearch()
+{
+ QUrl url = keyServerComboBox->currentText()+":11371/pks/lookup?search="+searchLineEdit->text()+"&op=index&options=mr";
+ qnam = new QNetworkAccessManager(this);
+ QNetworkReply* reply = qnam->get(QNetworkRequest(url));
+ connect(reply, SIGNAL(finished()),
+ this, SLOT(slotSearchFinished()));
+}
+
+void KeyServerImportDialog::slotSearchFinished()
+{
+ QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
+
+ keysTable->clearContents();
+ keysTable->setRowCount(0);
+ QString firstLine = QString(reply->readLine(1024));
+
+ QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
+ if (reply->error()) {
+ setMessage(tr("Couldn't contact keyserver!"),true);
+ //setMessage(reply->error());
+ qDebug() << reply->error();
+ }
+ if (firstLine.contains("Error"))
+ {
+ QString text= QString(reply->readLine(1024));
+ if (text.contains("Too many responses")) {
+ setMessage(tr("Too many responses from keyserver!"),true);
+ } else if (text.contains("No keys found")) {
+ // if string looks like hex string, search again with 0x prepended
+ QRegExp rx("[0-9A-Fa-f]*");
+ QString query = searchLineEdit->text();
+ if (rx.exactMatch(query)) {
+ setMessage(tr("No keys found, input may be kexId, retrying search with 0x."),true);
+ searchLineEdit->setText(query.prepend("0x"));
+ this->slotSearch();
+ } else {
+ setMessage(tr("No keys found containing the search string!"),true);
+ }
+ } else if (text.contains("Insufficiently specific words")) {
+ setMessage(tr("Insufficiently specific search string!"),true);
+ } else {
+ setMessage(text, true);
+ }
+ } else {
+ int row = 0;
+ char buff[1024];
+ bool strikeout=false;
+ while (reply->readLine(buff,sizeof(buff)) !=-1) {
+ QString decoded = QString::fromUtf8(QByteArray::fromPercentEncoding(buff));
+ QStringList line = decoded.split(":");
+
+ //TODO: have a look at two following pub lines
+ if (line[0] == "pub") {
+ strikeout=false;
+
+ QString flags = line[line.size()-1];
+
+ keysTable->setRowCount(row+1);
+
+ // flags can be "d" for disabled, "r" for revoked
+ // or "e" for expired
+ if (flags.contains("r") or flags.contains("d") or flags.contains("e")) {
+ strikeout=true;
+ if (flags.contains("e")) {
+ keysTable->setItem(row, 3, new QTableWidgetItem( QString("expired")));
+ }
+ if (flags.contains("r")) {
+ keysTable->setItem(row, 3, new QTableWidgetItem( QString(tr("revoked"))));
+ }
+ if (flags.contains("d")) {
+ keysTable->setItem(row, 3, new QTableWidgetItem( QString(tr("disabled"))));
+ }
+ }
+
+ QStringList line2 = QString(reply->readLine()).split(":");
+
+ QTableWidgetItem *uid = new QTableWidgetItem();
+ if (line2.size() > 1) {
+ uid->setText(line2[1]);
+ keysTable->setItem(row, 0, uid);
+ }
+ QTableWidgetItem *creationdate = new QTableWidgetItem(QDateTime::fromTime_t(line[4].toInt()).toString("dd. MMM. yyyy"));
+ keysTable->setItem(row, 1, creationdate);
+ QTableWidgetItem *keyid = new QTableWidgetItem(line[1]);
+ keysTable->setItem(row, 2, keyid);
+ if (strikeout) {
+ QFont strike = uid->font();
+ strike.setStrikeOut(true);
+ uid->setFont(strike);
+ creationdate->setFont(strike);
+ keyid->setFont(strike);
+ }
+ row++;
+ } else {
+ if (line[0] == "uid") {
+ QStringList l;
+ int height=keysTable->rowHeight(row-1);
+ keysTable->setRowHeight(row-1,height+16);
+ QString tmp=keysTable->item(row-1,0)->text();
+ tmp.append(QString("\n")+line[1]);
+ QTableWidgetItem *tmp1 = new QTableWidgetItem(tmp);
+ keysTable->setItem(row-1,0,tmp1);
+ if (strikeout) {
+ QFont strike = tmp1->font();
+ strike.setStrikeOut(true);
+ tmp1->setFont(strike);
+ }
+ }
+ }
+ setMessage(tr("%1 keys found. Doubleclick a key to import it.").arg(row),false);
+ }
+ keysTable->resizeColumnsToContents();
+ }
+ reply->deleteLater();
+ reply = 0;
+}
+
+void KeyServerImportDialog::slotImport()
+{
+ if ( keysTable->currentRow() > -1 ) {
+ QString keyid = keysTable->item(keysTable->currentRow(),2)->text();
+ QUrl url = keyServerComboBox->currentText();
+ slotImport(QStringList(keyid), url);
+ }
+}
+
+void KeyServerImportDialog::slotImport(QStringList keyIds)
+{
+ QSettings settings;
+ QString keyserver=settings.value("keyserver/defaultKeyServer").toString();
+ QUrl url(keyserver);
+ slotImport(keyIds, url);
+}
+
+
+void KeyServerImportDialog::slotImport(QStringList keyIds, QUrl keyServerUrl)
+{
+ foreach(QString keyId, keyIds) {
+ QUrl reqUrl(keyServerUrl.scheme() + "://" + keyServerUrl.host() + ":11371/pks/lookup?op=get&search=0x"+keyId+"&options=mr");
+ //qDebug() << "req to " << reqUrl;
+ qnam = new QNetworkAccessManager(this);
+ QNetworkReply *reply = qnam->get(QNetworkRequest(reqUrl));
+ connect(reply, SIGNAL(finished()),
+ this, SLOT(slotImportFinished()));
+ }
+}
+
+void KeyServerImportDialog::slotImportFinished()
+{
+ QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
+
+ QByteArray key = reply->readAll();
+
+ QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
+ if (reply->error()) {
+ setMessage(tr("Error while contacting keyserver!"),true);
+ return;
+ }
+ this->importKeys(key.constData());
+ setMessage(tr("Key imported"),false);
+
+ // Add keyserver to list in config-file, if it isn't contained
+ QSettings settings;
+ QStringList keyServerList = settings.value("keyserver/keyServerList").toStringList();
+ if (!keyServerList.contains(keyServerComboBox->currentText()))
+ {
+ keyServerList.append(keyServerComboBox->currentText());
+ settings.setValue("keyserver/keyServerList", keyServerList);
+ }
+ reply->deleteLater();
+ reply = 0;
+}
+
+void KeyServerImportDialog::importKeys(QByteArray inBuffer)
+{
+ GpgImportInformation result = mCtx->importKey(inBuffer);
+ new KeyImportDetailDialog(mCtx, result, this);
+}
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 00000000..0fbdef1b
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,121 @@
+/*
+ * main.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include <QApplication>
+#include "mainwindow.h"
+#include "gpgconstants.h"
+
+int main(int argc, char *argv[])
+{
+
+ Q_INIT_RESOURCE(gpg4usb);
+
+ QApplication app(argc, argv);
+
+ // get application path
+ QString appPath = qApp->applicationDirPath();
+
+ app.setApplicationVersion("0.3.3");
+ app.setApplicationName("gpg4usb");
+
+ // dont show icons in menus
+ app.setAttribute(Qt::AA_DontShowIconsInMenus);
+
+ // unicode in source
+ QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
+
+ // set environment variables
+ // TODO:
+ // - unsetenv on windows?
+ // - wputenv or wputenv_s on windows? http://msdn.microsoft.com/en-us/library/d6dtz42k(v=vs.80).aspx
+ #ifndef _WIN32
+ // do not use GPG_AGENTS like seahorse, because they may save
+ // a password an pc's not owned by user
+ unsetenv("GPG_AGENT_INFO");
+ #endif
+
+// qDebug() << getenv("GNUPGHOME");
+
+#ifndef GPG4USB_NON_PORTABLE
+ // take care of gpg not creating directorys on harddisk
+ putenv(QString("GNUPGHOME=" + appPath + "/keydb").toUtf8().data());
+
+ // this may help with newer gpgme versions on windows
+ //putenv(QString("GPGME_GPGPATH=" + appPath.replace("/", "\\") + "\\bin\\gpg.exe").toUtf8().data());
+
+ // QSettings uses org-name for automatically setting path...
+ app.setOrganizationName("conf");
+
+ // specify default path & format for QSettings
+ QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, appPath);
+#else
+ // in non portable conf should go to ~/.conf/gpg4usb
+ app.setOrganizationName("gpg4usb");
+ qDebug() << "gpg4usb non portable build";
+#endif
+
+ /*QLocale ql(lang);
+ foreach(QLocale l , QLocale::matchingLocales(ql.language(), ql.script(), ql.country())) {
+ qDebug() << "l: " << l.bcp47Name();
+ }*/
+
+ // css
+ QFile file(qApp->applicationDirPath() + "/css/default.css");
+ file.open(QFile::ReadOnly);
+ QString styleSheet = QLatin1String(file.readAll());
+ qApp->setStyleSheet(styleSheet);
+ file.close();
+
+ /**
+ * internationalisation. loop to restart mainwindow
+ * with changed translation when settings change.
+ */
+ QSettings::setDefaultFormat(QSettings::IniFormat);
+ QSettings settings;
+ QTranslator translator, translator2;
+ int return_from_event_loop_code;
+
+ do {
+ app.removeTranslator(&translator);
+ app.removeTranslator(&translator2);
+
+ QString lang = settings.value("int/lang", QLocale::system().name()).toString();
+ if (lang.isEmpty()) {
+ lang = QLocale::system().name();
+ }
+
+ translator.load("ts/gpg4usb_" + lang, appPath);
+ app.installTranslator(&translator);
+
+ // set qt translations
+ translator2.load("ts/qt_" + lang, appPath);
+ app.installTranslator(&translator2);
+
+ MainWindow window;
+ return_from_event_loop_code = app.exec();
+
+ } while( return_from_event_loop_code == RESTART_CODE);
+
+ return return_from_event_loop_code;
+}
+
+
+
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
new file mode 100644
index 00000000..b43cedcd
--- /dev/null
+++ b/src/mainwindow.cpp
@@ -0,0 +1,1045 @@
+/*
+ * mainwindow.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "mainwindow.h"
+
+MainWindow::MainWindow()
+{
+ mCtx = new GpgME::GpgContext();
+
+ /* get path were app was started */
+ setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
+ setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
+
+ edit = new TextEdit();
+ setCentralWidget(edit);
+
+ /* the list of Keys available*/
+ mKeyList = new KeyList(mCtx);
+
+ /* List of binary Attachments */
+ attachmentDockCreated = false;
+
+ /* Variable containing if restart is needed */
+ this->slotSetRestartNeeded(false);
+
+ keyMgmt = new KeyMgmt(mCtx, this);
+ keyMgmt->hide();
+ /* test attachmentdir for files alll 15s */
+ QTimer *timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), this, SLOT(slotCheckAttachmentFolder()));
+ timer->start(5000);
+
+ createActions();
+ createMenus();
+ createToolBars();
+ createStatusBar();
+ createDockWindows();
+
+ connect(edit->tabWidget,SIGNAL(currentChanged(int)),this,SLOT(slotDisableTabActions(int)));
+
+ mKeyList->addMenuAction(appendSelectedKeysAct);
+ mKeyList->addMenuAction(copyMailAddressToClipboardAct);
+ mKeyList->addMenuAction(showKeyDetailsAct);
+ mKeyList->addMenuAction(refreshKeysFromKeyserverAct);
+ mKeyList->addMenuAction(uploadKeyToServerAct);
+
+ restoreSettings();
+
+ // open filename if provided as first command line parameter
+ QStringList args = qApp->arguments();
+ if (args.size() > 1) {
+ if (!args[1].startsWith("-")) {
+ if (QFile::exists(args[1]))
+ edit->loadFile(args[1]);
+ }
+ }
+ edit->curTextPage()->setFocus();
+ this->setWindowTitle(qApp->applicationName());
+ this->show();
+
+ // Show wizard, if the don't show wizard message box wasn't checked
+ // and keylist doesn't contain a private key
+ QSettings settings;
+ if (settings.value("wizard/showWizard",true).toBool() || !settings.value("wizard/nextPage").isNull()) {
+ slotStartWizard();
+ }
+}
+
+void MainWindow::restoreSettings()
+{
+ // state sets pos & size of dock-widgets
+ this->restoreState(settings.value("window/windowState").toByteArray());
+
+ // Restore window size & location
+ if (settings.value("window/windowSave").toBool()) {
+ QPoint pos = settings.value("window/pos", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("window/size", QSize(800, 450)).toSize();
+ this->resize(size);
+ this->move(pos);
+ } else {
+ this->resize(QSize(800, 450));
+ this->move(QPoint(100, 100));
+ }
+
+ // Iconsize
+ QSize iconSize = settings.value("toolbar/iconsize", QSize(24, 24)).toSize();
+ this->setIconSize(iconSize);
+
+ importButton->setIconSize(iconSize);
+ fileEncButton->setIconSize(iconSize);
+ // set list of keyserver if not defined
+ QStringList *keyServerDefaultList;
+ keyServerDefaultList = new QStringList("http://pgp.mit.edu");
+ keyServerDefaultList->append("http://pool.sks-keyservers.net");
+ keyServerDefaultList->append("http://subkeys.pgp.net");
+
+ QStringList keyServerList = settings.value("keyserver/keyServerList", *keyServerDefaultList).toStringList();
+ settings.setValue("keyserver/keyServerList", keyServerList);
+
+ // set default keyserver, if it's not set
+ QString defaultKeyServer = settings.value("keyserver/defaultKeyServer", QString("http://pgp.mit.edu")).toString();
+ settings.setValue("keyserver/defaultKeyServer", defaultKeyServer);
+
+ // Iconstyle
+ Qt::ToolButtonStyle buttonStyle = static_cast<Qt::ToolButtonStyle>(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt());
+ this->setToolButtonStyle(buttonStyle);
+ importButton->setToolButtonStyle(buttonStyle);
+ fileEncButton->setToolButtonStyle(buttonStyle);
+
+ // Checked Keys
+ if (settings.value("keys/keySave").toBool()) {
+ QStringList keyIds = settings.value("keys/keyList").toStringList();
+ mKeyList->setChecked(&keyIds);
+ }
+}
+
+void MainWindow::saveSettings()
+{
+ // window position and size
+ settings.setValue("window/windowState", saveState());
+ settings.setValue("window/pos", pos());
+ settings.setValue("window/size", size());
+
+ // keyid-list of private checked keys
+ if (settings.value("keys/keySave").toBool()) {
+ QStringList *keyIds = mKeyList->getPrivateChecked();
+ if (!keyIds->isEmpty()) {
+ settings.setValue("keys/keyList", *keyIds);
+ } else {
+ settings.setValue("keys/keyList", "");
+ }
+ } else {
+ settings.remove("keys/keyList");
+ }
+}
+
+void MainWindow::createActions()
+{
+ /* Main Menu
+ */
+ newTabAct = new QAction(tr("&New"), this);
+ newTabAct->setIcon(QIcon(":misc_doc.png"));
+ QList<QKeySequence> newTabActShortcutList;
+ newTabActShortcutList.append(QKeySequence (Qt::CTRL + Qt::Key_N));
+ newTabActShortcutList.append(QKeySequence (Qt::CTRL + Qt::Key_T));
+ newTabAct->setShortcuts(newTabActShortcutList);
+ newTabAct->setToolTip(tr("Open a new file"));
+ connect(newTabAct, SIGNAL(triggered()), edit, SLOT(slotNewTab()));
+
+ openAct = new QAction(tr("&Open..."), this);
+ openAct->setIcon(QIcon(":fileopen.png"));
+ openAct->setShortcut(QKeySequence::Open);
+ openAct->setToolTip(tr("Open an existing file"));
+ connect(openAct, SIGNAL(triggered()), edit, SLOT(slotOpen()));
+
+ saveAct = new QAction(tr("&Save"), this);
+ saveAct->setIcon(QIcon(":filesave.png"));
+ saveAct->setShortcut(QKeySequence::Save);
+ saveAct->setToolTip(tr("Save the current File"));
+ connect(saveAct, SIGNAL(triggered()), edit, SLOT(slotSave()));
+
+ saveAsAct = new QAction(tr("Save &As")+"...", this);
+ saveAsAct->setIcon(QIcon(":filesaveas.png"));
+ saveAsAct->setShortcut(QKeySequence::SaveAs);
+ saveAsAct->setToolTip(tr("Save the current File as..."));
+ connect(saveAsAct, SIGNAL(triggered()), edit, SLOT(slotSaveAs()));
+
+ printAct = new QAction(tr("&Print"), this);
+ printAct->setIcon(QIcon(":fileprint.png"));
+ printAct->setShortcut(QKeySequence::Print);
+ printAct->setToolTip(tr("Print Document"));
+ connect(printAct, SIGNAL(triggered()), edit, SLOT(slotPrint()));
+
+ closeTabAct = new QAction(tr("&Close"), this);
+ closeTabAct->setShortcut(QKeySequence::Close);
+ closeTabAct->setToolTip(tr("Close file"));
+ connect(closeTabAct, SIGNAL(triggered()), edit, SLOT(slotCloseTab()));
+
+ quitAct = new QAction(tr("&Quit"), this);
+ quitAct->setShortcut(QKeySequence::Quit);
+ quitAct->setIcon(QIcon(":exit.png"));
+ quitAct->setToolTip(tr("Quit Program"));
+ connect(quitAct, SIGNAL(triggered()), this, SLOT(close()));
+
+ /* Edit Menu
+ */
+ undoAct = new QAction(tr("&Undo"), this);
+ undoAct->setShortcut(QKeySequence::Undo);
+ undoAct->setToolTip(tr("Undo Last Edit Action"));
+ connect(undoAct, SIGNAL(triggered()), edit, SLOT(slotUndo()));
+
+ redoAct = new QAction(tr("&Redo"), this);
+ redoAct->setShortcut(QKeySequence::Redo);
+ redoAct->setToolTip(tr("Redo Last Edit Action"));
+ connect(redoAct, SIGNAL(triggered()), edit, SLOT(slotRedo()));
+
+ zoomInAct = new QAction(tr("Zoom In"), this);
+ zoomInAct->setShortcut(QKeySequence::ZoomIn);
+ connect(zoomInAct, SIGNAL(triggered()), edit, SLOT(slotZoomIn()));
+
+ zoomOutAct = new QAction(tr("Zoom Out"), this);
+ zoomOutAct->setShortcut(QKeySequence::ZoomOut);
+ connect(zoomOutAct, SIGNAL(triggered()), edit, SLOT(slotZoomOut()));
+
+ pasteAct = new QAction(tr("&Paste"), this);
+ pasteAct->setIcon(QIcon(":button_paste.png"));
+ pasteAct->setShortcut(QKeySequence::Paste);
+ pasteAct->setToolTip(tr("Paste Text From Clipboard"));
+ connect(pasteAct, SIGNAL(triggered()), edit, SLOT(slotPaste()));
+
+ cutAct = new QAction(tr("Cu&t"), this);
+ cutAct->setIcon(QIcon(":button_cut.png"));
+ cutAct->setShortcut(QKeySequence::Cut);
+ cutAct->setToolTip(tr("Cut the current selection's contents to the "
+ "clipboard"));
+ connect(cutAct, SIGNAL(triggered()), edit, SLOT(slotCut()));
+
+ copyAct = new QAction(tr("&Copy"), this);
+ copyAct->setIcon(QIcon(":button_copy.png"));
+ copyAct->setShortcut(QKeySequence::Copy);
+ copyAct->setToolTip(tr("Copy the current selection's contents to the "
+ "clipboard"));
+ connect(copyAct, SIGNAL(triggered()), edit, SLOT(slotCopy()));
+
+ quoteAct = new QAction(tr("&Quote"), this);
+ quoteAct->setIcon(QIcon(":quote.png"));
+ quoteAct->setToolTip(tr("Quote whole text"));
+ connect(quoteAct, SIGNAL(triggered()), edit, SLOT(slotQuote()));
+
+ selectallAct = new QAction(tr("Select &All"), this);
+ selectallAct->setIcon(QIcon(":edit.png"));
+ selectallAct->setShortcut(QKeySequence::SelectAll);
+ selectallAct->setToolTip(tr("Select the whole text"));
+ connect(selectallAct, SIGNAL(triggered()), edit, SLOT(slotSelectAll()));
+
+ findAct = new QAction(tr("&Find"), this);
+ findAct->setShortcut(QKeySequence::Find);
+ findAct->setToolTip(tr("Find a word"));
+ connect(findAct, SIGNAL(triggered()), this, SLOT(slotFind()));
+
+ cleanDoubleLinebreaksAct = new QAction(tr("Remove &spacing"), this);
+ cleanDoubleLinebreaksAct->setIcon(QIcon(":format-line-spacing-triple.png"));
+ //cleanDoubleLineBreaksAct->setShortcut(QKeySequence::SelectAll);
+ cleanDoubleLinebreaksAct->setToolTip(tr("Remove double linebreaks, e.g. in pasted text from webmailer"));
+ connect(cleanDoubleLinebreaksAct, SIGNAL(triggered()), this, SLOT(slotCleanDoubleLinebreaks()));
+
+ openSettingsAct = new QAction(tr("Se&ttings"), this);
+ openSettingsAct->setToolTip(tr("Open settings dialog"));
+ openSettingsAct->setShortcut(QKeySequence::Preferences);
+ connect(openSettingsAct, SIGNAL(triggered()), this, SLOT(slotOpenSettingsDialog()));
+
+ /* Crypt Menu
+ */
+ encryptAct = new QAction(tr("&Encrypt"), this);
+ encryptAct->setIcon(QIcon(":encrypted.png"));
+ encryptAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_E));
+ encryptAct->setToolTip(tr("Encrypt Message"));
+ connect(encryptAct, SIGNAL(triggered()), this, SLOT(slotEncrypt()));
+
+ decryptAct = new QAction(tr("&Decrypt"), this);
+ decryptAct->setIcon(QIcon(":decrypted.png"));
+ decryptAct->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D));
+ decryptAct->setToolTip(tr("Decrypt Message"));
+ connect(decryptAct, SIGNAL(triggered()), this, SLOT(slotDecrypt()));
+
+ /*
+ * File encryption submenu
+ */
+ fileEncryptAct = new QAction(tr("&Encrypt File"), this);
+ fileEncryptAct->setToolTip(tr("Encrypt File"));
+ connect(fileEncryptAct, SIGNAL(triggered()), this, SLOT(slotFileEncrypt()));
+
+ fileDecryptAct = new QAction(tr("&Decrypt File"), this);
+ fileDecryptAct->setToolTip(tr("Decrypt File"));
+ connect(fileDecryptAct, SIGNAL(triggered()), this, SLOT(slotFileDecrypt()));
+
+ fileSignAct = new QAction(tr("&Sign File"), this);
+ fileSignAct->setToolTip(tr("Sign File"));
+ connect(fileSignAct, SIGNAL(triggered()), this, SLOT(slotFileSign()));
+
+ fileVerifyAct = new QAction(tr("&Verify File"), this);
+ fileVerifyAct->setToolTip(tr("Verify File"));
+ connect(fileVerifyAct, SIGNAL(triggered()), this, SLOT(slotFileVerify()));
+
+
+ signAct = new QAction(tr("&Sign"), this);
+ signAct->setIcon(QIcon(":signature.png"));
+ signAct->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_I));
+ signAct->setToolTip(tr("Sign Message"));
+ connect(signAct, SIGNAL(triggered()), this, SLOT(slotSign()));
+
+ verifyAct = new QAction(tr("&Verify"), this);
+ verifyAct->setIcon(QIcon(":verify.png"));
+ verifyAct->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_V));
+ verifyAct->setToolTip(tr("Verify Message"));
+ connect(verifyAct, SIGNAL(triggered()), this, SLOT(slotVerify()));
+
+ /* Key Menu
+ */
+
+ importKeyFromEditAct = new QAction(tr("&Editor"), this);
+ importKeyFromEditAct->setIcon(QIcon(":txt.png"));
+ importKeyFromEditAct->setToolTip(tr("Import New Key From Editor"));
+ connect(importKeyFromEditAct, SIGNAL(triggered()), this, SLOT(slotImportKeyFromEdit()));
+
+ openKeyManagementAct = new QAction(tr("Manage &keys"), this);
+ openKeyManagementAct->setIcon(QIcon(":keymgmt.png"));
+ openKeyManagementAct->setToolTip(tr("Open Keymanagement"));
+ connect(openKeyManagementAct, SIGNAL(triggered()), this, SLOT(slotOpenKeyManagement()));
+
+ /* About Menu
+ */
+ aboutAct = new QAction(tr("&About"), this);
+ aboutAct->setIcon(QIcon(":help.png"));
+ aboutAct->setToolTip(tr("Show the application's About box"));
+ connect(aboutAct, SIGNAL(triggered()), this, SLOT(slotAbout()));
+
+ openHelpAct = new QAction(tr("Integrated Help"), this);
+ openHelpAct->setToolTip(tr("Open integrated Help"));
+ connect(openHelpAct, SIGNAL(triggered()), this, SLOT(slotOpenHelp()));
+
+ openTutorialAct = new QAction(tr("Online &Tutorials"), this);
+ openTutorialAct->setToolTip(tr("Open Online Tutorials"));
+ connect(openTutorialAct, SIGNAL(triggered()), this, SLOT(slotOpenTutorial()));
+
+ openTranslateAct = new QAction(tr("Translate gpg4usb"), this);
+ openTranslateAct->setToolTip(tr("Translate gpg4usb yourself"));
+ connect(openTranslateAct, SIGNAL(triggered()), this, SLOT(slotOpenTranslate()));
+
+ startWizardAct= new QAction(tr("Open &Wizard"), this);
+ startWizardAct->setToolTip(tr("Open the wizard"));
+ connect(startWizardAct, SIGNAL(triggered()), this, SLOT(slotStartWizard()));
+
+ /* Popup-Menu-Action for KeyList
+ */
+ appendSelectedKeysAct = new QAction(tr("Append Selected Key(s) To Text"), this);
+ appendSelectedKeysAct->setToolTip(tr("Append The Selected Keys To Text in Editor"));
+ connect(appendSelectedKeysAct, SIGNAL(triggered()), this, SLOT(slotAppendSelectedKeys()));
+
+ copyMailAddressToClipboardAct = new QAction(tr("Copy EMail-address"), this);
+ copyMailAddressToClipboardAct->setToolTip(tr("Copy selected EMailaddress to clipboard"));
+ connect(copyMailAddressToClipboardAct, SIGNAL(triggered()), this, SLOT(slotCopyMailAddressToClipboard()));
+
+ // TODO: find central place for shared actions, to avoid code-duplication with keymgmt.cpp
+ showKeyDetailsAct = new QAction(tr("Show Keydetails"), this);
+ showKeyDetailsAct->setToolTip(tr("Show Details for this Key"));
+ connect(showKeyDetailsAct, SIGNAL(triggered()), this, SLOT(slotShowKeyDetails()));
+
+ refreshKeysFromKeyserverAct = new QAction(tr("Refresh key from keyserver"), this);
+ refreshKeysFromKeyserverAct->setToolTip(tr("Refresh key from default keyserver"));
+ connect(refreshKeysFromKeyserverAct, SIGNAL(triggered()), this, SLOT(refreshKeysFromKeyserver()));
+
+ uploadKeyToServerAct = new QAction(tr("Upload Key(s) To Server"), this);
+ uploadKeyToServerAct->setToolTip(tr("Upload The Selected Keys To Server"));
+ connect(uploadKeyToServerAct, SIGNAL(triggered()), this, SLOT(uploadKeyToServer()));
+ /* Key-Shortcuts for Tab-Switchung-Action
+ */
+ switchTabUpAct = new QAction(this);
+ switchTabUpAct->setShortcut(QKeySequence::NextChild);
+ connect(switchTabUpAct, SIGNAL(triggered()), edit, SLOT(slotSwitchTabUp()));
+ this->addAction(switchTabUpAct);
+
+ switchTabDownAct = new QAction(this);
+ switchTabDownAct->setShortcut(QKeySequence::PreviousChild);
+ connect(switchTabDownAct, SIGNAL(triggered()), edit, SLOT(slotSwitchTabDown()));
+ this->addAction(switchTabDownAct);
+
+ cutPgpHeaderAct = new QAction(tr("Remove PGP Header"), this);
+ connect(cutPgpHeaderAct, SIGNAL(triggered()), this, SLOT(slotCutPgpHeader()));
+
+ addPgpHeaderAct = new QAction(tr("Add PGP Header"), this);
+ connect(addPgpHeaderAct, SIGNAL(triggered()), this, SLOT(slotAddPgpHeader()));
+}
+
+void MainWindow::slotDisableTabActions(int number)
+{
+ bool disable;
+
+ if (number == -1 ) {
+ disable = true;
+ } else {
+ disable= false;
+ }
+ printAct->setDisabled(disable);
+ saveAct->setDisabled(disable);
+ saveAsAct->setDisabled(disable);
+ quoteAct->setDisabled(disable);
+ cutAct->setDisabled(disable);
+ copyAct->setDisabled(disable);
+ pasteAct->setDisabled(disable);
+ closeTabAct->setDisabled(disable);
+ selectallAct->setDisabled(disable);
+ findAct->setDisabled(disable);
+ verifyAct->setDisabled(disable);
+ signAct->setDisabled(disable);
+ encryptAct->setDisabled(disable);
+ decryptAct->setDisabled(disable);
+
+ redoAct->setDisabled(disable);
+ undoAct->setDisabled(disable);
+ zoomOutAct->setDisabled(disable);
+ zoomInAct->setDisabled(disable);
+ cleanDoubleLinebreaksAct->setDisabled(disable);
+ quoteAct->setDisabled(disable);
+ appendSelectedKeysAct->setDisabled(disable);
+ importKeyFromEditAct->setDisabled(disable);
+
+ cutPgpHeaderAct->setDisabled(disable);
+ addPgpHeaderAct->setDisabled(disable);
+}
+
+void MainWindow::createMenus()
+{
+ fileMenu = menuBar()->addMenu(tr("&File"));
+ fileMenu->addAction(newTabAct);
+ fileMenu->addAction(openAct);
+ fileMenu->addSeparator();
+ fileMenu->addAction(saveAct);
+ fileMenu->addAction(saveAsAct);
+ fileMenu->addSeparator();
+ fileMenu->addAction(printAct);
+ fileMenu->addSeparator();
+ fileMenu->addAction(closeTabAct);
+ fileMenu->addAction(quitAct);
+
+ editMenu = menuBar()->addMenu(tr("&Edit"));
+ editMenu->addAction(undoAct);
+ editMenu->addAction(redoAct);
+ editMenu->addSeparator();
+ editMenu->addAction(zoomInAct);
+ editMenu->addAction(zoomOutAct);
+ editMenu->addSeparator();
+ editMenu->addAction(copyAct);
+ editMenu->addAction(cutAct);
+ editMenu->addAction(pasteAct);
+ editMenu->addAction(selectallAct);
+ editMenu->addAction(findAct);
+ editMenu->addSeparator();
+ editMenu->addAction(quoteAct);
+ editMenu->addAction(cleanDoubleLinebreaksAct);
+ editMenu->addSeparator();
+ editMenu->addAction(openSettingsAct);
+
+ fileEncMenu = new QMenu(tr("&File..."));
+ fileEncMenu->addAction(fileEncryptAct);
+ fileEncMenu->addAction(fileDecryptAct);
+ fileEncMenu->addAction(fileSignAct);
+ fileEncMenu->addAction(fileVerifyAct);
+
+ cryptMenu = menuBar()->addMenu(tr("&Crypt"));
+ cryptMenu->addAction(encryptAct);
+ cryptMenu->addAction(decryptAct);
+ cryptMenu->addSeparator();
+ cryptMenu->addAction(signAct);
+ cryptMenu->addAction(verifyAct);
+ cryptMenu->addSeparator();
+ cryptMenu->addMenu(fileEncMenu);
+
+ keyMenu = menuBar()->addMenu(tr("&Keys"));
+ importKeyMenu = keyMenu->addMenu(tr("&Import Key From..."));
+ importKeyMenu->setIcon(QIcon(":key_import.png"));
+ importKeyMenu->addAction(keyMgmt->importKeyFromFileAct);
+ importKeyMenu->addAction(importKeyFromEditAct);
+ importKeyMenu->addAction(keyMgmt->importKeyFromClipboardAct);
+ importKeyMenu->addAction(keyMgmt->importKeyFromKeyServerAct);
+ importKeyMenu->addAction(keyMgmt->importKeyFromKeyServerAct);
+ keyMenu->addAction(openKeyManagementAct);
+
+ steganoMenu = menuBar()->addMenu(tr("&Steganography"));
+ steganoMenu->addAction(cutPgpHeaderAct);
+ steganoMenu->addAction(addPgpHeaderAct);
+
+ // Hide menu, when steganography menu is disabled in settings
+ if(!settings.value("advanced/steganography").toBool()) {
+ this->menuBar()->removeAction(steganoMenu->menuAction());
+ }
+
+ viewMenu = menuBar()->addMenu(tr("&View"));
+
+ helpMenu = menuBar()->addMenu(tr("&Help"));
+ helpMenu->addAction(openHelpAct);
+ helpMenu->addAction(startWizardAct);
+ helpMenu->addSeparator();
+ helpMenu->addAction(openTutorialAct);
+ helpMenu->addAction(openTranslateAct);
+ helpMenu->addSeparator();
+ helpMenu->addAction(aboutAct);
+
+}
+
+void MainWindow::createToolBars()
+{
+ fileToolBar = addToolBar(tr("File"));
+ fileToolBar->setObjectName("fileToolBar");
+ fileToolBar->addAction(newTabAct);
+ fileToolBar->addAction(openAct);
+ fileToolBar->addAction(saveAct);
+ fileToolBar->hide();
+ viewMenu->addAction(fileToolBar->toggleViewAction());
+
+ cryptToolBar = addToolBar(tr("Crypt"));
+ cryptToolBar->setObjectName("cryptToolBar");
+ cryptToolBar->addAction(encryptAct);
+ cryptToolBar->addAction(decryptAct);
+ cryptToolBar->addAction(signAct);
+ cryptToolBar->addAction(verifyAct);
+ //cryptToolBar->addAction(fileEncryptionAct);
+ viewMenu->addAction(cryptToolBar->toggleViewAction());
+
+ keyToolBar = addToolBar(tr("Key"));
+ keyToolBar->setObjectName("keyToolBar");
+ keyToolBar->addAction(openKeyManagementAct);
+ viewMenu->addAction(keyToolBar->toggleViewAction());
+
+ editToolBar = addToolBar(tr("Edit"));
+ editToolBar->setObjectName("editToolBar");
+ editToolBar->addAction(copyAct);
+ editToolBar->addAction(pasteAct);
+ editToolBar->addAction(selectallAct);
+ viewMenu->addAction(editToolBar->toggleViewAction());
+
+ specialEditToolBar = addToolBar(tr("Special edit"));
+ specialEditToolBar->setObjectName("specialEditToolBar");
+ specialEditToolBar->addAction(quoteAct);
+ specialEditToolBar->addAction(cleanDoubleLinebreaksAct);
+ viewMenu->addAction(specialEditToolBar->toggleViewAction());
+
+ // Add dropdown menu for key import to keytoolbar
+ importButton = new QToolButton();
+ importButton->setMenu(importKeyMenu);
+ importButton->setPopupMode(QToolButton::InstantPopup);
+ importButton->setIcon(QIcon(":key_import.png"));
+ importButton->setToolTip(tr("Import key from..."));
+ importButton->setText(tr("Import key"));
+ keyToolBar->addWidget(importButton);
+
+ // Add dropdown menu for file encryption/decryption to crypttoolbar
+ fileEncButton = new QToolButton();
+ fileEncButton->setMenu(fileEncMenu);
+ fileEncButton->setPopupMode(QToolButton::InstantPopup);
+ fileEncButton->setIcon(QIcon(":fileencryption.png"));
+ fileEncButton->setToolTip(tr("Encrypt or decrypt File"));
+ fileEncButton->setText(tr("File.."));
+
+ cryptToolBar->addWidget(fileEncButton);
+
+}
+
+void MainWindow::createStatusBar()
+{
+ QWidget *statusBarBox = new QWidget();
+ QHBoxLayout *statusBarBoxLayout = new QHBoxLayout();
+ QPixmap *pixmap;
+
+ // icon which should be shown if there are files in attachments-folder
+ pixmap = new QPixmap(":statusbar_icon.png");
+ statusBarIcon = new QLabel();
+ statusBar()->addWidget(statusBarIcon);
+
+ statusBarIcon->setPixmap(*pixmap);
+ statusBar()->insertPermanentWidget(0,statusBarIcon,0);
+ statusBarIcon->hide();
+ statusBar()->showMessage(tr("Ready"),2000);
+ statusBarBox->setLayout(statusBarBoxLayout);
+}
+
+void MainWindow::createDockWindows()
+{
+ /* KeyList-Dockwindow
+ */
+ keylistDock = new QDockWidget(tr("Encrypt for:"), this);
+ keylistDock->setObjectName("EncryptDock");
+ keylistDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+ addDockWidget(Qt::RightDockWidgetArea, keylistDock);
+ keylistDock->setWidget(mKeyList);
+ viewMenu->addAction(keylistDock->toggleViewAction());
+
+ /* Attachments-Dockwindow
+ */
+ if(settings.value("mime/parseMime").toBool()) {
+ createAttachmentDock();
+ }
+}
+
+void MainWindow::createAttachmentDock() {
+ if (attachmentDockCreated) {
+ return;
+ }
+ mAttachments = new Attachments();
+ attachmentDock = new QDockWidget(tr("Attached files:"), this);
+ attachmentDock->setObjectName("AttachmentDock");
+ attachmentDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
+ addDockWidget(Qt::BottomDockWidgetArea, attachmentDock);
+ attachmentDock->setWidget(mAttachments);
+ // hide till attachment is decrypted
+ viewMenu->addAction(attachmentDock->toggleViewAction());
+ attachmentDock->hide();
+ attachmentDockCreated = true;
+}
+
+void MainWindow::closeAttachmentDock() {
+ if (!attachmentDockCreated) {
+ return;
+ }
+ attachmentDock->close();
+ attachmentDock->deleteLater();
+ attachmentDockCreated = false;
+}
+
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ /*
+ * ask to save changes, if there are
+ * modified documents in any tab
+ */
+ if (edit->maybeSaveAnyTab()) {
+ saveSettings();
+ event->accept();
+ } else {
+ event->ignore();
+ }
+
+ // clear password from memory
+ mCtx->clearPasswordCache();
+}
+
+void MainWindow::slotAbout()
+{
+ new AboutDialog(this);
+}
+
+void MainWindow::slotOpenTranslate()
+{
+ QDesktopServices::openUrl(QUrl("http://gpg4usb.cpunk.de/docu_translate.html"));
+}
+
+void MainWindow::slotOpenTutorial()
+{
+ QDesktopServices::openUrl(QUrl("http://gpg4usb.cpunk.de/docu.html"));
+}
+
+void MainWindow::slotOpenHelp() {
+ slotOpenHelp("docu.html");
+}
+
+void MainWindow::slotOpenHelp(const QString page)
+{
+ edit->slotNewHelpTab("help", "file:" + qApp->applicationDirPath() + "/help/" + page);
+}
+
+void MainWindow::slotSetStatusBarText(QString text)
+{
+ statusBar()->showMessage(text,20000);
+}
+
+void MainWindow::slotStartWizard()
+{
+ Wizard *wizard = new Wizard(mCtx,keyMgmt,this);
+ wizard->show();
+ wizard->setModal(true);
+}
+
+/*
+ * if this is mime, split text and attachments...
+ * message contains only text afterwards
+ */
+void MainWindow::parseMime(QByteArray *message)
+{
+ /*if (! Mime::isMultipart(message)) {
+ qDebug() << "no multipart";
+ return;
+ }*/
+ //qDebug() << "multipart";
+
+ QString pText;
+ bool showmadock = false;
+
+ Mime *mime = new Mime(message);
+ foreach(MimePart tmp, mime->parts()) {
+ if (tmp.header.getValue("Content-Type") == "text/plain"
+ && tmp.header.getValue("Content-Transfer-Encoding") != "base64") {
+
+ QByteArray body;
+ if (tmp.header.getValue("Content-Transfer-Encoding") == "quoted-printable") {
+ Mime::quotedPrintableDecode(tmp.body, body);
+ } else {
+ body = tmp.body;
+ }
+ pText.append(QString(body));
+ } else {
+ (mAttachments->addMimePart(&tmp));
+ showmadock = true;
+ }
+ }
+ *message = pText.toUtf8();
+ if (showmadock) {
+ attachmentDock->show();
+ }
+}
+
+void MainWindow::slotCheckAttachmentFolder() {
+ // TODO: always check?
+ if(!settings.value("mime/parseMime").toBool()) {
+ return;
+ }
+
+ QString attachmentDir = qApp->applicationDirPath() + "/attachments/";
+ // filenum minus . and ..
+ int filenum = QDir(attachmentDir).count() - 2 ;
+ if(filenum > 0) {
+ QString statusText;
+ if(filenum == 1) {
+ statusText = tr("There is one unencrypted file in attachment folder");
+ } else {
+ statusText = tr("There are ") + QString::number(filenum) + tr(" unencrypted files in attachment folder");
+ }
+ statusBarIcon->setStatusTip(statusText);
+ statusBarIcon->show();
+ } else {
+ statusBarIcon->hide();
+ }
+}
+
+void MainWindow::slotImportKeyFromEdit()
+{
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ keyMgmt->slotImportKeys(edit->curTextPage()->toPlainText().toUtf8());
+}
+
+void MainWindow::slotOpenKeyManagement()
+{
+ keyMgmt->show();
+ keyMgmt->raise();
+ keyMgmt->activateWindow();
+}
+
+void MainWindow::slotEncrypt()
+{
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QStringList *uidList = mKeyList->getChecked();
+
+ QByteArray *tmp = new QByteArray();
+ if (mCtx->encrypt(uidList, edit->curTextPage()->toPlainText().toUtf8(), tmp)) {
+ QString *tmp2 = new QString(*tmp);
+ edit->slotFillTextEditWithText(*tmp2);
+ }
+}
+
+void MainWindow::slotSign()
+{
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QStringList *uidList = mKeyList->getPrivateChecked();
+
+ QByteArray *tmp = new QByteArray();
+
+ if (mCtx->sign(uidList, edit->curTextPage()->toPlainText().toUtf8(), tmp)) {
+ edit->slotFillTextEditWithText(QString::fromUtf8(*tmp));
+ }
+}
+
+void MainWindow::slotDecrypt()
+{
+ if (edit->tabCount()== 0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QByteArray *decrypted = new QByteArray();
+ QByteArray text = edit->curTextPage()->toPlainText().toUtf8(); // TODO: toUtf8() here?
+ mCtx->preventNoDataErr(&text);
+
+ // try decrypt, if fail do nothing, especially don't replace text
+ if(!mCtx->decrypt(text, decrypted)) {
+ return;
+ }
+
+ /*
+ * 1) is it mime (content-type:)
+ * 2) parse header
+ * 2) choose action depending on content-type
+ */
+ if(Mime::isMime(decrypted)) {
+ Header header = Mime::getHeader(decrypted);
+ // is it multipart, is multipart-parsing enabled
+ if(header.getValue("Content-Type") == "multipart/mixed"
+ && settings.value("mime/parseMime").toBool()) {
+ parseMime(decrypted);
+ } else if(header.getValue("Content-Type") == "text/plain"
+ && settings.value("mime/parseQP").toBool()){
+ if (header.getValue("Content-Transfer-Encoding") == "quoted-printable") {
+ QByteArray *decoded = new QByteArray();
+ Mime::quotedPrintableDecode(*decrypted, *decoded);
+ //TODO: remove header
+ decrypted = decoded;
+ }
+ }
+ }
+ edit->slotFillTextEditWithText(QString::fromUtf8(*decrypted));
+}
+
+void MainWindow::slotFind()
+{
+ if (edit->tabCount()==0 || edit->curTextPage() == 0) {
+ return;
+ }
+
+ // At first close verifynotification, if existing
+ edit->slotCurPage()->closeNoteByClass("findwidget");
+
+ FindWidget *fw = new FindWidget(this,edit->curTextPage());
+ edit->slotCurPage()->showNotificationWidget(fw, "findWidget");
+
+}
+
+void MainWindow::slotVerify()
+{
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ // At first close verifynotification, if existing
+ edit->slotCurPage()->closeNoteByClass("verifyNotification");
+
+ // create new verfiy notification
+ VerifyNotification *vn = new VerifyNotification(this, mCtx, mKeyList, edit->curTextPage());
+
+ // if signing information is found, show the notification, otherwise close it
+ if (vn->slotRefresh()) {
+ edit->slotCurPage()->showNotificationWidget(vn, "verifyNotification");
+ } else {
+ vn->close();
+ }
+}
+
+/*
+ * Append the selected (not checked!) Key(s) To Textedit
+ */
+void MainWindow::slotAppendSelectedKeys()
+{
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QByteArray *keyArray = new QByteArray();
+ mCtx->exportKeys(mKeyList->getSelected(), keyArray);
+ edit->curTextPage()->append(*keyArray);
+}
+
+void MainWindow::slotCopyMailAddressToClipboard()
+{
+ if (mKeyList->getSelected()->isEmpty()) {
+ return;
+ }
+
+ gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
+ QClipboard *cb = QApplication::clipboard();
+ QString mail = key->uids->email;
+ cb->setText(mail);
+}
+
+void MainWindow::slotShowKeyDetails()
+{
+ if (mKeyList->getSelected()->isEmpty()) {
+ return;
+ }
+
+ gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
+ if (key) {
+ new KeyDetailsDialog(mCtx, key, this);
+ }
+}
+void MainWindow::refreshKeysFromKeyserver()
+{
+ if (mKeyList->getSelected()->isEmpty()) {
+ return;
+ }
+
+ KeyServerImportDialog *ksid = new KeyServerImportDialog(mCtx,mKeyList,this);
+ ksid->slotImport(*mKeyList->getSelected());
+
+}
+
+void MainWindow::uploadKeyToServer()
+{
+ QByteArray *keyArray = new QByteArray();
+ mCtx->exportKeys(mKeyList->getSelected(), keyArray);
+
+ mKeyList->uploadKeyToServer(keyArray);
+}
+
+void MainWindow::slotFileEncrypt()
+{
+ QStringList *keyList;
+ keyList = mKeyList->getChecked();
+ new FileEncryptionDialog(mCtx, *keyList, FileEncryptionDialog::Encrypt, this);
+}
+
+void MainWindow::slotFileDecrypt()
+{
+ QStringList *keyList;
+ keyList = mKeyList->getChecked();
+ new FileEncryptionDialog(mCtx, *keyList, FileEncryptionDialog::Decrypt, this);
+}
+
+void MainWindow::slotFileSign()
+{
+ QStringList *keyList;
+ keyList = mKeyList->getChecked();
+ new FileEncryptionDialog(mCtx, *keyList, FileEncryptionDialog::Sign, this);
+}
+
+void MainWindow::slotFileVerify()
+{
+ QStringList *keyList;
+ keyList = mKeyList->getChecked();
+ new FileEncryptionDialog(mCtx, *keyList, FileEncryptionDialog::Verify, this);
+}
+
+void MainWindow::slotOpenSettingsDialog()
+{
+
+ QString preLang = settings.value("int/lang").toString();
+ QString preKeydbPath = settings.value("gpgpaths/keydbpath").toString();
+
+ new SettingsDialog(mCtx, this);
+ // Iconsize
+ QSize iconSize = settings.value("toolbar/iconsize", QSize(32, 32)).toSize();
+ this->setIconSize(iconSize);
+ importButton->setIconSize(iconSize);
+ fileEncButton->setIconSize(iconSize);
+
+ // Iconstyle
+ Qt::ToolButtonStyle buttonStyle = static_cast<Qt::ToolButtonStyle>(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt());
+ this->setToolButtonStyle(buttonStyle);
+ importButton->setToolButtonStyle(buttonStyle);
+ fileEncButton->setToolButtonStyle(buttonStyle);
+
+ // Mime-settings
+ if(settings.value("mime/parseMime").toBool()) {
+ createAttachmentDock();
+ } else if(attachmentDockCreated) {
+ closeAttachmentDock();
+ }
+
+ // restart mainwindow if necessary
+ if(getRestartNeeded()) {
+ if(edit->maybeSaveAnyTab()) {
+ saveSettings();
+ qApp->exit(RESTART_CODE);
+ }
+ }
+
+ // steganography hide/show
+ if(!settings.value("advanced/steganography").toBool()) {
+ this->menuBar()->removeAction(steganoMenu->menuAction());
+ } else {
+ this->menuBar()->insertAction(viewMenu->menuAction(), steganoMenu->menuAction());
+ }
+
+}
+
+void MainWindow::slotCleanDoubleLinebreaks()
+{
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QString content = edit->curTextPage()->toPlainText();
+ content.replace("\n\n", "\n");
+ edit->slotFillTextEditWithText(content);
+}
+
+void MainWindow::slotAddPgpHeader() {
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QString content = edit->curTextPage()->toPlainText().trimmed();
+
+ content.prepend("\n\n").prepend(GpgConstants::PGP_CRYPT_BEGIN);
+ content.append("\n").append(GpgConstants::PGP_CRYPT_END);
+
+ edit->slotFillTextEditWithText(content);
+}
+
+void MainWindow::slotCutPgpHeader() {
+
+ if (edit->tabCount()==0 || edit->slotCurPage() == 0) {
+ return;
+ }
+
+ QString content = edit->curTextPage()->toPlainText();
+ int start = content.indexOf(GpgConstants::PGP_CRYPT_BEGIN);
+ int end = content.indexOf(GpgConstants::PGP_CRYPT_END);
+
+ if(start < 0 || end < 0) {
+ return;
+ }
+
+ // remove head
+ int headEnd = content.indexOf("\n\n", start) + 2 ;
+ content.remove(start, headEnd-start);
+
+ // remove tail
+ end = content.indexOf(GpgConstants::PGP_CRYPT_END);
+ content.remove(end, QString(GpgConstants::PGP_CRYPT_END).size());
+
+ edit->slotFillTextEditWithText(content.trimmed());
+}
+
+void MainWindow::slotSetRestartNeeded(bool needed)
+{
+ this->restartNeeded = needed;
+}
+
+bool MainWindow::getRestartNeeded()
+{
+ return this->restartNeeded;
+}
diff --git a/src/mime.cpp b/src/mime.cpp
new file mode 100644
index 00000000..30f19cf0
--- /dev/null
+++ b/src/mime.cpp
@@ -0,0 +1,243 @@
+/*
+ * mime.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+/***
+ * quotedPrintableDecode copied from KCodecs, where it is stated:
+
+ The quoted-printable codec as described in RFC 2045, section 6.7. is by
+ Rik Hemsley (C) 2001.
+
+ */
+
+/* TODO: proper import / copyright statement
+ *
+ */
+
+#include "mime.h"
+
+Mime::Mime(QByteArray *message)
+{
+ splitParts(message);
+ /*
+ mMessage = message;
+ int bStart = mMessage->indexOf("boundary=\"") + 10 ;
+ int bEnd = mMessage->indexOf("\"\n", bStart );
+
+ qDebug() << "bStart: " << bStart << " bEnd: " << bEnd;
+ mBoundary = new QByteArray(mMessage->mid(bStart, bEnd - bStart));
+ qDebug() << "boundary: " << *mBoundary;
+
+ Part *p1 = new Part();
+
+ int nb = mMessage->indexOf(*mBoundary, bEnd) + mBoundary->length() +1 ;
+ qDebug() << "nb: " << nb;
+ int eh = mMessage->indexOf("\n\n", nb);
+ qDebug() << "eh: " << eh;
+ QByteArray *header = new QByteArray(mMessage->mid(nb , eh - nb));
+ qDebug() << "header:" << header;
+
+ // split header at newlines
+ foreach(QByteArray tmp , header->split(* "\n")) {
+ // split lines at :
+ QList<QByteArray> tmp2 = tmp.split(* ":");
+ p1->header.insert(QString(tmp2[0].trimmed()), QString(tmp2[1].trimmed()));
+ }
+
+ QHashIterator<QString, QString> i(p1->header);
+ while (i.hasNext()) {
+ i.next();
+ qDebug() << "found: " << i.key() << ":" << i.value() << endl;
+ }
+
+ int nb2 = mMessage->indexOf(*mBoundary, eh);
+
+ p1->body = mMessage->mid(eh , nb2 - eh);
+
+ QTextCodec *codec = QTextCodec::codecForName("ISO-8859-15");
+ QString qs = codec->toUnicode(p1->body);
+ qDebug() << "body: " << qs;
+ */
+}
+
+Mime::~Mime()
+{
+
+}
+
+void Mime::splitParts(QByteArray *message)
+{
+ int pos1, pos2, headEnd;
+ MimePart p_tmp;
+
+ // find the boundary
+ pos1 = message->indexOf("boundary=\"") + 10 ;
+ pos2 = message->indexOf("\"\n", pos1);
+ QByteArray boundary = message->mid(pos1, pos2 - pos1);
+ //qDebug() << "boundary: " << boundary;
+
+ while (pos2 > pos1) {
+
+ pos1 = message->indexOf(boundary, pos2) + boundary.length() + 1 ;
+ headEnd = message->indexOf("\n\n", pos1);
+ if (headEnd < 0)
+ break;
+ QByteArray header = message->mid(pos1 , headEnd - pos1);
+
+ p_tmp.header = parseHeader(&header);
+
+ pos2 = message->indexOf(boundary, headEnd);
+ p_tmp.body = message->mid(headEnd , pos2 - headEnd);
+
+ mPartList.append(p_tmp);
+ }
+}
+
+Header Mime::parseHeader(QByteArray *header)
+{
+
+ QList<HeadElem> ret;
+
+ /** http://www.aspnetmime.com/help/welcome/overviewmimeii.html :
+ * If a line starts with any white space, that line is said to be 'folded' and is actually
+ * part of the header above it.
+ */
+ header->replace("\n ", " ");
+
+ //split header at newlines
+ foreach(QByteArray line , header->split(* "\n")) {
+ HeadElem elem;
+ //split lines at :
+ QList<QByteArray> tmp2 = line.split(* ":");
+ elem.name = tmp2[0].trimmed();
+ if (tmp2[1].contains(';')) {
+ // split lines at ;
+ // TODO: what if ; is inside ""
+ QList<QByteArray> tmp3 = tmp2[1].split(* ";");
+ elem.value = QString(tmp3.takeFirst().trimmed());
+ foreach(QByteArray tmp4, tmp3) {
+ QList<QByteArray> tmp5 = tmp4.split(* "=");
+ elem.params.insert(QString(tmp5[0].trimmed()), QString(tmp5[1].trimmed()));
+ }
+ } else {
+ elem.value = tmp2[1].trimmed();
+ }
+ ret.append(elem);
+ }
+ return Header(ret);
+}
+
+Header Mime::getHeader(const QByteArray *message) {
+ int headEnd = message->indexOf("\n\n");
+ QByteArray header = message->mid(0, headEnd);
+ return parseHeader(&header);
+}
+
+bool Mime::isMultipart(QByteArray *message)
+{
+ return message->startsWith("Content-Type: multipart/mixed;");
+}
+
+/**
+ * if Content-Type is specified, it should be mime
+ *
+ */
+bool Mime::isMime(const QByteArray *message)
+{
+ return message->startsWith("Content-Type:");
+}
+
+/***
+ * quotedPrintableDecode copied from KCodecs, where it is stated:
+
+ The quoted-printable codec as described in RFC 2045, section 6.7. is by
+ Rik Hemsley (C) 2001.
+
+ */
+
+static const char hexChars[16] = {
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+};
+
+/******************************** KCodecs ********************************/
+// strchr(3) for broken systems.
+static int rikFindChar(register const char * _s, const char c)
+{
+ register const char * s = _s;
+
+ while (true) {
+ if ((0 == *s) || (c == *s)) break; ++s;
+ if ((0 == *s) || (c == *s)) break; ++s;
+ if ((0 == *s) || (c == *s)) break; ++s;
+ if ((0 == *s) || (c == *s)) break; ++s;
+ }
+
+ return s - _s;
+}
+
+void Mime::quotedPrintableDecode(const QByteArray& in, QByteArray& out)
+{
+ // clear out the output buffer
+ out.resize(0);
+ if (in.isEmpty())
+ return;
+
+ char *cursor;
+ const char *data;
+ const unsigned int length = in.size();
+
+ data = in.data();
+ out.resize(length);
+ cursor = out.data();
+
+ for (unsigned int i = 0; i < length; i++) {
+ char c(in[i]);
+
+ if ('=' == c) {
+ if (i < length - 2) {
+ char c1 = in[i + 1];
+ char c2 = in[i + 2];
+
+ if (('\n' == c1) || ('\r' == c1 && '\n' == c2)) {
+ // Soft line break. No output.
+ if ('\r' == c1)
+ i += 2; // CRLF line breaks
+ else
+ i += 1;
+ } else {
+ // =XX encoded byte.
+
+ int hexChar0 = rikFindChar(hexChars, c1);
+ int hexChar1 = rikFindChar(hexChars, c2);
+
+ if (hexChar0 < 16 && hexChar1 < 16) {
+ *cursor++ = char((hexChar0 * 16) | hexChar1);
+ i += 2;
+ }
+ }
+ }
+ } else {
+ *cursor++ = c;
+ }
+ }
+
+ out.truncate(cursor - out.data());
+}
diff --git a/src/quitdialog.cpp b/src/quitdialog.cpp
new file mode 100755
index 00000000..e32369b8
--- /dev/null
+++ b/src/quitdialog.cpp
@@ -0,0 +1,131 @@
+/*
+ *
+ * keymgmt.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "quitdialog.h"
+
+QuitDialog::QuitDialog(QWidget *parent, QHash<int, QString> unsavedDocs)
+ : QDialog(parent)
+{
+ setWindowTitle(tr("Unsaved files"));
+ setModal(true);
+ discarded =false;
+
+ /*
+ * Table of unsaved documents
+ */
+ QHashIterator<int, QString> i (unsavedDocs);
+ int row = 0;
+ mFileList = new QTableWidget(this);
+ mFileList->horizontalHeader()->hide();
+ mFileList->setColumnCount(3);
+ mFileList->setColumnWidth(0, 20);
+ mFileList->setColumnHidden(2, true);
+ mFileList->verticalHeader()->hide();
+ mFileList->setShowGrid(false);
+ mFileList->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ mFileList->setFocusPolicy(Qt::NoFocus);
+ mFileList->horizontalHeader()->setStretchLastSection( true );
+ // fill the table
+ i.toBack(); //jump to the end of list to fill the table backwards
+ while (i.hasPrevious()) {
+ i.previous();
+ mFileList->setRowCount(mFileList->rowCount()+1);
+
+ // checkbox in front of filename
+ QTableWidgetItem *tmp0 = new QTableWidgetItem();
+ tmp0->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled );
+ tmp0->setCheckState(Qt::Checked);
+ mFileList->setItem(row, 0, tmp0);
+
+ // filename
+ QTableWidgetItem *tmp1 = new QTableWidgetItem(i.value());
+ mFileList->setItem(row, 1, tmp1);
+
+ // tab-index in hidden column
+ QTableWidgetItem *tmp2 = new QTableWidgetItem(QString::number(i.key()));
+ mFileList->setItem(row, 2, tmp2);
+ ++row;
+ }
+ /*
+ * Warnbox with icon and text
+ */
+ QPixmap *pixmap = new QPixmap(":error.png");
+ QLabel *warnicon = new QLabel();
+ warnicon->setPixmap(*pixmap);
+ QLabel *warnlabel = new QLabel(tr("<h3>%1 files contain unsaved information.<br/>Save the changes before closing?</h3>").arg(row));
+ QHBoxLayout *warnBoxLayout = new QHBoxLayout();
+ warnBoxLayout->addWidget(warnicon);
+ warnBoxLayout->addWidget(warnlabel);
+ warnBoxLayout->setAlignment(Qt::AlignLeft);
+ QWidget *warnBox = new QWidget(this);
+ warnBox->setLayout(warnBoxLayout);
+
+ /*
+ * Two labels on top and under the filelist
+ */
+ QLabel *checkLabel = new QLabel(tr("Check the files you want to save:"));
+ QLabel *notelabel = new QLabel(tr("<b>Note:</b> If you don't save these files, all changes are lost.<br/>"));
+
+ /*
+ * Buttonbox
+ */
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Discard |QDialogButtonBox::Save | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+ QPushButton* btnNoKey = buttonBox->button(QDialogButtonBox::Discard);
+ connect(btnNoKey, SIGNAL(clicked()), SLOT(slotMyDiscard()));
+
+ /*
+ * Set the layout
+ */
+ QVBoxLayout *vbox = new QVBoxLayout();
+ vbox->addWidget(warnBox);
+ vbox->addWidget(checkLabel);
+ vbox->addWidget(mFileList);
+ vbox->addWidget(notelabel);
+ vbox->addWidget(buttonBox);
+ this->setLayout(vbox);
+}
+
+
+void QuitDialog::slotMyDiscard()
+{
+ discarded =true;
+ reject();
+}
+
+bool QuitDialog::isDiscarded()
+{
+ return discarded;
+}
+
+QList <int> QuitDialog::getTabIdsToSave()
+{
+ QList <int> tabIdsToSave;
+ for (int i = 0; i < mFileList->rowCount(); i++) {
+ if (mFileList->item(i, 0)->checkState() == Qt::Checked) {
+ tabIdsToSave << mFileList->item(i, 2)->text().toInt();
+ }
+ }
+ return tabIdsToSave;
+}
+
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
new file mode 100755
index 00000000..a99b832b
--- /dev/null
+++ b/src/settingsdialog.cpp
@@ -0,0 +1,716 @@
+/*
+ * settingsdialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "settingsdialog.h"
+
+SettingsDialog::SettingsDialog(GpgME::GpgContext *ctx, QWidget *parent)
+ : QDialog(parent)
+{
+ mCtx=ctx;
+ tabWidget = new QTabWidget;
+ generalTab = new GeneralTab(mCtx);
+ appearanceTab = new AppearanceTab;
+ mimeTab = new MimeTab;
+ keyserverTab = new KeyserverTab;
+ advancedTab = new AdvancedTab;
+ gpgPathsTab = new GpgPathsTab;
+
+ tabWidget->addTab(generalTab, tr("General"));
+ tabWidget->addTab(appearanceTab, tr("Appearance"));
+ tabWidget->addTab(mimeTab, tr("PGP/Mime"));
+ tabWidget->addTab(keyserverTab, tr("Keyserver"));
+ tabWidget->addTab(gpgPathsTab, tr("Gpg paths"));
+ tabWidget->addTab(advancedTab, tr("Advanced"));
+
+ buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
+ | QDialogButtonBox::Cancel);
+
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(slotAccept()));
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(tabWidget);
+ mainLayout->addWidget(buttonBox);
+ setLayout(mainLayout);
+
+ setWindowTitle(tr("Settings"));
+
+ // slots for handling the restartneeded member
+ this->slotSetRestartNeeded(false);
+ connect(generalTab, SIGNAL(signalRestartNeeded(bool)), this, SLOT(slotSetRestartNeeded(bool)));
+ connect(appearanceTab, SIGNAL(signalRestartNeeded(bool)), this, SLOT(slotSetRestartNeeded(bool)));
+ connect(mimeTab, SIGNAL(signalRestartNeeded(bool)), this, SLOT(slotSetRestartNeeded(bool)));
+ connect(keyserverTab, SIGNAL(signalRestartNeeded(bool)), this, SLOT(slotSetRestartNeeded(bool)));
+ connect(advancedTab, SIGNAL(signalRestartNeeded(bool)), this, SLOT(slotSetRestartNeeded(bool)));
+
+ connect(this, SIGNAL(signalRestartNeeded(bool)), parent, SLOT(slotSetRestartNeeded(bool)));
+
+ exec();
+}
+
+bool SettingsDialog::getRestartNeeded()
+{
+ return this->restartNeeded;
+}
+
+void SettingsDialog::slotSetRestartNeeded(bool needed)
+{
+ this->restartNeeded = needed;
+}
+
+void SettingsDialog::slotAccept()
+{
+ generalTab->applySettings();
+ mimeTab->applySettings();
+ appearanceTab->applySettings();
+ keyserverTab->applySettings();
+ advancedTab->applySettings();
+ gpgPathsTab->applySettings();
+ if (getRestartNeeded()) {
+ emit signalRestartNeeded(true);
+ }
+ close();
+}
+
+// http://www.informit.com/articles/article.aspx?p=1405555&seqNum=3
+// http://developer.qt.nokia.com/wiki/How_to_create_a_multi_language_application
+QHash<QString, QString> SettingsDialog::listLanguages()
+{
+ QHash<QString, QString> languages;
+
+ languages.insert("", tr("System Default"));
+
+ QString appPath = qApp->applicationDirPath();
+ QDir qmDir = QDir(appPath + "/ts/");
+ QStringList fileNames =
+ qmDir.entryList(QStringList("gpg4usb_*.qm"));
+
+ for (int i = 0; i < fileNames.size(); ++i) {
+ QString locale = fileNames[i];
+ locale.truncate(locale.lastIndexOf('.'));
+ locale.remove(0, locale.indexOf('_') + 1);
+
+ // this works in qt 4.8
+ QLocale qloc(locale);
+ #if QT_VERSION < 0x040800
+ QString language = QLocale::languageToString(qloc.language()) +" (" + locale + ")"; //+ " (" + QLocale::languageToString(qloc.language()) + ")";
+ #else
+ QString language = qloc.nativeLanguageName() +" (" + locale + ")"; //+ " (" + QLocale::languageToString(qloc.language()) + ")";
+ #endif
+ languages.insert(locale, language);
+ }
+ return languages;
+}
+
+
+
+GeneralTab::GeneralTab(GpgME::GpgContext *ctx,QWidget *parent)
+ : QWidget(parent)
+{
+ mCtx=ctx;
+
+ /*****************************************
+ * remember Password-Box
+ *****************************************/
+ QGroupBox *rememberPasswordBox = new QGroupBox(tr("Remember Password"));
+ QHBoxLayout *rememberPasswordBoxLayout = new QHBoxLayout();
+ rememberPasswordCheckBox = new QCheckBox(tr("Remember password until closing gpg4usb"), this);
+ rememberPasswordBoxLayout->addWidget(rememberPasswordCheckBox);
+ rememberPasswordBox->setLayout(rememberPasswordBoxLayout);
+
+ /*****************************************
+ * Save-Checked-Keys-Box
+ *****************************************/
+ QGroupBox *saveCheckedKeysBox = new QGroupBox(tr("Save Checked Keys"));
+ QHBoxLayout *saveCheckedKeysBoxLayout = new QHBoxLayout();
+ saveCheckedKeysCheckBox = new QCheckBox(tr("Save checked private keys on exit and restore them on next start."), this);
+ saveCheckedKeysBoxLayout->addWidget(saveCheckedKeysCheckBox);
+ saveCheckedKeysBox->setLayout(saveCheckedKeysBoxLayout);
+
+ /*****************************************
+ * Key-Impport-Confirmation Box
+ *****************************************/
+ QGroupBox *importConfirmationBox = new QGroupBox(tr("Confirm drag'n'drop key import"));
+ QHBoxLayout *importConfirmationBoxLayout = new QHBoxLayout();
+ importConfirmationCheckBox= new QCheckBox(tr("Import files dropped on the keylist without confirmation."), this);
+ importConfirmationBoxLayout->addWidget(importConfirmationCheckBox);
+ importConfirmationBox->setLayout(importConfirmationBoxLayout);
+
+ /*****************************************
+ * Language Select Box
+ *****************************************/
+ QGroupBox *langBox = new QGroupBox(tr("Language"));
+ QVBoxLayout *langBoxLayout = new QVBoxLayout();
+ langSelectBox = new QComboBox;
+ lang = SettingsDialog::listLanguages();
+
+ foreach(QString l , lang) {
+ langSelectBox->addItem(l);
+ }
+
+ langBoxLayout->addWidget(langSelectBox);
+ langBoxLayout->addWidget(new QLabel(tr("<b>NOTE: </b> Gpg4usb will restart automatically if you change the language!")));
+ langBox->setLayout(langBoxLayout);
+ connect(langSelectBox,SIGNAL(currentIndexChanged(int)),this,SLOT(slotLanguageChanged()));
+
+ /*****************************************
+ * Own Key Select Box
+ *****************************************/
+ QGroupBox *ownKeyBox = new QGroupBox(tr("Own key"));
+ QVBoxLayout *ownKeyBoxLayout = new QVBoxLayout();
+ ownKeySelectBox = new QComboBox;
+
+ ownKeyBox->setLayout(ownKeyBoxLayout);
+ mKeyList = new KeyList(mCtx);
+
+ // Fill the keyid hashmap
+ keyIds.insert("", tr("<none>"));
+
+ foreach (QString keyid, *mKeyList->getAllPrivateKeys()) {
+ gpgme_key_t key = mCtx->getKeyDetails(keyid);
+ QString newKey = " (" + keyid + ")";
+ if (! QString(key->uids->email).isEmpty()) {
+ newKey.prepend( " <"+ QString::fromUtf8(key->uids->email) +">");
+ }
+ if (! QString(key->uids->name).isEmpty()) {
+ newKey.prepend( " "+ QString::fromUtf8(key->uids->name));
+ }
+ keyIds.insert(key->uids->uid, newKey);
+ }
+ foreach(QString k , keyIds) {
+ ownKeySelectBox->addItem(k);
+ }
+ connect(ownKeySelectBox,SIGNAL(currentIndexChanged(int)),this,SLOT(slotOwnKeyIdChanged()));
+
+ ownKeyBoxLayout->addWidget(new QLabel(tr("Encrypt all messages additionally to the chosen key:")));
+ ownKeyBoxLayout->addWidget(ownKeySelectBox);
+
+ /*****************************************
+ * Mainlayout
+ *****************************************/
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(rememberPasswordBox);
+ mainLayout->addWidget(saveCheckedKeysBox);
+ mainLayout->addWidget(importConfirmationBox);
+ mainLayout->addWidget(langBox);
+ mainLayout->addWidget(ownKeyBox);
+
+ setSettings();
+ mainLayout->addStretch(1);
+ setLayout(mainLayout);
+}
+
+/**********************************
+ * Read the settings from config
+ * and set the buttons and checkboxes
+ * appropriately
+ **********************************/
+void GeneralTab::setSettings()
+{
+ QSettings settings;
+ // Keysaving
+ if (settings.value("keys/keySave").toBool()) {
+ saveCheckedKeysCheckBox->setCheckState(Qt::Checked);
+ }
+
+ // Remember Password
+ if (settings.value("general/rememberPassword").toBool()) {
+ rememberPasswordCheckBox->setCheckState(Qt::Checked);
+ }
+
+ // Language setting
+ QString langKey = settings.value("int/lang").toString();
+ QString langValue = lang.value(langKey);
+ if (langKey != "") {
+ langSelectBox->setCurrentIndex(langSelectBox->findText(langValue));
+ }
+
+ // Get own key information from keydb/gpg.conf (if contained)
+ QFile gpgConfFile(qApp->applicationDirPath() + "/keydb/gpg.conf");
+ gpgConfFile.open(QFile::ReadOnly);
+ while (!gpgConfFile.atEnd())
+ {
+ QString line = gpgConfFile.readLine();
+ if (line.startsWith("recipient")){
+ QStringList args;
+
+ // get key id from gpg.conf
+ args=line.split(" ");
+ ownKeyId = args.at(1);
+ // remove linebreak at end of id
+ ownKeyId.remove("\n");
+ ownKeyId.remove("\r");
+ }
+ }
+ gpgConfFile.close();
+ if (ownKeyId.isEmpty()) {
+ ownKeySelectBox->setCurrentIndex(0);
+ } else {
+ ownKeySelectBox->setCurrentIndex(ownKeySelectBox->findText(ownKeyId, Qt::MatchContains));
+ }
+
+ if (settings.value("general/confirmImportKeys",Qt::Checked).toBool()){
+ importConfirmationCheckBox->setCheckState(Qt::Checked);
+ }
+}
+
+/***********************************
+ * get the values of the buttons and
+ * write them to settings-file
+ *************************************/
+void GeneralTab::applySettings()
+{
+ QSettings settings;
+ settings.setValue("keys/keySave", saveCheckedKeysCheckBox->isChecked());
+ // TODO: clear passwordCache instantly on unset rememberPassword
+ settings.setValue("general/rememberPassword", rememberPasswordCheckBox->isChecked());
+ settings.setValue("int/lang", lang.key(langSelectBox->currentText()));
+ settings.setValue("general/confirmImportKeys", importConfirmationCheckBox->isChecked());
+}
+
+void GeneralTab::slotLanguageChanged()
+{
+ emit signalRestartNeeded(true);
+}
+
+void GeneralTab::slotOwnKeyIdChanged()
+{
+ // Set ownKeyId to currently selected
+
+ QHashIterator<QString, QString> i(keyIds);
+ while (i.hasNext()) {
+ i.next();
+ if (ownKeySelectBox->currentText() == i.value()) {
+ ownKeyId = i.key();
+ }
+ }
+
+ /*****************************************
+ * Write keyid of own key to gpg.conf
+ *****************************************/
+ QFile gpgConfFile(qApp->applicationDirPath() + "/keydb/gpg.conf");
+ gpgConfFile.open(QFile::ReadWrite);
+ QFile gpgConfTempFile(qApp->applicationDirPath() + "/keydb/gpg.conf.swp");
+ gpgConfTempFile.open(QFile::WriteOnly);
+
+ // remove line with the hidden-encrypt-to
+ while (!gpgConfFile.atEnd())
+ {
+ QByteArray line = gpgConfFile.readLine();
+ if (!line.startsWith("recipient")) {
+ gpgConfTempFile.write(line);
+ }
+ }
+
+ // add line with hidden-encrypt-to, if a key is chosen
+ if (!ownKeyId.isEmpty()) {
+ QByteArray string("recipient ");
+ string.append(ownKeyId);
+ string.append("\n");
+ gpgConfTempFile.write(string);
+ }
+
+ gpgConfFile.close();
+ gpgConfTempFile.close();
+
+ // move the temporary gpg.conffile to the actual one
+ gpgConfFile.remove();
+ gpgConfTempFile.copy(gpgConfTempFile.fileName(),gpgConfFile.fileName());
+ gpgConfTempFile.remove();
+}
+
+MimeTab::MimeTab(QWidget *parent)
+ : QWidget(parent)
+{
+ /*****************************************
+ * MIME-Parsing-Box
+ *****************************************/
+ QGroupBox *mimeQPBox = new QGroupBox(tr("Decode quoted printable"));
+ QVBoxLayout *mimeQPBoxLayout = new QVBoxLayout();
+ mimeQPCheckBox = new QCheckBox(tr("Try to recognize quoted printable."), this);
+ mimeQPBoxLayout->addWidget(mimeQPCheckBox);
+ mimeQPBox->setLayout(mimeQPBoxLayout);
+
+ QGroupBox *mimeParseBox = new QGroupBox(tr("Parse PGP/MIME (Experimental)"));
+ QVBoxLayout *mimeParseBoxLayout = new QVBoxLayout();
+ mimeParseCheckBox = new QCheckBox(tr("Try to split attachments from PGP-MIME ecrypted messages."), this);
+ mimeParseBoxLayout->addWidget(mimeParseCheckBox);
+ mimeParseBox->setLayout(mimeParseBoxLayout);
+
+ QGroupBox *mimeOpenAttachmentBox = new QGroupBox(tr("Open with external application (Experimental)"));
+ QVBoxLayout *mimeOpenAttachmentBoxLayout = new QVBoxLayout();
+ QLabel *mimeOpenAttachmentText = new QLabel(tr("Open attachments with default application for the filetype.<br> "
+ "There are at least two possible problems with this behaviour:"
+ "<ol><li>File needs to be saved unencrypted to attachments folder.<br> "
+ "Its your job to clean this folder.</li>"
+ "<li>The external application may have its own temp files.</li></ol>"));
+
+ //mimeOpenAttachmentBox->setDisabled(true);
+ mimeOpenAttachmentCheckBox = new QCheckBox(tr("Enable opening with external applications."), this);
+
+ mimeOpenAttachmentBoxLayout->addWidget(mimeOpenAttachmentText);
+ mimeOpenAttachmentBoxLayout->addWidget(mimeOpenAttachmentCheckBox);
+ mimeOpenAttachmentBox->setLayout(mimeOpenAttachmentBoxLayout);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(mimeParseBox);
+ mainLayout->addWidget(mimeOpenAttachmentBox);
+ mainLayout->addWidget(mimeQPBox);
+ mainLayout->addStretch(1);
+ setLayout(mainLayout);
+ setSettings();
+}
+
+/**********************************
+ * Read the settings from config
+ * and set the buttons and checkboxes
+ * appropriately
+ **********************************/
+void MimeTab::setSettings()
+{
+ QSettings settings;
+
+ // MIME-Parsing
+ if (settings.value("mime/parsemime").toBool()) mimeParseCheckBox->setCheckState(Qt::Checked);
+
+ // Qouted Printable
+ if (settings.value("mime/parseQP",true).toBool()) mimeQPCheckBox->setCheckState(Qt::Checked);
+
+ // Open Attachments with external app
+ if (settings.value("mime/openAttachment").toBool()) mimeOpenAttachmentCheckBox->setCheckState(Qt::Checked);
+}
+
+
+/***********************************
+ * get the values of the buttons and
+ * write them to settings-file
+ *************************************/
+void MimeTab::applySettings()
+{
+ QSettings settings;
+ settings.setValue("mime/parsemime" , mimeParseCheckBox->isChecked());
+ settings.setValue("mime/parseQP" , mimeQPCheckBox->isChecked());
+ settings.setValue("mime/openAttachment" , mimeOpenAttachmentCheckBox->isChecked());
+
+}
+
+AppearanceTab::AppearanceTab(QWidget *parent)
+ : QWidget(parent)
+{
+ /*****************************************
+ * Icon-Size-Box
+ *****************************************/
+ QGroupBox *iconSizeBox = new QGroupBox(tr("Iconsize"));
+ iconSizeGroup = new QButtonGroup();
+ iconSizeSmall = new QRadioButton(tr("small"));
+ iconSizeMedium = new QRadioButton(tr("medium"));
+ iconSizeLarge = new QRadioButton(tr("large"));
+
+ iconSizeGroup->addButton(iconSizeSmall, 1);
+ iconSizeGroup->addButton(iconSizeMedium, 2);
+ iconSizeGroup->addButton(iconSizeLarge, 3);
+
+ QHBoxLayout *iconSizeBoxLayout = new QHBoxLayout();
+ iconSizeBoxLayout->addWidget(iconSizeSmall);
+ iconSizeBoxLayout->addWidget(iconSizeMedium);
+ iconSizeBoxLayout->addWidget(iconSizeLarge);
+
+ iconSizeBox->setLayout(iconSizeBoxLayout);
+
+ /*****************************************
+ * Icon-Style-Box
+ *****************************************/
+ QGroupBox *iconStyleBox = new QGroupBox(tr("Iconstyle"));
+ iconStyleGroup = new QButtonGroup();
+ iconTextButton = new QRadioButton(tr("just text"));
+ iconIconsButton = new QRadioButton(tr("just icons"));
+ iconAllButton = new QRadioButton(tr("text and icons"));
+
+ iconStyleGroup->addButton(iconTextButton, 1);
+ iconStyleGroup->addButton(iconIconsButton, 2);
+ iconStyleGroup->addButton(iconAllButton, 3);
+
+ QHBoxLayout *iconStyleBoxLayout = new QHBoxLayout();
+ iconStyleBoxLayout->addWidget(iconTextButton);
+ iconStyleBoxLayout->addWidget(iconIconsButton);
+ iconStyleBoxLayout->addWidget(iconAllButton);
+
+ iconStyleBox->setLayout(iconStyleBoxLayout);
+
+ /*****************************************
+ * Window-Size-Box
+ *****************************************/
+ QGroupBox *windowSizeBox = new QGroupBox(tr("Windowstate"));
+ QHBoxLayout *windowSizeBoxLayout = new QHBoxLayout();
+ windowSizeCheckBox = new QCheckBox(tr("Save window size and position on exit."), this);
+ windowSizeBoxLayout->addWidget(windowSizeCheckBox);
+ windowSizeBox->setLayout(windowSizeBoxLayout);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(iconSizeBox);
+ mainLayout->addWidget(iconStyleBox);
+ mainLayout->addWidget(windowSizeBox);
+ mainLayout->addStretch(1);
+ setSettings();
+ setLayout(mainLayout);
+}
+
+/**********************************
+ * Read the settings from config
+ * and set the buttons and checkboxes
+ * appropriately
+ **********************************/
+void AppearanceTab::setSettings()
+{
+ QSettings settings;
+
+ //Iconsize
+ QSize iconSize = settings.value("toolbar/iconsize", QSize(24, 24)).toSize();
+ switch (iconSize.height()) {
+ case 12: iconSizeSmall->setChecked(true);
+ break;
+ case 24:iconSizeMedium->setChecked(true);
+ break;
+ case 32:iconSizeLarge->setChecked(true);
+ break;
+ }
+ // Iconstyle
+ Qt::ToolButtonStyle iconStyle = static_cast<Qt::ToolButtonStyle>(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt());
+ switch (iconStyle) {
+ case Qt::ToolButtonTextOnly: iconTextButton->setChecked(true);
+ break;
+ case Qt::ToolButtonIconOnly:iconIconsButton->setChecked(true);
+ break;
+ case Qt::ToolButtonTextUnderIcon:iconAllButton->setChecked(true);
+ break;
+ default:
+ break;
+ }
+
+ // Window Save and Position
+ if (settings.value("window/windowSave").toBool()) windowSizeCheckBox->setCheckState(Qt::Checked);
+
+}
+
+/***********************************
+ * get the values of the buttons and
+ * write them to settings-file
+ *************************************/
+void AppearanceTab::applySettings()
+{
+ QSettings settings;
+ switch (iconSizeGroup->checkedId()) {
+ case 1: settings.setValue("toolbar/iconsize", QSize(12, 12));
+ break;
+ case 2:settings.setValue("toolbar/iconsize", QSize(24, 24));
+ break;
+ case 3:settings.setValue("toolbar/iconsize", QSize(32, 32));
+ break;
+ }
+
+ switch (iconStyleGroup->checkedId()) {
+ case 1: settings.setValue("toolbar/iconstyle", Qt::ToolButtonTextOnly);
+ break;
+ case 2:settings.setValue("toolbar/iconstyle", Qt::ToolButtonIconOnly);
+ break;
+ case 3:settings.setValue("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon);
+ break;
+ }
+
+ settings.setValue("window/windowSave", windowSizeCheckBox->isChecked());
+}
+
+KeyserverTab::KeyserverTab(QWidget *parent)
+ : QWidget(parent)
+{
+ QVBoxLayout *mainLayout = new QVBoxLayout(this);
+
+ QLabel *label = new QLabel(tr("Default Keyserver for import:"));
+ comboBox = new QComboBox;
+ comboBox->setEditable(false);
+ comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+
+ QWidget *addKeyServerBox = new QWidget(this);
+ QHBoxLayout *addKeyServerLayout = new QHBoxLayout(addKeyServerBox);
+ QLabel *http = new QLabel("http://");
+ newKeyServerEdit = new QLineEdit(this);
+ QPushButton *newKeyServerButton = new QPushButton(tr("Add to keyserverlist"), this);
+ connect(newKeyServerButton,SIGNAL(clicked()), this, SLOT(addKeyServer()));
+ addKeyServerLayout->addWidget(http);
+ addKeyServerLayout->addWidget(newKeyServerEdit);
+ addKeyServerLayout->addWidget(newKeyServerButton);
+
+ mainLayout->addWidget(label);
+ mainLayout->addWidget(comboBox);
+ mainLayout->addWidget(addKeyServerBox);
+ mainLayout->addStretch(1);
+
+ // Read keylist from ini-file and fill it into combobox
+ setSettings();
+}
+
+
+/**********************************
+ * Read the settings from config
+ * and set the buttons and checkboxes
+ * appropriately
+ **********************************/
+void KeyserverTab::setSettings()
+{
+ QSettings settings;
+ QString defKeyserver = settings.value("keyserver/defaultKeyServer").toString();
+
+ QStringList *keyServerList = new QStringList();
+ for(int i=0; i < comboBox->count(); i++) {
+ keyServerList->append(comboBox->itemText(i));
+ }
+ settings.setValue("keyserver/keyServerList", *keyServerList);
+}
+
+void KeyserverTab::addKeyServer()
+{
+ if (newKeyServerEdit->text().startsWith("http://")) {
+ comboBox->addItem(newKeyServerEdit->text());
+ } else {
+ comboBox->addItem("http://" +newKeyServerEdit->text());
+ }
+ comboBox->setCurrentIndex(comboBox->count()-1);
+}
+/***********************************
+ * get the values of the buttons and
+ * write them to settings-file
+ *************************************/
+void KeyserverTab::applySettings()
+{
+ QSettings settings;
+ settings.setValue("keyserver/defaultKeyServer",comboBox->currentText());
+}
+
+AdvancedTab::AdvancedTab(QWidget *parent)
+ : QWidget(parent)
+{
+ /*****************************************
+ * Steganography Box
+ *****************************************/
+ QGroupBox *steganoBox = new QGroupBox(tr("Show Steganography Options [Advanced]"));
+ QHBoxLayout *steganoBoxLayout = new QHBoxLayout();
+ steganoCheckBox= new QCheckBox(tr("Show Steganographic Options."), this);
+ steganoBoxLayout->addWidget(steganoCheckBox);
+ steganoBox->setLayout(steganoBoxLayout);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(steganoBox);
+ setSettings();
+ mainLayout->addStretch(1);
+ setLayout(mainLayout);
+
+}
+
+void AdvancedTab::setSettings()
+{
+ QSettings settings;
+ if (settings.value("advanced/steganography").toBool()){
+ steganoCheckBox->setCheckState(Qt::Checked);
+ }
+}
+
+void AdvancedTab::applySettings()
+{
+ QSettings settings;
+ settings.setValue("advanced/steganography", steganoCheckBox->isChecked());
+}
+
+GpgPathsTab::GpgPathsTab(QWidget *parent)
+ : QWidget(parent)
+{
+ setSettings();
+
+ /*****************************************
+ * Keydb Box
+ *****************************************/
+ QGroupBox *keydbBox = new QGroupBox(tr("Relative path to keydb"));
+ QGridLayout *keydbBoxLayout = new QGridLayout();
+
+ // Label containing the current keydbpath relative to default keydb path
+ keydbLabel = new QLabel(accKeydbPath,this);
+
+ QPushButton *keydbButton = new QPushButton("Change keydb path",this);
+ connect(keydbButton, SIGNAL(clicked()), this, SLOT(chooseKeydbDir()));
+ QPushButton *keydbDefaultButton = new QPushButton("Set keydb to default path",this);
+ connect(keydbDefaultButton, SIGNAL(clicked()), this, SLOT(setKeydbPathToDefault()));
+
+ keydbBox->setLayout(keydbBoxLayout);
+ keydbBoxLayout->addWidget(new QLabel(tr("Current keydb path: ")),1,1);
+ keydbBoxLayout->addWidget(keydbLabel,1,2);
+ keydbBoxLayout->addWidget(keydbButton,1,3);
+ keydbBoxLayout->addWidget(keydbDefaultButton,2,3);
+ keydbBoxLayout->addWidget(new QLabel(tr("<b>NOTE: </b> Gpg4usb will restart automatically if you change the keydb path!")),3,1,1,3);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(keydbBox);
+ mainLayout->addStretch(1);
+ setLayout(mainLayout);
+}
+
+QString GpgPathsTab::getRelativePath(const QString dir1,const QString dir2)
+{
+ QDir dir(dir1);
+ QString s;
+
+ s = dir.relativeFilePath(dir2);
+ qDebug() << "relative path: " << s;
+ if (s.isEmpty()) {
+ s = ".";
+ }
+ return s;
+}
+
+void GpgPathsTab::setKeydbPathToDefault()
+{
+ accKeydbPath = ".";
+ keydbLabel->setText(".");
+}
+
+QString GpgPathsTab::chooseKeydbDir()
+{
+ QString dir = QFileDialog::getExistingDirectory(this,tr ("Choose keydb directory"),accKeydbPath,QFileDialog::ShowDirsOnly);
+
+ accKeydbPath = getRelativePath(defKeydbPath, dir);
+ keydbLabel->setText(accKeydbPath);
+ return "";
+}
+
+void GpgPathsTab::setSettings()
+{
+ defKeydbPath = qApp->applicationDirPath() + "/keydb";
+
+ QSettings settings;
+ accKeydbPath = settings.value("gpgpaths/keydbpath").toString();
+ if (accKeydbPath.isEmpty()) {
+ accKeydbPath = ".";
+ }
+}
+
+void GpgPathsTab::applySettings()
+{
+ QSettings settings;
+ settings.setValue("gpgpaths/keydbpath",accKeydbPath);
+}
diff --git a/src/textedit.cpp b/src/textedit.cpp
new file mode 100644
index 00000000..e28304d5
--- /dev/null
+++ b/src/textedit.cpp
@@ -0,0 +1,573 @@
+/*
+ * textedit.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "textedit.h"
+
+TextEdit::TextEdit()
+{
+ countPage = 0;
+ tabWidget = new QTabWidget(this);
+ tabWidget->setMovable(true);
+ tabWidget->setTabsClosable(true);
+ tabWidget->setDocumentMode(true);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(tabWidget);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
+ setLayout(layout);
+
+ connect(tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(removeTab(int)));
+ slotNewTab();
+ setAcceptDrops(false);
+}
+
+void TextEdit::slotNewTab()
+{
+ QString header = tr("untitled") +
+ QString::number(++countPage)+".txt";
+
+ EditorPage *page = new EditorPage();
+ tabWidget->addTab(page, header);
+ tabWidget->setCurrentIndex(tabWidget->count() - 1);
+ page->getTextPage()->setFocus();
+ connect(page->getTextPage()->document(), SIGNAL(modificationChanged(bool)), this, SLOT(slotShowModified()));
+ }
+
+void TextEdit::slotNewHelpTab(QString title, QString path)
+{
+
+ HelpPage *page = new HelpPage(path);
+ tabWidget->addTab(page, title);
+ tabWidget->setCurrentIndex(tabWidget->count() - 1);
+
+}
+
+void TextEdit::slotOpen()
+{
+ QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open file"),
+ QDir::currentPath());
+ foreach (QString fileName,fileNames){
+ if (!fileName.isEmpty()) {
+ QFile file(fileName);
+
+ if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ EditorPage *page = new EditorPage(fileName);
+
+ QTextStream in(&file);
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ page->getTextPage()->setPlainText(in.readAll());
+ page->setFilePath(fileName);
+ QTextDocument *document = page->getTextPage()->document();
+ document->setModified(false);
+
+ tabWidget->addTab(page, strippedName(fileName));
+ tabWidget->setCurrentIndex(tabWidget->count() - 1);
+ QApplication::restoreOverrideCursor();
+ page->getTextPage()->setFocus();
+ connect(page->getTextPage()->document(), SIGNAL(modificationChanged(bool)), this, SLOT(slotShowModified()));
+ //enableAction(true)
+ file.close();
+ } else {
+ QMessageBox::warning(this, tr("Application"),
+ tr("Cannot read file %1:\n%2.")
+ .arg(fileName)
+ .arg(file.errorString()));
+ }
+ }
+ }
+}
+
+void TextEdit::slotSave()
+{
+ if (tabWidget->count() == 0 || slotCurPage() == 0) {
+ return;
+ }
+
+ QString fileName = slotCurPage()->getFilePath();
+
+ if (fileName.isEmpty()) {
+ //QString docname = tabWidget->tabText(tabWidget->currentIndex());
+ //docname.remove(0,2);
+ slotSaveAs();
+ } else {
+ saveFile(fileName);
+ }
+}
+
+bool TextEdit::saveFile(const QString &fileName)
+{
+ if (fileName.isEmpty()) {
+ return false;
+ }
+
+ QFile file(fileName);
+
+ if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ EditorPage *page = slotCurPage();
+
+ QTextStream outputStream(&file);
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ outputStream << page->getTextPage()->toPlainText();
+ QApplication::restoreOverrideCursor();
+ QTextDocument *document = page->getTextPage()->document();
+
+ document->setModified(false);
+
+ int curIndex = tabWidget->currentIndex();
+ tabWidget->setTabText(curIndex, strippedName(fileName));
+ page->setFilePath(fileName);
+ // statusBar()->showMessage(tr("File saved"), 2000);
+ file.close();
+ return true;
+ } else {
+ QMessageBox::warning(this, tr("File"),
+ tr("Cannot write file %1:\n%2.")
+ .arg(fileName)
+ .arg(file.errorString()));
+ return false;
+ }
+}
+
+
+bool TextEdit::slotSaveAs()
+{
+ if (tabWidget->count() == 0 || slotCurPage() == 0) {
+ return true;
+ }
+
+ EditorPage *page = slotCurPage();
+ QString path;
+ if(page->getFilePath() != "") {
+ path = page->getFilePath();
+ } else {
+ path = tabWidget->tabText(tabWidget->currentIndex()).remove(0,2);
+ }
+
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Save file "),
+ path);
+ return saveFile(fileName);
+}
+
+void TextEdit::slotCloseTab()
+{
+ removeTab(tabWidget->currentIndex());
+ if (tabWidget->count() != 0) {
+ slotCurPage()->getTextPage()->setFocus();
+ }
+}
+
+void TextEdit::removeTab(int index)
+{
+ // Do nothing, if no tab is opened
+ if (tabWidget->count() == 0) {
+ return;
+ }
+
+ // get the index of the actual current tab
+ int lastIndex = tabWidget->currentIndex();
+
+ // set the focus to argument index
+ tabWidget->setCurrentIndex(index);
+
+ if (maybeSaveCurrentTab(true)) {
+ tabWidget->removeTab(index);
+
+ if(index >= lastIndex) {
+ tabWidget->setCurrentIndex(lastIndex);
+ } else {
+ tabWidget->setCurrentIndex(lastIndex-1);
+ }
+ }
+
+ if (tabWidget->count() == 0) {
+ // enableAction(false);
+ }
+}
+
+
+ /**
+ * Check if current may need to be saved.
+ * Call this function before closing the currently active tab-
+ *
+ * If it returns false, the close event should be aborted.
+ */
+bool TextEdit::maybeSaveCurrentTab(bool askToSave) {
+
+ EditorPage *page = slotCurPage();
+ // if this page is no textedit, there should be nothing to save
+ if(page == 0) {
+ return true;
+ }
+ QTextDocument *document = page->getTextPage()->document();
+
+ if (document->isModified()) {
+ QMessageBox::StandardButton result = QMessageBox::Cancel;
+
+ // write title of tab to docname and remove the leading *
+ QString docname = tabWidget->tabText(tabWidget->currentIndex());
+ docname.remove(0,2);
+
+ QString filePath = page->getFilePath();
+ if (askToSave) {
+ result = QMessageBox::warning(this, tr("Unsaved document"),
+ tr("<h3>The document \"%1\" has been modified.<br/>Do you want to save your changes?</h3>").arg(docname)+
+ tr("<b>Note:</b> If you don't save these files, all changes are lost.<br/>"),
+ QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
+ }
+ if ((result == QMessageBox::Save) || (!askToSave)) {
+ if (filePath == "") {
+ //QString docname = tabWidget->tabText(tabWidget->currentIndex());
+ //docname.remove(0,2);
+ return slotSaveAs();
+ } else {
+ return saveFile(filePath);
+ }
+ } else if (result == QMessageBox::Discard) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool TextEdit::maybeSaveAnyTab()
+{
+ // get a list of all unsaved documents and their tabids
+ QHash<int, QString> unsavedDocs = this->unsavedDocuments();
+
+ /*
+ * no unsaved documents, so app can be closed
+ */
+ if (unsavedDocs.size() == 0) {
+ return true;
+ }
+ /*
+ * only 1 unsaved document -> set modified tab as current
+ * and show normal unsaved doc dialog
+ */
+ if(unsavedDocs.size() == 1) {
+ int modifiedTab = unsavedDocs.keys().at(0);
+ tabWidget->setCurrentIndex(modifiedTab);
+ return maybeSaveCurrentTab(true);
+ }
+
+ /*
+ * more than one unsaved documents
+ */
+ if(unsavedDocs.size() > 1) {
+ QHashIterator<int, QString> i (unsavedDocs);
+
+ QuitDialog *dialog;
+ dialog=new QuitDialog(this, unsavedDocs);
+ int result = dialog->exec();
+
+ // if result is QDialog::Rejected, discard or cancel was clicked
+ if (result == QDialog::Rejected){
+ // return true, if discard is clicked, so app can be closed
+ if (dialog->isDiscarded()){
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ bool allsaved=true;
+ QList <int> tabIdsToSave = dialog->getTabIdsToSave();
+
+ foreach (int tabId, tabIdsToSave) {
+ tabWidget->setCurrentIndex(tabId);
+ if (! maybeSaveCurrentTab(false)) {
+ allsaved=false;
+ }
+ }
+ if (allsaved) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+ // code should never reach this statement
+ return false;
+}
+
+
+QTextEdit* TextEdit::curTextPage()
+{
+ EditorPage *curTextPage = qobject_cast<EditorPage *>(tabWidget->currentWidget());
+ if(curTextPage != 0) {
+ return curTextPage->getTextPage();
+ } else {
+ return 0;
+ }
+}
+
+QTextBrowser* TextEdit::curHelpPage() {
+ HelpPage *curHelpPage = qobject_cast<HelpPage *>(tabWidget->currentWidget());
+ if(curHelpPage != 0) {
+ return curHelpPage->getBrowser();
+ } else {
+ return 0;
+ }
+}
+
+int TextEdit::tabCount()
+{
+ return tabWidget->count();
+}
+
+EditorPage* TextEdit::slotCurPage()
+{
+ EditorPage *curPage = qobject_cast<EditorPage *>(tabWidget->currentWidget());
+ return curPage;
+}
+
+void TextEdit::slotQuote()
+{
+ if (tabWidget->count() == 0 || curTextPage() == 0) {
+ return;
+ }
+
+ QTextCursor cursor(curTextPage()->document());
+
+ // beginEditBlock and endEditBlock() let operation look like single undo/redo operation
+ cursor.beginEditBlock();
+ cursor.setPosition(0);
+ cursor.insertText("> ");
+ while (!cursor.isNull() && !cursor.atEnd()) {
+ cursor.movePosition(QTextCursor::EndOfLine);
+ cursor.movePosition(QTextCursor::NextCharacter);
+ if(!cursor.atEnd()) {
+ cursor.insertText("> ");
+ }
+ }
+ cursor.endEditBlock();
+}
+
+void TextEdit::slotFillTextEditWithText(QString text) {
+ QTextCursor cursor(curTextPage()->document());
+ cursor.beginEditBlock();
+ this->curTextPage()->selectAll();
+ this->curTextPage()->insertPlainText(text);
+ cursor.endEditBlock();
+}
+
+void TextEdit::loadFile(const QString &fileName)
+{
+ QFile file(fileName);
+ if (!file.open(QFile::ReadOnly | QFile::Text)) {
+ QMessageBox::warning(this, tr("Application"),
+ tr("Cannot read file %1:\n%2.")
+ .arg(fileName)
+ .arg(file.errorString()));
+ return;
+ }
+ QTextStream in(&file);
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ curTextPage()->setPlainText(in.readAll());
+ QApplication::restoreOverrideCursor();
+ slotCurPage()->setFilePath(fileName);
+ tabWidget->setTabText(tabWidget->currentIndex(), strippedName(fileName));
+ file.close();
+ // statusBar()->showMessage(tr("File loaded"), 2000);
+}
+
+QString TextEdit::strippedName(const QString &fullFileName)
+{
+ return QFileInfo(fullFileName).fileName();
+}
+
+void TextEdit::slotPrint()
+{
+ if (tabWidget->count() == 0) {
+ return;
+ }
+
+#ifndef QT_NO_PRINTER
+ QTextDocument *document;
+ if(curTextPage() == 0) {
+ document = curHelpPage()->document();
+ } else {
+ document = curTextPage()->document();
+ }
+ QPrinter printer;
+
+ QPrintDialog *dlg = new QPrintDialog(&printer, this);
+ if (dlg->exec() != QDialog::Accepted) {
+ return;
+ }
+ document->print(&printer);
+
+ //statusBar()->showMessage(tr("Ready"), 2000);
+#endif
+}
+
+void TextEdit::slotShowModified() {
+ int index=tabWidget->currentIndex();
+ QString title= tabWidget->tabText(index);
+ // if doc is modified now, add leading * to title,
+ // otherwise remove the leading * from the title
+ if(curTextPage()->document()->isModified()) {
+ tabWidget->setTabText(index, title.prepend("* "));
+ } else {
+ tabWidget->setTabText(index, title.remove(0,2));
+ }
+}
+
+void TextEdit::slotSwitchTabUp() {
+ if (tabWidget->count() > 1) {
+ int newindex=(tabWidget->currentIndex()+1)%(tabWidget->count());
+ tabWidget->setCurrentIndex(newindex);
+ }
+}
+
+void TextEdit::slotSwitchTabDown() {
+ if (tabWidget->count() > 1) {
+ int newindex=(tabWidget->currentIndex()-1+tabWidget->count())%tabWidget->count();
+ tabWidget->setCurrentIndex(newindex);
+ }
+}
+
+/*
+ * return a hash of tabindexes and title of unsaved tabs
+ */
+QHash<int, QString> TextEdit::unsavedDocuments() {
+ QHash<int, QString> unsavedDocs; // this list could be used to implement gedit like "unsaved changed"-dialog
+
+ for(int i=0; i < tabWidget->count(); i++) {
+ EditorPage *ep = qobject_cast<EditorPage *> (tabWidget->widget(i));
+ if(ep != 0 && ep->getTextPage()->document()->isModified()) {
+ QString docname = tabWidget->tabText(i);
+ // remove * before name of modified doc
+ docname.remove(0,2);
+ unsavedDocs.insert(i, docname);
+ }
+ }
+ return unsavedDocs;
+}
+
+void TextEdit::slotCut()
+{
+ if (tabWidget->count() == 0 || curTextPage() == 0) {
+ return;
+ }
+
+ curTextPage()->cut();
+}
+
+void TextEdit::slotCopy()
+{
+ if (tabWidget->count() == 0) {
+ return;
+ }
+
+ if(curTextPage() != 0) {
+ curTextPage()->copy();
+ } else {
+ curHelpPage()->copy();
+ }
+
+
+}
+
+void TextEdit::slotPaste()
+{
+ if (tabWidget->count() == 0 || curTextPage() == 0) {
+ return;
+ }
+
+ curTextPage()->paste();
+}
+
+void TextEdit::slotUndo()
+{
+ if (tabWidget->count() == 0 || curTextPage() == 0) {
+ return;
+ }
+
+ curTextPage()->undo();
+}
+
+void TextEdit::slotRedo()
+{
+ if (tabWidget->count() == 0 || curTextPage() == 0) {
+ return;
+ }
+
+ curTextPage()->redo();
+}
+
+void TextEdit::slotZoomIn()
+{
+ if (tabWidget->count() == 0 ) {
+ return;
+ }
+
+ if(curTextPage() != 0) {
+ curTextPage()->zoomIn();
+ } else {
+ curHelpPage()->zoomIn();
+ }
+
+}
+
+void TextEdit::slotZoomOut()
+{
+ if (tabWidget->count() == 0 ) {
+ return;
+ }
+
+ if(curTextPage() != 0) {
+ curTextPage()->zoomOut();
+ } else {
+ curHelpPage()->zoomOut();
+ }
+}
+
+void TextEdit::slotSelectAll()
+{
+ if (tabWidget->count() == 0 || curTextPage() == 0) {
+ return;
+ }
+
+ curTextPage()->selectAll();
+}
+
+/*void TextEdit::dragEnterEvent(QDragEnterEvent *event)
+{
+ if (event->mimeData()->hasFormat("text/plain"))
+ qDebug() << "enter textedit drag action";
+ event->acceptProposedAction();
+}
+
+void TextEdit::dropEvent(QDropEvent* event)
+{
+ curTextPage()->setPlainText(event->mimeData()->text());
+
+ foreach (QUrl tmp, event->mimeData()->urls())
+ {
+ qDebug() << tmp;
+ }
+
+ //event->acceptProposedAction();
+}
+*/
diff --git a/src/verifydetailsdialog.cpp b/src/verifydetailsdialog.cpp
new file mode 100644
index 00000000..fc9ab6cc
--- /dev/null
+++ b/src/verifydetailsdialog.cpp
@@ -0,0 +1,103 @@
+/*
+ * verifydetailsdialog.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "verifydetailsdialog.h"
+
+VerifyDetailsDialog::VerifyDetailsDialog(QWidget *parent, GpgME::GpgContext* ctx, KeyList* keyList, QByteArray* inputData, QByteArray* inputSignature) :
+ QDialog(parent)
+{
+ mCtx = ctx;
+ mKeyList = keyList;
+ //mTextpage = edit;
+ mInputData = inputData;
+ mInputSignature = inputSignature;
+
+ this->setWindowTitle(tr("Signaturedetails"));
+
+ connect(mCtx, SIGNAL(keyDBChanged()), this, SLOT(slotRefresh()));
+ mainLayout = new QHBoxLayout();
+ this->setLayout(mainLayout);
+
+ mVbox = new QWidget();
+ slotRefresh();
+
+ this->exec();
+}
+
+void VerifyDetailsDialog::slotRefresh()
+{
+ mVbox->close();
+
+ mVbox = new QWidget();
+ QVBoxLayout *mVboxLayout = new QVBoxLayout(mVbox);
+ mainLayout->addWidget(mVbox);
+
+ // Button Box for close button
+ buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
+
+ // Get signature information of current text
+ //QByteArray text = mTextpage->toPlainText().toUtf8();
+ //mCtx->preventNoDataErr(&text);
+ gpgme_signature_t sign;
+ if(mInputSignature != 0) {
+ sign = mCtx->verify(mInputData, mInputSignature);
+ } else {
+ sign = mCtx->verify(mInputData);
+ }
+
+ if(sign==0) {
+ mVboxLayout->addWidget(new QLabel(tr("No valid input found")));
+ mVboxLayout->addWidget(buttonBox);
+ return;
+ }
+
+ // Get timestamp of signature of current text
+ QDateTime timestamp;
+ timestamp.setTime_t(sign->timestamp);
+
+ // Set the title widget depending on sign status
+ if(gpg_err_code(sign->status) == GPG_ERR_BAD_SIGNATURE) {
+ mVboxLayout->addWidget(new QLabel(tr("Error Validating signature")));
+ } else if (mInputSignature != 0) {
+ mVboxLayout->addWidget(new QLabel(tr("File was signed on <br/> %1 by:<br/>").arg(timestamp.toString(Qt::SystemLocaleLongDate))));
+ } else {
+ switch (mCtx->textIsSigned(*mInputData))
+ {
+ case 2:
+ {
+ mVboxLayout->addWidget(new QLabel(tr("Text was completely signed on <br/> %1 by:<br/>").arg(timestamp.toString(Qt::SystemLocaleLongDate)))); break;
+ }
+ case 1:
+ {
+ mVboxLayout->addWidget(new QLabel(tr("Text was partially signed on <br/> %1 by:<br/>").arg(timestamp.toString(Qt::SystemLocaleLongDate)))); break;
+ }
+ }
+ }
+ // Add informationbox for every single key
+ while (sign) {
+ VerifyKeyDetailBox *sbox = new VerifyKeyDetailBox(this,mCtx,mKeyList,sign);
+ sign = sign->next;
+ mVboxLayout->addWidget(sbox);
+ }
+
+ mVboxLayout->addWidget(buttonBox);
+}
diff --git a/src/verifykeydetailbox.cpp b/src/verifykeydetailbox.cpp
new file mode 100644
index 00000000..b040d4f9
--- /dev/null
+++ b/src/verifykeydetailbox.cpp
@@ -0,0 +1,99 @@
+/*
+ * verifydetailbox.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "verifykeydetailbox.h"
+
+VerifyKeyDetailBox::VerifyKeyDetailBox(QWidget *parent, GpgME::GpgContext* ctx, KeyList* keyList, gpgme_signature_t signature) :
+ QGroupBox(parent)
+{
+ this->mCtx = ctx;
+ this->mKeyList = keyList;
+ this->fpr=signature->fpr;
+
+ QGridLayout *grid = new QGridLayout();
+
+ switch (gpg_err_code(signature->status))
+ {
+ case GPG_ERR_NO_PUBKEY:
+ {
+ QPushButton *importButton = new QPushButton(tr("Import from keyserver"));
+ connect(importButton, SIGNAL(clicked()), this, SLOT(slotImportFormKeyserver()));
+
+ this->setTitle(tr("Key not present with id 0x") + signature->fpr);
+
+ grid->addWidget(new QLabel(tr("Status:")), 0, 0);
+ //grid->addWidget(new QLabel(tr("Fingerprint:")), 1, 0);
+ grid->addWidget(new QLabel(tr("Key not present in keylist")), 0, 1);
+ //grid->addWidget(new QLabel(signature->fpr), 1, 1);
+ grid->addWidget(importButton, 2,0,2,1);
+ break;
+ }
+ case GPG_ERR_NO_ERROR:
+ {
+ GpgKey key = mCtx->getKeyByFpr(signature->fpr);
+
+ this->setTitle(key.name);
+ grid->addWidget(new QLabel(tr("Name:")), 0, 0);
+ grid->addWidget(new QLabel(tr("EMail:")), 1, 0);
+ grid->addWidget(new QLabel(tr("Fingerprint:")), 2, 0);
+ grid->addWidget(new QLabel(tr("Status:")), 3, 0);
+
+ grid->addWidget(new QLabel(key.name), 0, 1);
+ grid->addWidget(new QLabel(key.email), 1, 1);
+ grid->addWidget(new QLabel(beautifyFingerprint(signature->fpr)), 2, 1);
+ grid->addWidget(new QLabel(tr("OK")), 3, 1);
+
+ break;
+ }
+ default:
+ {
+ GpgKey key = mCtx->getKeyById(signature->fpr);
+ this->setTitle(tr("Error for key with id 0x") + fpr);
+ grid->addWidget(new QLabel(tr("Name:")), 0, 0);
+ grid->addWidget(new QLabel(tr("EMail:")), 1, 0);
+ grid->addWidget(new QLabel(tr("Status:")), 2, 0);
+ grid->addWidget(new QLabel(tr("Fingerprint:")), 3, 0);
+
+ grid->addWidget(new QLabel(key.name), 0, 1);
+ grid->addWidget(new QLabel(key.email), 1, 1);
+ grid->addWidget(new QLabel(gpg_strerror(signature->status)), 2, 1);
+ grid->addWidget(new QLabel(beautifyFingerprint(key.fpr)), 3, 1);
+
+ break;
+ }
+ }
+ this->setLayout(grid);
+}
+
+void VerifyKeyDetailBox::slotImportFormKeyserver()
+{
+ KeyServerImportDialog *importDialog =new KeyServerImportDialog(mCtx,mKeyList,this);
+ importDialog->slotImport(QStringList(fpr));
+}
+
+QString VerifyKeyDetailBox::beautifyFingerprint(QString fingerprint)
+{
+ uint len = fingerprint.length();
+ if ((len > 0) && (len % 4 == 0))
+ for (uint n = 0; 4 *(n + 1) < len; ++n)
+ fingerprint.insert(5 * n + 4, ' ');
+ return fingerprint;
+}
diff --git a/src/verifynotification.cpp b/src/verifynotification.cpp
new file mode 100644
index 00000000..6e739610
--- /dev/null
+++ b/src/verifynotification.cpp
@@ -0,0 +1,185 @@
+/*
+ * verifynotification.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "verifynotification.h"
+
+VerifyNotification::VerifyNotification(QWidget *parent, GpgME::GpgContext *ctx, KeyList *keyList,QTextEdit *edit) :
+ QWidget(parent)
+{
+ mCtx = ctx;
+ mKeyList = keyList;
+ mTextpage = edit;
+ verifyLabel = new QLabel(this);
+
+ connect(mCtx, SIGNAL(keyDBChanged()), this, SLOT(slotRefresh()));
+ connect(edit, SIGNAL(textChanged()), this, SLOT(close()));
+
+ importFromKeyserverAct = new QAction(tr("Import missing key from Keyserver"), this);
+ connect(importFromKeyserverAct, SIGNAL(triggered()), this, SLOT(slotImportFromKeyserver()));
+
+ showVerifyDetailsAct = new QAction(tr("Show detailed verify information"), this);
+ connect(showVerifyDetailsAct, SIGNAL(triggered()), this, SLOT(slotShowVerifyDetails()));
+
+ detailMenu = new QMenu(this);
+ detailMenu->addAction(showVerifyDetailsAct);
+ detailMenu->addAction(importFromKeyserverAct);
+ importFromKeyserverAct->setVisible(false);
+
+ keysNotInList = new QStringList();
+ detailsButton = new QPushButton(tr("Details"),this);
+ detailsButton->setMenu(detailMenu);
+ QHBoxLayout *notificationWidgetLayout = new QHBoxLayout(this);
+ notificationWidgetLayout->setContentsMargins(10,0,0,0);
+ notificationWidgetLayout->addWidget(verifyLabel,2);
+ notificationWidgetLayout->addWidget(detailsButton);
+ this->setLayout(notificationWidgetLayout);
+}
+
+void VerifyNotification::slotImportFromKeyserver()
+{
+ KeyServerImportDialog *importDialog =new KeyServerImportDialog(mCtx,mKeyList, this);
+ importDialog->slotImport(*keysNotInList);
+}
+
+void VerifyNotification::setVerifyLabel(QString text, verify_label_status verifyLabelStatus)
+{
+ QString color;
+ verifyLabel->setText(text);
+ switch (verifyLabelStatus) {
+ case VERIFY_ERROR_OK: color="#ccffcc";
+ break;
+ case VERIFY_ERROR_WARN: color="#ececba";
+ break;
+ case VERIFY_ERROR_CRITICAL: color="#ff8080";
+ break;
+ default:
+ break;
+ }
+
+ verifyLabel->setAutoFillBackground(true);
+ QPalette status = verifyLabel->palette();
+ status.setColor(QPalette::Background, color);
+ verifyLabel->setPalette(status);
+}
+
+void VerifyNotification::showImportAction(bool visible)
+{
+ importFromKeyserverAct->setVisible(visible);
+}
+
+void VerifyNotification::slotShowVerifyDetails()
+{
+ QByteArray text = mTextpage->toPlainText().toUtf8();
+ mCtx->preventNoDataErr(&text);
+ new VerifyDetailsDialog(this, mCtx, mKeyList, &text);
+}
+
+bool VerifyNotification::slotRefresh()
+{
+ verify_label_status verifyStatus=VERIFY_ERROR_OK;
+
+ QByteArray text = mTextpage->toPlainText().toUtf8();
+ mCtx->preventNoDataErr(&text);
+ int textIsSigned = mCtx->textIsSigned(text);
+
+ gpgme_signature_t sign = mCtx->verify(&text);
+
+ if (sign == NULL) {
+ return false;
+ }
+
+ QString verifyLabelText;
+ bool unknownKeyFound=false;
+
+ while (sign) {
+
+ switch (gpg_err_code(sign->status))
+ {
+ case GPG_ERR_NO_PUBKEY:
+ {
+ verifyStatus=VERIFY_ERROR_WARN;
+ verifyLabelText.append(tr("Key not present with id 0x")+QString(sign->fpr));
+ this->keysNotInList->append(sign->fpr);
+ unknownKeyFound=true;
+ break;
+ }
+ case GPG_ERR_NO_ERROR:
+ {
+ GpgKey key = mCtx->getKeyByFpr(sign->fpr);
+ verifyLabelText.append(key.name);
+ if (!key.email.isEmpty()) {
+ verifyLabelText.append("<"+key.email+">");
+ }
+ break;
+ }
+ case GPG_ERR_BAD_SIGNATURE:
+ {
+ textIsSigned = 3;
+ verifyStatus=VERIFY_ERROR_CRITICAL;
+ GpgKey key = mCtx->getKeyById(sign->fpr);
+ verifyLabelText.append(key.name);
+ if (!key.email.isEmpty()) {
+ verifyLabelText.append("<"+key.email+">");
+ }
+ break;
+ }
+ default:
+ {
+ //textIsSigned = 3;
+ verifyStatus=VERIFY_ERROR_WARN;
+ //GpgKey key = mKeyList->getKeyByFpr(sign->fpr);
+ verifyLabelText.append(tr("Error for key with fingerprint ")+mCtx->beautifyFingerprint(QString(sign->fpr)));
+ break;
+ }
+ }
+ verifyLabelText.append("\n");
+ sign = sign->next;
+ }
+
+ switch (textIsSigned)
+ {
+ case 3:
+ {
+ verifyLabelText.prepend(tr("Error validating signature by: "));
+ break;
+ }
+ case 2:
+ {
+ verifyLabelText.prepend(tr("Text was completely signed by: "));
+ break;
+ }
+ case 1:
+ {
+ verifyLabelText.prepend(tr("Text was partially signed by: "));
+ break;
+ }
+ }
+
+ // If an unknown key is found, enable the importfromkeyserveraction
+ this->showImportAction(unknownKeyFound);
+
+ // Remove the last linebreak
+ verifyLabelText.remove(verifyLabelText.length()-1,1);
+
+ this->setVerifyLabel(verifyLabelText,verifyStatus);
+
+ return true;
+}
diff --git a/src/wizard.cpp b/src/wizard.cpp
new file mode 100644
index 00000000..82e8235e
--- /dev/null
+++ b/src/wizard.cpp
@@ -0,0 +1,431 @@
+/* * wizard.cpp
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include <QtGui>
+
+#include "wizard.h"
+
+#ifdef Q_OS_WIN
+#include "windows.h"
+#endif
+
+Wizard::Wizard(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent)
+ : QWizard(parent)
+{
+ mCtx=ctx;
+ mKeyMgmt=keyMgmt;
+
+ setPage(Page_Intro,new IntroPage(this));
+ setPage(Page_Choose, new ChoosePage(this));
+ setPage(Page_ImportFromGpg4usb,new ImportFromGpg4usbPage(mCtx, mKeyMgmt, this));
+ setPage(Page_ImportFromGnupg,new ImportFromGnupgPage(mCtx, mKeyMgmt, this));
+ setPage(Page_GenKey,new KeyGenPage(mCtx, this));
+ setPage(Page_Conclusion,new ConclusionPage(this));
+#ifndef Q_WS_MAC
+ setWizardStyle(ModernStyle);
+#endif
+ setWindowTitle(tr("First Start Wizard"));
+
+ // http://www.flickr.com/photos/laureenp/6141822934/
+ setPixmap(QWizard::WatermarkPixmap, QPixmap(":/keys2.jpg"));
+ setPixmap(QWizard::LogoPixmap, QPixmap(":/logo_small.png"));
+ setPixmap(QWizard::BannerPixmap, QPixmap(":/banner.png"));
+
+ QSettings settings;
+ setStartId(settings.value("wizard/nextPage", -1).toInt());
+ settings.remove("wizard/nextPage");
+
+ connect(this, SIGNAL(accepted()), this, SLOT(slotWizardAccepted()));
+ connect(this, SIGNAL(signalOpenHelp(QString)), parentWidget(), SLOT(signalOpenHelp(QString)));
+
+}
+
+void Wizard::slotWizardAccepted() {
+ QSettings settings;
+ // Don't show is mapped to show -> negation
+ settings.setValue("wizard/showWizard", !field("showWizard").toBool());
+
+ if(field("openHelp").toBool()) {
+ emit signalOpenHelp("docu.html#content");
+ }
+}
+
+bool Wizard::importPubAndSecKeysFromDir(const QString dir, KeyMgmt *keyMgmt)
+{
+ QFile secRingFile(dir+"/secring.gpg");
+ QFile pubRingFile(dir+"/pubring.gpg");
+
+ // Return, if no keyrings are found in subdir of chosen dir
+ if (!(pubRingFile.exists() or secRingFile.exists())) {
+ QMessageBox::critical(0, tr("Import Error"), tr("Couldn't locate any keyring file in %1").arg(dir));
+ return false;
+ }
+
+ QByteArray inBuffer;
+ if (secRingFile.exists()) {
+ // write content of secringfile to inBuffer
+ if (!secRingFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0, tr("Import error"), tr("Couldn't open private keyringfile: %1").arg(secRingFile.fileName()));
+ return false;
+ }
+ inBuffer = secRingFile.readAll();
+ secRingFile.close();
+ }
+
+ if (pubRingFile.exists()) {
+ // try to import public keys
+ if (!pubRingFile.open(QIODevice::ReadOnly)) {
+ QMessageBox::critical(0, tr("Import error"), tr("Couldn't open public keyringfile: %1").arg(pubRingFile.fileName()));
+ return false;
+ }
+ inBuffer.append(pubRingFile.readAll());
+ pubRingFile.close();
+ }
+ keyMgmt->slotImportKeys(inBuffer);
+ inBuffer.clear();
+
+ return true;
+}
+
+IntroPage::IntroPage(QWidget *parent)
+ : QWizardPage(parent)
+{
+ setTitle(tr("Getting started..."));
+ setSubTitle(tr("... with gpg4usb"));
+
+ QLabel *topLabel = new QLabel(tr("To use gpg4usb for decrypting and signing messages, you need a "
+ "private key. The next page will help you with "
+ "key generation or import.<br><br>"
+ "For more information have a look at the <a href='docu_concepts.html'>concepts</a> "
+ "(by clicking the link, the page will open in the main window). <br>"));
+ topLabel->setWordWrap(true);
+ connect(topLabel, SIGNAL(linkActivated(const QString&)), parentWidget()->parentWidget(), SLOT(openHelp(const QString&)));
+
+ // QComboBox for language selection
+ QLabel *langLabel = new QLabel(tr("Choose a Language"));
+ langLabel->setWordWrap(true);
+
+ languages = SettingsDialog::listLanguages();
+ QComboBox *langSelectBox = new QComboBox();
+
+ foreach(QString l, languages) {
+ langSelectBox->addItem(l);
+ }
+ // selected entry from config
+ QSettings settings;
+ QString langKey = settings.value("int/lang").toString();
+ QString langValue = languages.value(langKey);
+ if (langKey != "") {
+ langSelectBox->setCurrentIndex(langSelectBox->findText(langValue));
+ }
+
+ connect(langSelectBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotLangChange(QString)));
+
+ // set layout and add widgets
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(topLabel);
+ layout->addWidget(langLabel);
+ layout->addWidget(langSelectBox);
+ setLayout(layout);
+}
+
+void IntroPage::slotLangChange(QString lang) {
+ QSettings settings;
+ settings.setValue("int/lang", languages.key(lang));
+ settings.setValue("wizard/nextPage", this->wizard()->currentId());
+ qApp->exit(RESTART_CODE);
+}
+
+int IntroPage::nextId() const
+{
+ return Wizard::Page_Choose;
+}
+ChoosePage::ChoosePage(QWidget *parent)
+ : QWizardPage(parent)
+{
+ setTitle(tr("Choose your action..."));
+ setSubTitle(tr("...by clicking on the apropriate link."));
+
+ QLabel *keygenLabel = new QLabel(tr("If you have never used gpg4usb before and also don't own a gpg key yet you "
+ "may possibly want to ")+"<a href=""Wizard::Page_GenKey"">"
+ +tr("create a new keypair")+"</a><hr>");
+ keygenLabel->setWordWrap(true);
+ connect(keygenLabel, SIGNAL(linkActivated(const QString&)), this, SLOT(slotJumpPage(const QString&)));
+
+ QLabel *importGpg4usbLabel = new QLabel(tr("If you upgrade from an older version of gpg4usb you may want to ")
+ +"<a href=""Wizard::Page_ImportFromGpg4usb"">"
+ +tr("import settings and/or keys from gpg4usb")+"</a>");
+ importGpg4usbLabel->setWordWrap(true);
+ connect(importGpg4usbLabel, SIGNAL(linkActivated(const QString&)), this, SLOT(slotJumpPage(const QString&)));
+
+ QLabel *importGnupgLabel = new QLabel(tr("If you are already using GnuPG you may want to ")
+ +"<a href=""Wizard::Page_ImportFromGnupg"">"
+ +tr("import keys from GnuPG")+"</a><hr>");
+ importGnupgLabel->setWordWrap(true);
+ connect(importGnupgLabel, SIGNAL(linkActivated(const QString&)), this, SLOT(slotJumpPage(const QString&)));
+
+ QVBoxLayout *layout = new QVBoxLayout();
+ layout->addWidget(keygenLabel);
+ layout->addWidget(importGnupgLabel);
+ layout->addWidget(importGpg4usbLabel);
+ setLayout(layout);
+ nextPage=Wizard::Page_Conclusion;
+}
+
+int ChoosePage::nextId() const
+{
+ return nextPage;
+}
+
+void ChoosePage::slotJumpPage(const QString& page)
+{
+ QMetaObject qmo = Wizard::staticMetaObject;
+ int index = qmo.indexOfEnumerator("WizardPages");
+ QMetaEnum m = qmo.enumerator(index);
+
+ nextPage = m.keyToValue(page.toUtf8().data());
+ wizard()->next();
+}
+
+ImportFromGpg4usbPage::ImportFromGpg4usbPage(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent)
+ : QWizardPage(parent)
+{
+ mCtx=ctx;
+ mKeyMgmt=keyMgmt;
+ setTitle(tr("Import from..."));
+ setSubTitle(tr("...existing gpg4usb"));
+
+ QLabel *topLabel = new QLabel(tr("You can import keys and/or settings from existing gpg4usb. <br><br>"
+ "Just check what you want to import, click the import button and choose "
+ "the directory of your other gpg4usb in the appearing file dialog."), this);
+ topLabel->setWordWrap(true);
+
+ gpg4usbKeyCheckBox = new QCheckBox();
+ gpg4usbKeyCheckBox->setChecked(true);
+ QLabel *keyLabel = new QLabel(tr("Keys"));
+
+ gpg4usbConfigCheckBox = new QCheckBox();
+ gpg4usbConfigCheckBox->setChecked(true);
+ QLabel *configLabel = new QLabel(tr("Configuration"));
+
+ QPushButton *importFromGpg4usbButton = new QPushButton(tr("Import from gpg4usb"));
+ connect(importFromGpg4usbButton, SIGNAL(clicked()), this, SLOT(slotImportFromOlderGpg4usb()));
+
+ QGridLayout *gpg4usbLayout = new QGridLayout();
+ gpg4usbLayout->addWidget(topLabel,1,1,1,2);
+ gpg4usbLayout->addWidget(gpg4usbKeyCheckBox,2,1,Qt::AlignRight);
+ gpg4usbLayout->addWidget(keyLabel,2,2);
+ gpg4usbLayout->addWidget(gpg4usbConfigCheckBox,3,1,Qt::AlignRight);
+ gpg4usbLayout->addWidget(configLabel,3,2);
+ gpg4usbLayout->addWidget(importFromGpg4usbButton,4,2);
+
+ this->setLayout(gpg4usbLayout);
+}
+
+void ImportFromGpg4usbPage::slotImportFromOlderGpg4usb()
+{
+ QString dir = QFileDialog::getExistingDirectory(this,tr("Other gpg4usb directory"));
+
+ // Return, if cancel was hit
+ if (dir.isEmpty()) {
+ return;
+ }
+
+ // try to import keys, if appropriate box is checked, return, if import was unsuccessful
+ if (gpg4usbKeyCheckBox->isChecked()) {
+ if (!Wizard::importPubAndSecKeysFromDir(dir+"/keydb",mKeyMgmt)) {
+ return;
+ }
+ }
+
+ // try to import config, if appropriate box is checked
+ if (gpg4usbConfigCheckBox->isChecked()) {
+ slotImportConfFromGpg4usb(dir);
+
+ QSettings settings;
+ settings.setValue("wizard/nextPage", this->nextId());
+ QMessageBox::information(0,tr("Configuration Imported"),tr("Imported Configuration from old gpg4usb.<br>"
+ "Will now restart to activate the configuration."));
+ // TODO: edit->maybesave?
+ qApp->exit(RESTART_CODE);
+ }
+ wizard()->next();
+}
+
+bool ImportFromGpg4usbPage::slotImportConfFromGpg4usb(QString dir) {
+ QString path = dir+"/conf/gpg4usb.ini";
+ QSettings oldconf(path, QSettings::IniFormat, this);
+ QSettings actualConf;
+ foreach(QString key, oldconf.allKeys()) {
+ actualConf.setValue(key, oldconf.value(key));
+ }
+ return true;
+}
+
+int ImportFromGpg4usbPage::nextId() const
+{
+ return Wizard::Page_Conclusion;
+}
+
+ImportFromGnupgPage::ImportFromGnupgPage(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent)
+ : QWizardPage(parent)
+{
+ mCtx=ctx;
+ mKeyMgmt=keyMgmt;
+ setTitle(tr("Import keys..."));
+ setSubTitle(tr("...from existing GnuPG installation"));
+
+ QLabel *gnupgLabel = new QLabel(tr("You can import keys from a locally installed GnuPG.<br><br> The location is read "
+ "from registry in Windows or assumed to be the .gnupg folder in the your home directory in Linux.<br>"));
+ gnupgLabel->setWordWrap(true);
+
+ importFromGnupgButton = new QPushButton(tr("Import keys from GnuPG"));
+ connect(importFromGnupgButton, SIGNAL(clicked()), this, SLOT(slotrImportKeysFromGnupg()));
+
+ QGridLayout *layout = new QGridLayout();
+ layout->addWidget(gnupgLabel);
+ layout->addWidget(importFromGnupgButton);
+
+ this->setLayout(layout);
+}
+
+void ImportFromGnupgPage::slotrImportKeysFromGnupg()
+{
+ // first get gnupghomedir and check, if it exists
+ QString gnuPGHome = getGnuPGHome();
+ if (gnuPGHome == NULL) {
+ QMessageBox::critical(0, tr("Import Error"), tr("Couldn't locate GnuPG home directory"));
+ return;
+ }
+
+ // Try to import the keyring files and return the return value of the method
+ Wizard::importPubAndSecKeysFromDir(gnuPGHome,mKeyMgmt);
+ wizard()->next();
+}
+
+QString ImportFromGnupgPage::getGnuPGHome()
+{
+ QString gnuPGHome="";
+ #ifdef _WIN32
+ bool existsAndSuccess = false;
+
+ HKEY hKey;
+
+ existsAndSuccess = (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\GNU\\GNUPG", 0, KEY_READ, &hKey) == ERROR_SUCCESS);
+
+ if (existsAndSuccess) {
+ QSettings gnuPGsettings("HKEY_CURRENT_USER\\Software\\GNU\\GNUPG", QSettings::NativeFormat);
+ if (gnuPGsettings.contains("HomeDir")) {
+ gnuPGHome = gnuPGsettings.value("HomeDir").toString();
+ } else {
+ return NULL;
+ }
+ }
+ #else
+ gnuPGHome=QDir::homePath()+"/.gnupg";
+ if (! QFile(gnuPGHome).exists()) {
+ return NULL;
+ }
+ #endif
+
+ return gnuPGHome;
+}
+
+int ImportFromGnupgPage::nextId() const
+{
+ return Wizard::Page_Conclusion;
+}
+
+KeyGenPage::KeyGenPage(GpgME::GpgContext *ctx, QWidget *parent)
+ : QWizardPage(parent)
+{
+ mCtx=ctx;
+ setTitle(tr("Create a keypair..."));
+ setSubTitle(tr("...for decrypting and signing messages"));
+ QLabel *topLabel = new QLabel(tr("You should create a new keypair."
+ "The pair consists of a public and a private key.<br>"
+ "Other users can use the public key to encrypt messages for you "
+ "and verify messages signed by you."
+ "You can use the private key to decrypt and sign messages.<br>"
+ "For more information have a look at the offline tutorial (which then is shown in the main window):"));
+ topLabel->setWordWrap(true);
+ QLabel *linkLabel = new QLabel("<a href=""docu_keygen.html#content"">"+tr("Offline tutorial")+"</a>");
+ //linkLabel->setOpenExternalLinks(true);
+
+ connect(linkLabel, SIGNAL(linkActivated(const QString&)), parentWidget()->parentWidget(), SLOT(openHelp(const QString&)));
+
+ QWidget *createKeyButtonBox = new QWidget(this);
+ QHBoxLayout *createKeyButtonBoxLayout = new QHBoxLayout(createKeyButtonBox);
+ QPushButton *createKeyButton = new QPushButton(tr("Create New Key"));
+ createKeyButtonBoxLayout->addWidget(createKeyButton);
+ createKeyButtonBoxLayout->addStretch(1);
+ QVBoxLayout *layout = new QVBoxLayout();
+ layout->addWidget(topLabel);
+ layout->addWidget(linkLabel);
+ layout->addWidget(createKeyButtonBox);
+ connect(createKeyButton, SIGNAL(clicked()), this, SLOT(slotGenerateKeyDialog()));
+
+ setLayout(layout);
+}
+
+int KeyGenPage::nextId() const
+{
+ return Wizard::Page_Conclusion;
+}
+
+void KeyGenPage::slotGenerateKeyDialog()
+{
+ KeyGenDialog *keyGenDialog = new KeyGenDialog(mCtx, this);
+ keyGenDialog->exec();
+ wizard()->next();
+}
+
+ConclusionPage::ConclusionPage(QWidget *parent)
+ : QWizardPage(parent)
+{
+ setTitle(tr("Ready."));
+ setSubTitle(tr("Have fun with gpg4usb!"));
+
+ QLabel *bottomLabel = new QLabel(tr("You are ready to use gpg4usb now.<br><br>"
+ "The offline help will get you started with gpg4usb. "
+ "It will open in the main window.<br>"));
+ bottomLabel->setWordWrap(true);
+
+ openHelpCheckBox = new QCheckBox(tr("Open offline help."));
+ openHelpCheckBox->setChecked(Qt::Checked);
+
+ dontShowWizardCheckBox = new QCheckBox(tr("Dont show the wizard again."));
+ dontShowWizardCheckBox->setChecked(Qt::Checked);
+
+ registerField("showWizard", dontShowWizardCheckBox);
+ registerField("openHelp", openHelpCheckBox);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(bottomLabel);
+ layout->addWidget(openHelpCheckBox);
+ layout->addWidget(dontShowWizardCheckBox);
+ setLayout(layout);
+ setVisible(true);
+}
+
+int ConclusionPage::nextId() const
+{
+ return -1;
+}
diff --git a/test/bin b/test/bin
new file mode 120000
index 00000000..40d9fed4
--- /dev/null
+++ b/test/bin
@@ -0,0 +1 @@
+../release/bin/ \ No newline at end of file
diff --git a/test/runtest.sh b/test/runtest.sh
new file mode 100755
index 00000000..56a01833
--- /dev/null
+++ b/test/runtest.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+rm keydb/*
+rmdir keydb
+mkdir keydb
+
+#make clean
+#qmake
+make
+
+./test
diff --git a/test/test.pro b/test/test.pro
new file mode 100644
index 00000000..ff2aef3d
--- /dev/null
+++ b/test/test.pro
@@ -0,0 +1,21 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Sa. Dez 10 12:52:21 2011
+######################################################################
+
+CONFIG += qtestlib
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+#DESTDIR = ../release
+
+# Input
+SOURCES += testgpgcontext.cpp \
+ ../gpgcontext.cpp \
+ ../gpgconstants.cpp
+HEADERS += ../gpgcontext.h \
+ ../gpgconstants.h
+
+LIBS += -lgpgme \
+ -lgpg-error \
+
diff --git a/test/testgpgcontext.cpp b/test/testgpgcontext.cpp
new file mode 100644
index 00000000..4435bff1
--- /dev/null
+++ b/test/testgpgcontext.cpp
@@ -0,0 +1,62 @@
+#include <QObject>
+#include <QtTest/QtTest>
+#include <../gpgcontext.h>
+
+/**
+* unit test for gpgcontext,
+* have a look at http://doc.qt.nokia.com/latest/qtestlib-tutorial1.html
+*/
+class TestGpgContext : public QObject
+{
+ Q_OBJECT
+
+public:
+ TestGpgContext();
+
+private:
+ GpgME::GpgContext* mCtx;
+
+private slots:
+ void passwordSize();
+
+};
+
+TestGpgContext::TestGpgContext() {
+ mCtx = new GpgME::GpgContext();
+}
+
+void TestGpgContext::passwordSize() {
+
+ QVERIFY(mCtx->listKeys().size() == 0);
+
+ qDebug() << "import:";
+ QFile* file = new QFile("../testdata/seckey-1.asc");
+ file->open(QIODevice::ReadOnly);
+ mCtx->importKey(file->readAll());
+
+ qDebug() << "list:";
+ foreach(GpgKey key, mCtx->listKeys()) {
+ qDebug() << key.id;
+ }
+
+ QVERIFY(mCtx->listKeys().size() == 1);
+
+ QString password = "abcabc";
+ QString params = "<GnupgKeyParms format=\"internal\">\n"
+ "Key-Type: DSA\n"
+ "Key-Length: 1024\n"
+ "Subkey-Type: ELG-E\n"
+ "Subkey-Length: 1024\n"
+ "Name-Real: testa\n"
+ "Expire-Date: 0\n";
+ "Passphrase: " + password + "\n"
+ "</GnupgKeyParms>";
+
+ /*qDebug() << "gen:";
+ mCtx->generateKey(&params);
+ QVERIFY(mCtx->listKeys().size() == 1);
+ qDebug() << "done.";*/
+}
+
+QTEST_MAIN(TestGpgContext)
+#include "testgpgcontext.moc"
diff --git a/test/todo.txt b/test/todo.txt
new file mode 100644
index 00000000..ee006991
--- /dev/null
+++ b/test/todo.txt
@@ -0,0 +1,4 @@
+gpgcontext.cpp:
+- generateKey() should have parameters, not just a string
+- constructor should have app path as param (or path to gpg binary)
+ -- path for keydb should be configurable separatly, for using empty db for testing