diff options
author | Saturn&Eric <[email protected]> | 2024-01-30 05:38:51 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2024-01-30 05:38:51 +0000 |
commit | 60b8aafec9b59da71ae5c36708f5533870c2f499 (patch) | |
tree | 2118b1847c356a5b0a53a13785f1b4f932fefa9f | |
parent | Merge pull request #126 from saturneric/dev/2.1.1/main (diff) | |
parent | doc: update translations (diff) | |
download | GpgFrontend-60b8aafec9b59da71ae5c36708f5533870c2f499.tar.gz GpgFrontend-60b8aafec9b59da71ae5c36708f5533870c2f499.zip |
Merge pull request #127 from saturneric/dev/2.1.1/main
Develop 2.1.2.2
78 files changed, 6333 insertions, 4284 deletions
diff --git a/.gitmodules b/.gitmodules index e05878f7..3e9b725c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,9 @@ [submodule "third_party/googletest"] path = third_party/googletest url = https://github.com/google/googletest.git +[submodule "third_party/libarchive"] + path = third_party/libarchive + url = https://github.com/libarchive/libarchive.git +[submodule "third_party/qttranslations"] + path = third_party/qttranslations + url = git://code.qt.io/qt/qttranslations.git diff --git a/TRANSLATORS b/TRANSLATORS index ea755dbb..d6295384 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -1,12 +1,11 @@ Translators: -Fabian Hêche <[email protected]> (fr_FR) -huzpsb <[email protected]> (zh_CN) +Fabian Hêche (fr_FR) +huzpsb (zh_CN) Zi Jiaxu (zh_CN) -Oliver Leitner <[email protected]> (de_DE) -James <[email protected]> (zh_TW) -Mathias Leinmüller <[email protected]> (de_DE) -Scirè Salvatore <[email protected]> (it_IT) +Oliver Leitner (de_DE) +James (zh_TW) +Scirè Salvatore (it_IT) Google Translation Machine Reviewers: -Saturneric <[email protected]> (zh_CN, de_DE) +Saturneric (zh_CN, de_DE) diff --git a/gpgfrontend.qrc b/gpgfrontend.qrc index 9e0b754b..a5b5e24e 100644 --- a/gpgfrontend.qrc +++ b/gpgfrontend.qrc @@ -63,7 +63,7 @@ <file alias="ssh-key.png">resource/lfs/icons/ssh-key.png</file> <file alias="statusbar_icon.png">resource/lfs/icons/statusbar_icon.png</file> <file alias="trash.png">resource/lfs/icons/trash.png</file> - <file alias="txt.png">resource/lfs/icons/txt.png</file> + <file alias="editor.png">resource/lfs/icons/editor.png</file> <file alias="undo.png">resource/lfs/icons/undo.png</file> <file alias="verify.png">resource/lfs/icons/verify.png</file> <file alias="export_key_to_clipboard.png">resource/lfs/icons/export_key_to_clipboard.png</file> @@ -86,6 +86,8 @@ <file alias="clear.png">resource/lfs/icons/clear.png</file> <file alias="cloud_sync.png">resource/lfs/icons/cloud_sync.png</file> <file alias="total_selection.png">resource/lfs/icons/total_selection.png</file> + <file alias="search.png">resource/lfs/icons/search.png</file> + <file alias="close.png">resource/lfs/icons/close.png</file> </qresource> <qresource prefix="/test/key"> <file alias="pv1.key">resource/lfs/test/data/pv1.key</file> diff --git a/resource/lfs/icons/close.png b/resource/lfs/icons/close.png Binary files differnew file mode 100644 index 00000000..9136e287 --- /dev/null +++ b/resource/lfs/icons/close.png diff --git a/resource/lfs/icons/editor.png b/resource/lfs/icons/editor.png Binary files differnew file mode 100644 index 00000000..fb1e5480 --- /dev/null +++ b/resource/lfs/icons/editor.png diff --git a/resource/lfs/icons/search.png b/resource/lfs/icons/search.png Binary files differnew file mode 100644 index 00000000..6d845d7b --- /dev/null +++ b/resource/lfs/icons/search.png diff --git a/resource/lfs/icons/txt.png b/resource/lfs/icons/txt.png Binary files differdeleted file mode 100644 index 8db7ba45..00000000 --- a/resource/lfs/icons/txt.png +++ /dev/null diff --git a/resource/lfs/locale/ts/GpgFrontend.de_DE.ts b/resource/lfs/locale/ts/GpgFrontend.de_DE.ts index 35db1855..e6e52b5c 100644 --- a/resource/lfs/locale/ts/GpgFrontend.de_DE.ts +++ b/resource/lfs/locale/ts/GpgFrontend.de_DE.ts @@ -11,22 +11,26 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="44"/> <source>Success</source> - <translation type="unfinished">Erfolg</translation> + <translation type="unfinished">erfolgreich</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="46"/> <source>Failed</source> - <translation type="unfinished">Gescheitert</translation> + <translation type="unfinished">fehlgeschlagen</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="51"/> <source>Unsupported Algo</source> - <translation type="unfinished">Nicht unterstützter Algo</translation> + <translation type="unfinished">Nicht unterstützter Algorithmus</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> <source>Gernal State</source> - <translation type="unfinished"></translation> + <translation type="vanished">Allgemeiner Zustand</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> + <source>General State</source> + <translation type="unfinished">Allgemeiner Zustand</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="62"/> @@ -55,22 +59,22 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="68"/> <source>Message Integrity Protection</source> - <translation type="unfinished"></translation> + <translation>Nachrichtenintegritätsschutz</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="74"/> <source>Symmetric Encryption Algorithm</source> - <translation type="unfinished"></translation> + <translation>Symmetrischer Verschlüsselungsalgorithmus</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="79"/> <source>Session Key</source> - <translation type="unfinished"></translation> + <translation>Session Key</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="83"/> <source>German Encryption Standards</source> - <translation type="unfinished"></translation> + <translation>Allgemeine Verschlüsselungsstandards</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="91"/> @@ -128,7 +132,7 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="63"/> <source>Recipients</source> - <translation type="unfinished"></translation> + <translation>Empfänger</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="65"/> @@ -184,50 +188,85 @@ <translation type="unfinished">Abgetrennte</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="76"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="79"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="111"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="77"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <source>Signed By</source> + <translation type="unfinished">Unterzeichnet von</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="91"/> + <source>Key ID</source> + <translation type="unfinished">Schlüssel-ID</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="89"/> + <source>Subkey</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="92"/> + <source>Primary Key</source> + <translation type="unfinished">Primärschlüssel</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="94"/> + <source>Key Create Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="99"/> + <source><unknown></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> + <source>Sign Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="130"/> <source>Signer</source> <translation type="unfinished">Unterzeichner</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="82"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="101"/> <source>Public Key Algo</source> <translation type="unfinished">Algo für öffentliche Schlüssel</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="84"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="103"/> <source>Hash Algo</source> <translation type="unfinished">Hash Algo</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> <source>Date</source> - <translation type="unfinished">Datum</translation> + <translation type="obsolete">Datum</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> <source>UTC</source> <translation type="unfinished">koordinierte Weltzeit</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> <source>Localized</source> - <translation type="unfinished"></translation> + <translation>lokalisiert</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="124"/> <source>Invalid Signers</source> <translation type="unfinished">Ungültige Unterzeichner</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="113"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="132"/> <source>Fingerprint</source> <translation type="unfinished">Fingerabdruck</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="115"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="134"/> <source>Reason</source> <translation type="unfinished">Grund</translation> </message> @@ -235,119 +274,171 @@ <context> <name>GpgFrontend::GpgVerifyResultAnalyse</name> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="44"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="43"/> <source>Verify Operation</source> <translation type="unfinished">Überprüfungsvorgang</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="47"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="46"/> <source>Success</source> <translation type="unfinished">Erfolg</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="49"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="48"/> <source>Failed</source> <translation type="unfinished">Gescheitert</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> <source>Signed On</source> <translation type="unfinished">Angemeldet</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> <source>UTC</source> <translation type="unfinished">koordinierte Weltzeit</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> <source>Localized</source> - <translation type="unfinished"></translation> + <translation>lokalisiert</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="65"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="64"/> <source>Signatures List</source> <translation type="unfinished">Unterschriftenliste</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="71"/> <source>Signature [%1]:</source> <translation type="unfinished">Unterschrift [%1]:</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="73"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> <source>Status</source> <translation type="unfinished">Status</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="76"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="75"/> <source>A Bad Signature.</source> <translation type="unfinished">Eine ungültige Signatur.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="78"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="77"/> <source>This Signature is invalid.</source> <translation type="unfinished">Diese Signatur ist ungültig.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="83"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="82"/> <source>A</source> <translation type="unfinished">EIN</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="85"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="84"/> <source>Good</source> <translation type="unfinished">Gut</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="87"/> <source>Bad</source> <translation type="unfinished">Schlecht</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="91"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="90"/> <source>Expired</source> <translation type="unfinished">Abgelaufen</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="94"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="93"/> <source>Missing Key's</source> <translation type="unfinished">Fehlende Schlüssel</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="97"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="96"/> <source>Revoked Key's</source> <translation type="unfinished">Widerrufene Schlüssel</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="100"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="99"/> <source>Expired Key's</source> <translation type="unfinished">Abgelaufene Schlüssel</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="103"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="102"/> <source>Missing CRL's</source> <translation type="unfinished">Fehlende Zertifikatsperrliste</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="107"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="106"/> <source>Signature Fully Valid.</source> <translation type="unfinished">Unterschrift voll gültig.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="108"/> <source>Signature Not Fully Valid.</source> <translation type="unfinished">Unterschrift nicht vollständig gültig.</translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <source>Tips</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="110"/> - <source>(Adjust Trust Level to make it Fully Vaild)</source> + <source>Adjust Trust Level to make it Fully Vaild</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> + <source>Fingerprint</source> + <translation type="unfinished">Fingerabdruck</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="186"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="229"/> + <source><unknown></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> + <source>Sign Date</source> <translation type="unfinished"></translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="217"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="220"/> + <source>Key ID</source> + <translation type="unfinished">Schlüssel-ID</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="218"/> + <source>Subkey</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="221"/> + <source>Primary Key</source> + <translation type="unfinished">Primärschlüssel</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="223"/> + <source>Key Create Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>(Adjust Trust Level to make it Fully Vaild)</source> + <translation type="vanished">(Vertrauensstufe anpassen um diesen vollständig gültig zu kennzeichnen)</translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="117"/> <source>Key is NOT present with ID 0x</source> <translation type="unfinished">Schlüssel ist NICHT vorhanden mit ID 0x</translation> @@ -358,67 +449,67 @@ <translation type="unfinished">Eine Signatur konnte aufgrund eines fehlenden Schlüssels NICHT verifiziert werden</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="131"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="132"/> <source>A signature is valid but the key used to verify the signature has been revoked</source> <translation type="unfinished">Eine Signatur ist gültig, aber der Schlüssel zur Überprüfung der Signatur wurde widerrufen</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="140"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="141"/> <source>A signature is valid but expired</source> <translation type="unfinished">Eine Unterschrift ist gültig, aber abgelaufen</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="147"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="148"/> <source>A signature is valid but the key used to verify the signature has expired.</source> <translation type="unfinished">Eine Signatur ist gültig, aber der zur Überprüfung der Signatur verwendete Schlüssel ist abgelaufen.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="155"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="156"/> <source>There was some other error which prevented the signature verification.</source> <translation type="unfinished">Es gab einen anderen Fehler, der die Signaturprüfung verhinderte.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="163"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="164"/> <source>Error for key with fingerprint</source> <translation type="unfinished">Fehler bei Schlüssel mit Fingerabdruck</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="174"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="175"/> <source>Could not find information that can be used for verification.</source> <translation type="unfinished">Es konnten keine Informationen gefunden werden, die zur Überprüfung verwendet werden können.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="188"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="193"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> <source>Signed By</source> <translation type="unfinished">Unterzeichnet von</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> <source>Unknown</source> - <translation type="unfinished">Unbekannt</translation> + <translation type="obsolete">Unbekannt</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="197"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="234"/> <source>Public Key Algo</source> <translation type="unfinished">Algo für öffentliche Schlüssel</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="201"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="191"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="236"/> <source>Hash Algo</source> <translation type="unfinished">Hash Algo</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> <source>Date</source> - <translation type="unfinished">Datum</translation> + <translation type="obsolete">Datum</translation> </message> </context> <context> <name>GpgFrontend::Module::Integrated::GnuPGInfoGatheringModule::GnuPGInfoGatheringModule</name> <message> - <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="124"/> + <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="123"/> <source>Embedded In</source> <translation type="unfinished">Eingebettet in</translation> </message> @@ -586,138 +677,152 @@ <context> <name>GpgFrontend::UI::CommonUtils</name> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="185"/> <source>GnuPG Context Loading Failed</source> <translation type="unfinished">Laden des GnuPG-Kontexts fehlgeschlagen</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="189"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> <source>Gnupg(gpg) is not installed correctly, please follow <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> in FAQ to install Gnupg and then open GpgFrontend. <br />Or, you can open GnuPG Controller to set a custom GnuPG which GpgFrontend should use. Then, GpgFrontend will restart. <br /><br />Breif Reason: %1</source> - <translation type="unfinished"></translation> + <translation>Gnupg(gpg) ist nicht korrekt installiert, bitte folgen Sie dieser <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>Anleitung</a> (nur in Englisch) in den FAQ, um Gnupg zu installieren und dann GpgFrontend zu öffnen. <br />Alternativ können Sie den GnuPG Controller öffnen und ein benutzerspezifisches GnuPG für die Nutzung mit GpgFrontend auszuwählen. GpgFrontend muss dann neu gestartet werden. <br /><br />Grund %1</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> <source>No keys found to import</source> - <translation type="unfinished">Keine Schlüssel zum Importieren gefunden</translation> + <translation type="obsolete">Keine Schlüssel zum Importieren gefunden</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="437"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="445"/> <source>Timeout</source> <translation type="unfinished">Zeitablauf</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="252"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="250"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="381"/> <source>Success</source> <translation type="unfinished">Erfolg</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="253"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="251"/> <source>Gpg Operation succeed.</source> - <translation type="unfinished"></translation> + <translation>GPG Vorgang abgeschlossen.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="263"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="365"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="261"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> <source>Failure</source> <translation type="unfinished">Fehler</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="264"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="262"/> <source>Gpg Operation failed. Error code: %1 Source: %2 Description: %3</source> - <translation type="unfinished"></translation> + <translation>GPG Vorgang fehlgeschlagen + +Fehlercode: %1 +Quelle: %2 +Beschrei: %3</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="294"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="497"/> <source>Error</source> <translation type="unfinished">Fehler</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="285"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="279"/> <source>Open Key</source> <translation type="unfinished">Schlüssel öffnen</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="286"/> <source>Key Files</source> - <translation type="unfinished">Schlüsseldateien</translation> + <translation type="obsolete">Schlüsseldateien</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="280"/> <source>Keyring files</source> <translation type="unfinished">Schlüsselbunddateien</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="292"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="288"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished">Kann diese Datei nicht öffnen. Bitte stellen Sie sicher, dass es sich um eine reguläre, lesbare Datei handelt.</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="295"/> + <source>The target file is too large for a keyring.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="301"/> <source>File Open Failed</source> <translation type="unfinished">Datei konnte nicht geöffnet werden</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="293"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="302"/> <source>Failed to open file: </source> <translation type="unfinished">Datei konnte nicht geöffnet werden: </translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="346"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="354"/> <source>Processing</source> <translation type="unfinished">In Bearbeitung</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="366"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> <source>Failed to execute command.</source> <translation type="unfinished">Fehler beim Ausführen des Befehls.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="382"/> <source>Succeed in executing command.</source> <translation type="unfinished">Befehl erfolgreich ausgeführt.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="376"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="384"/> <source>Warning</source> <translation type="unfinished">Warnung</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="377"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="385"/> <source>Finished executing command.</source> <translation type="unfinished">Ausführung des Befehls abgeschlossen.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="398"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="406"/> <source>Default Keyserver Not Found</source> <translation type="unfinished">Standard-Keyserver nicht gefunden</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="399"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="407"/> <source>Cannot read default keyserver from your settings, please set a default keyserver first</source> <translation type="unfinished">Der Standard-Keyserver kann nicht aus Ihren Einstellungen gelesen werden, bitte legen Sie zuerst einen Standard-Keyserver fest</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="434"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="442"/> <source>Key Not Found</source> <translation type="unfinished">Schlüssel nicht gefunden</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="440"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="448"/> <source>Key Server Not Found</source> <translation type="unfinished">Schlüsselserver nicht gefunden</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="443"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="451"/> <source>Connection Error</source> <translation type="unfinished">Verbindungsfehler</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="454"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="462"/> <source>The key has been updated</source> <translation type="unfinished">Der Schlüssel wurde aktualisiert</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="456"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="464"/> <source>No need to update the key</source> <translation type="unfinished">Keine Notwendigkeit, den Schlüssel zu aktualisieren</translation> </message> @@ -821,7 +926,7 @@ Description: %3</source> <message> <location filename="../../../../src/ui/dialog/import_export/ExportKeyPackageDialog.cpp" line="107"/> <source>No key is suitable to export.</source> - <translation type="unfinished"></translation> + <translation>Kein Schlüssel für Export geeignet.</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/ExportKeyPackageDialog.cpp" line="112"/> @@ -902,12 +1007,12 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FilePage</name> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="63"/> <source>Show Hidden File</source> <translation type="unfinished">Versteckte Datei anzeigen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="70"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="69"/> <source>Show System File</source> <translation type="unfinished">Systemdatei anzeigen</translation> </message> @@ -915,131 +1020,136 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FileTreeView</name> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="84"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="97"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="219"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="242"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="294"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="90"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="103"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="166"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="212"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="234"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="275"/> <source>Error</source> <translation type="unfinished">Fehler</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="85"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="91"/> <source>The path is not exists, unprivileged or unreachable.</source> <translation type="unfinished">Der Pfad ist nicht vorhanden, nicht privilegiert oder nicht erreichbar.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="98"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="104"/> <source>The file is unprivileged or unreachable.</source> <translation type="unfinished">Die Datei ist nicht privilegiert oder nicht erreichbar.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="157"/> <source>Warning</source> <translation type="unfinished">Warnung</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="159"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> <source>Are you sure you want to delete it?</source> <translation type="unfinished">Möchten Sie es wirklich löschen?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> <source>Unable to delete the file or folder.</source> <translation type="unfinished">Die Datei oder der Ordner kann nicht gelöscht werden.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="176"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="189"/> <source>Make New Directory</source> <translation type="unfinished">Neues Verzeichnis erstellen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="178"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> <source>Directory Name</source> <translation type="unfinished">Verzeichnisname</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Create Empty File</source> <translation type="unfinished">Leere Datei erstellen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Filename (you can given extension)</source> <translation type="unfinished">Dateiname (Sie können die Erweiterung angeben)</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="220"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="243"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="235"/> <source>Unable to create the file.</source> <translation type="unfinished">Die Datei kann nicht erstellt werden.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="314"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="298"/> <source>Rename</source> <translation type="unfinished">Umbenennen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> <source>New Filename</source> <translation type="unfinished">Neuer Dateiname</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="295"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="276"/> <source>Unable to rename the file or folder.</source> <translation type="unfinished">Die Datei oder der Ordner kann nicht umbenannt werden.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="293"/> <source>Open</source> <translation type="unfinished">Öffnen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="319"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="303"/> <source>Delete</source> <translation type="unfinished">Löschen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="324"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> <source>Calculate Hash</source> <translation type="unfinished">Hash berechnen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="329"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="313"/> <source>Directory</source> <translation type="unfinished">Verzeichnis</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="334"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="318"/> <source>File</source> <translation type="unfinished">Datei</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="339"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="323"/> <source>Compress...</source> <translation type="unfinished">Komprimieren...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="346"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="330"/> <source>Open with Default System Application</source> <translation type="unfinished">Mit der Standardsystemanwendung öffnen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="335"/> <source>New</source> <translation type="unfinished">Neu</translation> </message> + <message> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="393"/> + <source>Calculating</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::FindWidget</name> <message> - <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="46"/> + <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="45"/> <source>Find</source> <translation type="unfinished">Suchen</translation> </message> @@ -1059,7 +1169,7 @@ Description: %3</source> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="47"/> <source>Automatically restore unsaved Text Editor pages after an application crash.</source> - <translation type="unfinished">Nicht gespeicherte Texteditor-Seiten nach einem Anwendungsabsturzautomatisch wiederherstellen.</translation> + <translation type="unfinished">Nicht gespeicherte Texteditor-Seiten nach einem Anwendungsabsturz wiederherstellen.</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="50"/> @@ -1103,23 +1213,28 @@ Description: %3</source> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="63"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="79"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="81"/> <source>Clear All Log (Total Size: %1)</source> <translation type="unfinished">Gesamtes Protokoll löschen (Gesamtgröße: %1)</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="66"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="93"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="95"/> <source>Clear All Data Objects (Total Size: %1)</source> <translation type="unfinished">Alle Datenobjekte löschen (Gesamtgröße: %1)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="69"/> + <source>Reveal in File Explorer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="88"/> <source>Confirm</source> <translation type="unfinished">Bestätigen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="87"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="89"/> <source>Are you sure you want to clear all data objects? This will result in loss of all cached form positions, statuses, key servers, etc.</source> <translation type="unfinished">Sind Sie sicher, dass Sie alle Datenobjekte löschen möchten? Dies führt zum Verlust aller zwischengespeicherten Formularpositionen, Status, Schlüsselserver usw.</translation> @@ -1143,9 +1258,13 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Fortschrittlich</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> <source>No ASCII Mode</source> - <translation type="unfinished">Kein ASCII-Modus</translation> + <translation type="obsolete">Kein ASCII-Modus</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> + <source>Use Binary Mode for File Operations</source> + <translation type="unfinished"></translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="51"/> @@ -1154,86 +1273,92 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="52"/> + <source>Enable GpgME Debug Log</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> <source>Use Custom GnuPG</source> <translation type="unfinished">Verwenden Sie benutzerdefiniertes GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="54"/> <source>Select GnuPG Path</source> <translation type="unfinished">Wählen Sie den GnuPG-Pfad aus</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="56"/> <source>Use Custom GnuPG Key Database Path</source> <translation type="unfinished">Benutzerdefinierten Pfad für die GnuPG-Schlüsseldatenbank verwenden</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="58"/> <source>Select Key Database Path</source> <translation type="unfinished">Wählen Sie den Pfad für die Schlüsseldatenbank aus</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="60"/> + <source>Restart Gpg Agent on start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="64"/> <source>Tips: please select a directroy where "gpgconf" is located in.</source> <translation type="unfinished">Tipps: Bitte wählen Sie ein Verzeichnis aus, in dem sich "gpgconf" befindet.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="66"/> <source>Tips: notice that modify any of these settings will cause an Application restart.</source> <translation type="unfinished">Tipps: Beachten Sie, dass das Ändern dieser Einstellungen zu einem Neustart der Anwendung führt.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="95"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="98"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="118"/> <source>Open Directory</source> <translation type="unfinished">Verzeichnis öffnen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="171"/> <source>GnuPG Controller</source> <translation type="unfinished">GnuPG-Controller</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="331"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="339"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="346"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="358"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="356"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="375"/> <source>Illegal GnuPG Path</source> <translation type="unfinished">Unzulässiger GnuPG-Pfad</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="332"/> <source>Target GnuPG Path is empty.</source> - <translation type="unfinished">Der Ziel-GnuPG-Pfad ist leer.</translation> + <translation type="obsolete">Der Ziel-GnuPG-Pfad ist leer.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="340"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="357"/> <source>Target GnuPG Path is not an exists readable directory.</source> <translation type="unfinished">Der Ziel-GnuPG-Pfad ist kein lesbares Verzeichnis.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="347"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="364"/> <source>Target GnuPG Path is not an absolute path.</source> <translation type="unfinished">Der Ziel-GnuPG-Pfad ist kein absoluter Pfad.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> <source>Target GnuPG Path contains no "gpgconf" executable.</source> <translation type="unfinished">Der Ziel-GnuPG-Pfad enthält keine ausführbare Datei „gpgconf“.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="369"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="389"/> <source>Illegal GnuPG Key Database Path</source> <translation type="unfinished">Unzulässiger GnuPG-Schlüsseldatenbankpfad</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="370"/> <source>Target GnuPG Key Database Path is empty.</source> - <translation type="unfinished">Der Zielpfad für die GnuPG-Schlüsseldatenbank ist leer.</translation> + <translation type="obsolete">Der Zielpfad für die GnuPG-Schlüsseldatenbank ist leer.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="377"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="390"/> <source>Target GnuPG Key Database Path is not an exists readable directory.</source> <translation type="unfinished">Der Zielpfad für die GnuPG-Schlüsseldatenbank ist kein lesbares Verzeichnis.</translation> </message> @@ -1247,7 +1372,7 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Description</source> <translation type="unfinished">Beschreibung</translation> </message> @@ -1273,31 +1398,50 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="48"/> + <source>Directories</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="49"/> + <source>Options</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Directory Type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Path</source> + <translation type="unfinished"></translation> + </message> + <message> <source>Configurations</source> - <translation type="unfinished">Konfigurationen</translation> + <translation type="obsolete">Konfigurationen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Component</source> - <translation type="unfinished"></translation> + <translation>Komponente</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Group</source> - <translation type="unfinished"></translation> + <translation>Gruppe</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Key</source> <translation type="unfinished">Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Default Value</source> - <translation type="unfinished"></translation> + <translation>Standardwert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="91"/> <source>Value</source> <translation type="unfinished">Wert</translation> </message> @@ -1350,7 +1494,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="167"/> <source>Text (*.txt)</source> - <translation type="unfinished"></translation> + <translation>Text (*.txt)</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="176"/> @@ -1447,27 +1591,27 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> <source>KeyPair</source> <translation type="unfinished">Schlüsselpaar</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> <source>UIDs</source> <translation type="unfinished">UIDs</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="45"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="50"/> <source>Subkeys</source> <translation type="unfinished">Unterschlüssel</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="52"/> <source>Operations</source> <translation type="unfinished">Aktivieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="69"/> <source>Key Details</source> <translation type="unfinished">Schlüssel Details</translation> </message> @@ -1507,7 +1651,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/key_generate/KeygenDialog.cpp" line="161"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation>Unbekannter Fehler ist aufgetreten</translation> </message> <message> <location filename="../../../../src/ui/dialog/key_generate/KeygenDialog.cpp" line="197"/> @@ -1611,108 +1755,113 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyImportDetailDialog</name> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="44"/> <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="61"/> <source>Key Import Details</source> <translation type="unfinished">Details zum Schlüsselimport</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="45"/> <source>No keys found to import</source> <translation type="unfinished">Keine Schlüssel zum Importieren gefunden</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="73"/> <source>General key info</source> <translation type="unfinished">Allgemeine Schlüsselinfos</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="77"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="76"/> <source>Considered</source> <translation type="unfinished">Berücksichtigt</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="83"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="82"/> <source>Public unchanged</source> <translation type="unfinished">Öffentlich unverändert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="89"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="88"/> <source>Imported</source> <translation type="unfinished">Importiert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="95"/> <source>Not Imported</source> <translation type="unfinished">Nicht importiert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="103"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="102"/> <source>Private Read</source> <translation type="unfinished">Privat gelesen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="110"/> <source>Private Imported</source> <translation type="unfinished">Privat importiert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="118"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="117"/> <source>Private Unchanged</source> <translation type="unfinished">Privat unverändert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="123"/> + <source>New Revocations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Name</source> <translation type="unfinished">Name</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Email</source> <translation type="unfinished">E-Mail</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Status</source> <translation type="unfinished">Status</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="140"/> <source>Fingerprint</source> <translation type="unfinished">Fingerabdruck</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="160"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> <source>Private</source> <translation type="unfinished">Privat</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="163"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> <source>Public</source> <translation type="unfinished">Öffentlich</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> <source>Unchanged</source> <translation type="unfinished">Unverändert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="175"/> <source>New Key</source> <translation type="unfinished">Neuer Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="178"/> <source>New Subkey</source> <translation type="unfinished">Neuer Unterschlüssel</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="176"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="182"/> <source>New Signature</source> <translation type="unfinished">Neue Unterschrift</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="180"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="186"/> <source>New UID</source> <translation type="unfinished">Neue UID</translation> </message> @@ -1765,82 +1914,87 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Suche nach Schlüsseln...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Select</source> <translation type="unfinished">Auswählen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Type</source> <translation type="unfinished">Typ</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Name</source> <translation type="unfinished">Name</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Email Address</source> <translation type="unfinished">E-Mail-Addresse</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Usage</source> <translation type="unfinished">Verwendungszweck</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Trust</source> <translation type="unfinished">Vertrauen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Finger Print</source> <translation type="unfinished">Fingerabdruck</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="183"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> + <source>Key ID</source> + <translation type="unfinished">Schlüssel-ID</translation> + </message> + <message> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="186"/> <source>Refreshing Key List...</source> <translation type="unfinished">Schlüsselliste wird aktualisiert...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> <source>Import Keys</source> <translation type="unfinished">Schlüssel importieren</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="353"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="356"/> <source>You've dropped something on the table.</source> <translation type="unfinished">Sie haben etwas in der Tabelle abgelegt.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> <source>GpgFrontend will now try to import key(s).</source> <translation type="unfinished">GpgFrontend wird nun versuchen, Schlüssel zu importieren.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="360"/> <source>Always import without bothering.</source> <translation type="unfinished">Immer ohne Nachfrage inportieren.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="452"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="455"/> <source>Key List Refreshed.</source> <translation type="unfinished">Schlüsselliste aktualisiert.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="473"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="476"/> <source>Syncing Key List...</source> <translation type="unfinished">Schlüsselliste wird synchronisiert...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="481"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="484"/> <source>Sync [%1/%2] %3 %4</source> <translation type="unfinished">Synchronisieren [%1/%2] %3 %4</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="491"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="494"/> <source>Key List Sync Done.</source> <translation type="unfinished">Synchronisierung der Schlüsselliste abgeschlossen.</translation> </message> @@ -1848,347 +2002,372 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyMgmt</name> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> <source>All</source> <translation type="unfinished">Alle</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="61"/> <source>Only Public Key</source> <translation type="unfinished">Nur öffentlicher Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="71"/> <source>Has Private Key</source> <translation type="unfinished">Hat privaten Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="77"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="81"/> <source>No Primary Key</source> <translation type="unfinished">Kein Primärschlüssel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="86"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="90"/> <source>Revoked</source> <translation type="unfinished">Widerrufen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="94"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="98"/> <source>Expired</source> <translation type="unfinished">Abgelaufen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="123"/> <source>KeyPair Management</source> <translation type="unfinished">Schlüsselpaar-Verwaltung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="144"/> <source>Open</source> <translation type="unfinished">Öffnen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="142"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> <source>Open Key File</source> <translation type="unfinished">Schlüsseldatei öffnen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="149"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="153"/> <source>Close</source> <translation type="unfinished">Schließen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="152"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="156"/> <source>New Keypair</source> <translation type="unfinished">Neues Schlüsselpaar</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> <source>Generate KeyPair</source> <translation type="unfinished">Schlüsselpaar erstellen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> <source>New Subkey</source> <translation type="unfinished">Neuer Unterschlüssel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> <source>Generate Subkey For Selected KeyPair</source> <translation type="unfinished">Unterschlüssel für ausgewähltes Schlüsselpaar erstellen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="257"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="171"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> <source>File</source> <translation type="unfinished">Datei</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> <source>Import New Key From File</source> <translation type="unfinished">Neuen Schlüssel aus Datei importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> <source>Clipboard</source> <translation type="unfinished">Zwischenablage</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="181"/> <source>Import New Key From Clipboard</source> <translation type="unfinished">Neuen Schlüssel aus der Zwischenablage importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="188"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> <source>Keyserver</source> <translation type="unfinished">Schlüsselserver</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="196"/> <source>Import New Key From Keyserver</source> <translation type="unfinished">Neuen Schlüssel vom Schlüsselserver importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="198"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="531"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="202"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Key Package</source> <translation type="unfinished">Schlüsselpaket</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="201"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> <source>Import Key(s) From a Key Package</source> <translation type="unfinished">Schlüssel aus einem Schlüsselpaket importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> <source>Export To Clipboard</source> <translation type="unfinished">In die Zwischenablage exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> <source>Export Checked Key(s) To Clipboard</source> - <translation type="unfinished"></translation> + <translation>Ausgewählte(n) Schlüssel in Zwischenablage exportiert</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="217"/> <source>Export As Key Package</source> <translation type="unfinished">Als Schlüsselpaket exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> <source>Export Checked Key(s) To a Key Package</source> <translation type="unfinished">Geprüfte(n) Schlüssel in ein Schlüsselpaket exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="224"/> <source>Export As OpenSSH</source> <translation type="unfinished">Als OpenSSH exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="223"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> <source>Export Checked Key As OpenSSH Format to File</source> - <translation type="unfinished"></translation> + <translation>Ausgewählten Schlüssel im OpenSSH Format in Datei exportiert</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="231"/> <source>Delete Selected Key(s)</source> <translation type="unfinished">Ausgewählte(n) Schlüssel löschen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="228"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> <source>Delete the Selected keys</source> <translation type="unfinished">Die ausgewählten Schlüssel löschen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="236"/> <source>Delete Checked Key(s)</source> <translation type="unfinished">Geprüfte(n) Schlüssel löschen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="233"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="237"/> <source>Delete the Checked keys</source> <translation type="unfinished">Die markierten Schlüssel löschen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="238"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="242"/> <source>Show Key Details</source> <translation type="unfinished">Schlüsseldetails anzeigen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="239"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> <source>Show Details for this Key</source> <translation type="unfinished">Details zu diesem Schlüssel anzeigen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="244"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="248"/> <source>Set Owner Trust Level</source> <translation type="unfinished">Vertrauensstufe des Eigentümers festlegen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="281"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="285"/> <source>Key</source> <translation type="unfinished">Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="262"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> <source>Generate Key</source> <translation type="unfinished">Schlüssel erstellen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="294"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="270"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="298"/> <source>Import Key</source> <translation type="unfinished">Schlüssel importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="272"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="276"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="306"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="307"/> <source>Export Key</source> - <translation type="unfinished"></translation> + <translation>Schlüssel exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="293"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="297"/> <source>Import key</source> <translation type="unfinished">Schlüssel importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="302"/> <source>Export key</source> - <translation type="unfinished"></translation> + <translation type="vanished">Schlüssel exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="336"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="340"/> <source>Deleting Keys</source> <translation type="unfinished">Schlüssel löschen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="337"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="341"/> <source>Are you sure that you want to delete the following keys?</source> <translation type="unfinished">Möchten Sie die folgenden Schlüssel wirklich löschen?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="343"/> <source>The action can not be undone.</source> <translation type="unfinished">Die Aktion kann nicht rückgängig gemacht werden.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="404"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="416"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="483"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="507"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="551"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="408"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="420"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="487"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="498"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="511"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="541"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="549"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="565"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="573"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="589"/> <source>Error</source> <translation type="unfinished">Fehler</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> <source>Key Not Found.</source> <translation type="unfinished">Schlüssel nicht gefunden.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="379"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="462"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="468"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="370"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="383"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="466"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="472"/> <source>Forbidden</source> <translation type="unfinished">Verboten</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="367"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="371"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="384"/> <source>Please check some keys before doing this operation.</source> <translation type="unfinished">Bitte wählen Sie mindestens einen Schlüssel aus, bevor Sie diesen Vorgang ausführen.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="372"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="376"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="524"/> <source>key(s) exported</source> <translation type="unfinished">Schlüssel exportiert</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="396"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="475"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="400"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="479"/> <source>Exporting</source> - <translation type="unfinished"></translation> + <translation>Exportiere</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="405"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="417"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="495"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="409"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="421"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="488"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="499"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation>Unbekannter Fehler ist aufgetreten</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="438"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="442"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="452"/> <source>Invalid Operation</source> <translation type="unfinished">Ungültige Operation</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="439"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="443"/> <source>Please select one KeyPair before doing this operation.</source> <translation type="unfinished">Bitte wählen Sie ein Schlüsselpaar aus, bevor Sie diesen Vorgang ausführen.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="449"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="453"/> <source>If a key pair does not have a private key then it will not be able to generate sub-keys.</source> <translation type="unfinished">Wenn ein Schlüsselpaar keinen privaten Schlüssel hat, kann es keine Unterschlüssel generieren.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="463"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="467"/> <source>Please check a key before performing this operation.</source> - <translation type="unfinished"></translation> + <translation>Bitte wählen Sie einen Schlüssel aus, bevor Sie diesen Vorgang starten.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="469"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="473"/> <source>This operation accepts just a single key.</source> - <translation type="unfinished"></translation> + <translation>Dieser Vorgang kann nur für einen einzelnen Schlüssel ausgeführt werden.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="512"/> <source>This key may not be able to export as OpenSSH format. Please check the key-size of the subkey(s) used to sign.</source> <translation type="unfinished">Dieser Schlüssel kann möglicherweise nicht im OpenSSH-Format exportiert werden. Bitte überprüfen Sie die Schlüsselgröße der zum Signieren verwendeten Unterschlüssel.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="515"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="519"/> <source>Export OpenSSH Key To File</source> <translation type="unfinished">OpenSSH-Schlüssel in eine Datei exportieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="516"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> <source>OpenSSH Public Key Files</source> <translation type="unfinished">OpenSSH-Dateien mit öffentlichem Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="530"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Import Key Package</source> <translation type="unfinished">Schlüsselpaket importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="534"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="542"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="566"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished">Kann diese Datei nicht öffnen. Bitte stellen Sie sicher, dass es sich um eine reguläre, lesbare Datei handelt.</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="550"/> + <source>The target file is too large for a key package.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="555"/> <source>Import Key Package Passphrase File</source> <translation type="unfinished">Schlüsselpaket-Passphrasendatei importieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="535"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="556"/> <source>Key Package Passphrase File</source> <translation type="unfinished">Schlüsselpaket-Passphrasendatei</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="545"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="574"/> + <source>The target file is too large for a key package passphrase.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="580"/> + <source>Importing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="596"/> <source>key(s) imported</source> <translation type="unfinished">Schlüssel importiert</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="552"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="590"/> <source>An error occur in importing key package.</source> <translation type="unfinished">Beim Importieren des Schlüsselpakets ist ein Fehler aufgetreten.</translation> </message> @@ -2281,7 +2460,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="80"/> <source>Algorithm Detail</source> - <translation type="unfinished"></translation> + <translation>Algorithmusdetails</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="81"/> @@ -2374,17 +2553,17 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Nie ablaufen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="258"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="257"/> <source>No Data</source> <translation type="unfinished">Keine Daten</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="275"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="274"/> <source>Warning: The primary key has expired.</source> <translation type="unfinished">Warnung: Der Primärschlüssel ist abgelaufen.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="279"/> <source>Warning: The primary key has been revoked.</source> <translation type="unfinished">Warnung: Der Primärschlüssel wurde widerrufen.</translation> </message> @@ -2392,201 +2571,256 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyPairOperaTab</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="53"/> <source>General Operations</source> <translation type="unfinished">Allgemeine Vorgänge</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="59"/> <source>Export Public Key</source> <translation type="unfinished">Öffentlichen Schlüssel exportieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="65"/> <source>Export Private Key</source> <translation type="unfinished">Privaten Schlüssel exportieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="70"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="72"/> <source>Modify Expiration Datetime (Primary Key)</source> <translation type="unfinished">Ablaufdatum/Uhrzeit ändern (Primärschlüssel)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="73"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="75"/> <source>Modify Password</source> <translation type="unfinished">Passwort verändern</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="92"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="93"/> <source>Key Server Operation (Pubkey)</source> <translation type="unfinished">Betrieb des Schlüsselservers (Pubkey)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="100"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="177"/> <source>Generate Revoke Certificate</source> <translation type="unfinished">Widerrufszertifikat erstellen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="106"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="107"/> <source>Modify TOFU Policy</source> <translation type="unfinished">TOFU-Richtlinie ändern</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="101"/> + <source>Revoke Certificate Operation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="114"/> <source>Set Owner Trust Level</source> <translation type="unfinished">Vertrauensstufe des Eigentümers festlegen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="135"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="138"/> <source>Upload Key Pair to Key Server</source> <translation type="unfinished">Schlüsselpaar auf Schlüsselserver hochladen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="143"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="146"/> <source>Sync Key Pair From Key Server</source> <translation type="unfinished">Schlüsselpaar vom Schlüsselserver synchronisieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="158"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="161"/> <source>Export Full Secret Key</source> <translation type="unfinished">Vollständigen geheimen Schlüssel exportieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="164"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="167"/> <source>Export Shortest Secret Key</source> <translation type="unfinished">Kürzesten geheimen Schlüssel exportieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="191"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="237"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="182"/> + <source>Import Revoke Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="298"/> <source>Export Key To File</source> <translation type="unfinished">Schlüssel in Datei exportieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="192"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="238"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="299"/> <source>Key Files</source> <translation type="unfinished">Schlüsseldateien</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="197"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="243"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="286"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="261"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="304"/> <source>Export Error</source> <translation type="unfinished">Exportfehler</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="198"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="244"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="287"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="216"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="262"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="305"/> <source>Couldn't open %1 for writing</source> <translation type="unfinished">%1 konnte nicht zum Schreiben geöffnet werden</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="206"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="224"/> <source>Exporting short private Key</source> <translation type="unfinished">Exportieren eines kurzen privaten Schlüssels</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="207"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="272"/> <source>You are about to export your</source> <translation type="unfinished">Sie sind dabei, Ihre . zu exportieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="208"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="226"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="273"/> <source> PRIVATE KEY </source> <translation type="unfinished"> PRIVATEN SCHLÜSSEL </translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="274"/> <source>This is NOT your Public Key, so DON'T give it away.</source> <translation type="unfinished">Dies ist NICHT Ihr öffentlicher Schlüssel, also geben Sie ihn NICHT weiter.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="228"/> <source>Do you REALLY want to export your PRIVATE KEY in a Minimum Size?</source> <translation type="unfinished">Möchten Sie WIRKLICH Ihren PRIVATEN SCHLÜSSEL in einer Mindestgröße exportieren?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="231"/> <source>For OpenPGP keys it removes all signatures except for the latest self-signatures.</source> <translation type="unfinished">Bei OpenPGP-Schlüsseln werden alle Signaturen mit Ausnahme der neuesten Eigensignaturen entfernt.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="253"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="271"/> <source>Exporting private Key</source> <translation type="unfinished">Exportieren des privaten Schlüssels</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="275"/> <source>Do you REALLY want to export your PRIVATE KEY?</source> <translation type="unfinished">Möchten Sie WIRKLICH Ihren PRIVATEN SCHLÜSSEL exportieren?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="329"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="412"/> <source>Revocation Certificates</source> <translation type="unfinished">Widerrufszertifikate</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="326"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="340"/> <source>Generate revocation certificate</source> - <translation type="unfinished"></translation> + <translation>Widerrufszertifikat erstellen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="357"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> <source>Policy Auto</source> <translation type="unfinished">Richtlinie Auto</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="373"/> <source>Policy Good</source> <translation type="unfinished">Richtlinie gut</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="375"/> <source>Policy Bad</source> <translation type="unfinished">Richtlinie schlecht</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="377"/> <source>Policy Ask</source> <translation type="unfinished">Richtlinie fragen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="365"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="379"/> <source>Policy Unknown</source> <translation type="unfinished">Richtlinie unbekannt</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="352"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="366"/> <source>Modify TOFU Policy(Default is Auto)</source> <translation type="unfinished">TOFU-Richtlinie ändern (Standard ist Auto)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="353"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="367"/> <source>Policy for the Key Pair:</source> <translation type="unfinished">Richtlinie für das Schlüsselpaar:</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="384"/> <source>Not Successful</source> <translation type="unfinished">Nicht erfolgreich</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="385"/> <source>Modify TOFU policy not successfully.</source> <translation type="unfinished">Ändern der TOFU-Richtlinie nicht erfolgreich.</translation> </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="399"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="411"/> + <source>Import Key Revocation Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="400"/> + <source>You are about to import the</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="401"/> + <source>REVOCATION CERTIFICATE</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="402"/> + <source>A successful import will result in the key being irreversibly revoked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="404"/> + <source>Do you REALLY want to execute this operation?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="420"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="429"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="437"/> + <source>Error</source> + <translation type="unfinished">Fehler</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="421"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="438"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished">Kann diese Datei nicht öffnen. Bitte stellen Sie sicher, dass es sich um eine reguläre, lesbare Datei handelt.</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="430"/> + <source>The target file is too large for a key revocation certificate.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::KeyPairSubkeyTab</name> @@ -2618,7 +2852,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="67"/> <source>Algorithm Detail</source> - <translation type="unfinished"></translation> + <translation>Algorithmusdetails</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="69"/> @@ -2674,7 +2908,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="159"/> <source>Create Date</source> - <translation type="unfinished"></translation> + <translation>Erstellung</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="160"/> @@ -2682,12 +2916,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Ablaufdatum</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="202"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="203"/> <source>Never Expire</source> <translation type="unfinished">Nie ablaufen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="239"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="240"/> <source>Never Expires</source> <translation type="unfinished">Läuft nie ab</translation> </message> @@ -2794,12 +3028,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairUIDTab.cpp" line="163"/> <source>Create Date</source> - <translation type="unfinished"></translation> + <translation>Erstellungsdatum</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairUIDTab.cpp" line="164"/> <source>Expired Date</source> - <translation type="unfinished"></translation> + <translation>Ablaufdatum</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairUIDTab.cpp" line="240"/> @@ -3073,14 +3307,24 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">%1 Schlüssel gefunden. Doppelklicken Sie auf einen Schlüssel, um ihn zu importieren.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="415"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="371"/> + <source>Warning</source> + <translation type="unfinished">Warnung</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="372"/> + <source>Please select one KeyPair before doing this operation.</source> + <translation type="unfinished">Bitte wählen Sie ein Schlüsselpaar aus, bevor Sie diesen Vorgang ausführen.</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="419"/> <source>Key Imported</source> <translation type="unfinished">Schlüssel importiert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="426"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="430"/> <source>Processing ...</source> - <translation type="unfinished"></translation> + <translation>Verarbeite ...</translation> </message> </context> <context> @@ -3088,22 +3332,22 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="74"/> <source>Key not found in the Keyserver.</source> - <translation type="unfinished"></translation> + <translation>Schlüssel auf dem Schlüsselserver nicht gefunden.</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="77"/> <source>Network connection timeout.</source> - <translation type="unfinished"></translation> + <translation>Netzwerkverbindungs-Timeout</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="80"/> <source>Cannot resolve the address of target key server.</source> - <translation type="unfinished"></translation> + <translation>Kann die Adresse des gewählten Schlüsselservers nicht auflösen.</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="83"/> <source>General connection error occurred.</source> - <translation type="unfinished"></translation> + <translation>Allgemeiner Verbindungsfehler ist aufgetreten.</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="89"/> @@ -3162,32 +3406,32 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Unterzeichner</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="80"/> <source>Expire Date</source> <translation type="unfinished">Ablaufdatum</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="90"/> <source>Sign For Key's UID(s)</source> <translation type="unfinished">Für die UID(s) des Schlüssels unterschreiben</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="114"/> <source>Unsuccessful Operation</source> <translation type="unfinished">Fehlgeschlagener Vorgang</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="115"/> <source>Signature operation failed for UID %1</source> <translation type="unfinished">Signaturvorgang für UID %1 fehlgeschlagen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> <source>Operation Complete</source> <translation type="unfinished">Vorgang abgeschlossen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="127"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> <source>The signature operation of the UID is complete</source> <translation type="unfinished">Der Signaturvorgang der UID ist abgeschlossen</translation> </message> @@ -3207,7 +3451,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="78"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation>Unbekannter Fehler ist aufgetreten</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="147"/> @@ -3232,7 +3476,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="158"/> <source>Upload Failed</source> - <translation type="unfinished"></translation> + <translation>Hochladen fehlgeschlagen</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="162"/> @@ -3351,7 +3595,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/settings/SettingsKeyServer.cpp" line="221"/> <source>timeout(ms): </source> - <translation type="unfinished"></translation> + <translation>Timeout (ms):</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsKeyServer.cpp" line="245"/> @@ -3377,546 +3621,561 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::MainWindow</name> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="164"/> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="167"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="158"/> <source>Critical error occur while loading GpgFrontend.</source> <translation type="unfinished">Beim Laden von GpgFrontend ist ein kritischer Fehler aufgetreten.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="157"/> <source>Loading Failed</source> <translation type="unfinished">Laden fehlgeschlagen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="48"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="100"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="143"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="162"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="187"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="214"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="257"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="276"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="293"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="307"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="325"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="342"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="356"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="375"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="430"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="449"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="503"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="528"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="568"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="605"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="631"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="671"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="709"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="735"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="768"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="801"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="811"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="836"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="72"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="119"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="175"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="208"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="244"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="320"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="242"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="250"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="145"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="164"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="260"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="311"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="329"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="347"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="361"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="435"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="454"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="489"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="536"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="613"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="639"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="717"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="743"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="775"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="822"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="847"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="121"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="210"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="246"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="322"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="368"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="255"/> <source>Error</source> <translation type="unfinished">Fehler</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="163"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="277"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="326"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="376"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="450"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="529"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="632"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="736"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="802"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="50"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="165"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="280"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="330"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="381"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="455"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="537"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="640"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="813"/> <source>Cannot read from file: %1</source> - <translation type="unfinished"></translation> + <translation>Kann Datei nicht lesen: %1</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="176"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="178"/> <source>The target file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">Die Zieldatei %1 existiert bereits, wollen Sie sie überschreiben?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="65"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="179"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="284"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="333"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="411"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="575"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="678"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="750"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="817"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="66"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="181"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="288"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="338"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="416"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="583"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="686"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="757"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="828"/> <source>Warning</source> <translation type="unfinished">Warnung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="188"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="294"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="343"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="569"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="672"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="745"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="190"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="298"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="577"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="680"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="752"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="823"/> <source>Cannot write to file: %1</source> - <translation type="unfinished"></translation> + <translation>Kann in Datei nicht schreiben: %</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="83"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="197"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="52"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="199"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="54"/> <source>Symmetric Encryption</source> <translation type="unfinished">Symmetrische Verschlüsselung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="198"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="200"/> <source>No Key Selected. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">Es ist kein Schlüssel ausgewählt. Möchten Sie mit einer symmetrischen Verschlüsselung unter Verwendung einer Passphrase verschlüsseln?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="90"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="61"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="63"/> <source>Symmetrically Encrypting</source> <translation type="unfinished">Symmetrisches Verschlüsseln</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="144"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="215"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="258"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="308"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="357"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="431"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="504"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="606"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="710"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="769"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="837"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="120"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="176"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="209"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="245"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="321"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="367"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="102"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="217"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="261"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="312"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="362"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="509"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="614"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="718"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="776"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="848"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="178"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="211"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="323"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="369"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation>Unbekannter Fehler ist aufgetreten</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="125"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="550"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="653"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="277"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="558"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="661"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> <source>Invalid KeyPair</source> <translation type="unfinished">Ungültiges Schlüsselpaar</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="240"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="654"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="278"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="242"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="559"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="662"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="280"/> <source>The selected keypair cannot be used for encryption.</source> <translation type="unfinished">Das ausgewählte Schlüsselpaar kann nicht zur Verschlüsselung verwendet werden.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="552"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="655"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="128"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="560"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="663"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="281"/> <source>For example the Following Key:</source> <translation type="unfinished">Zum Beispiel der folgende Schlüssel:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="134"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="109"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="135"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="111"/> <source>Encrypting</source> <translation type="unfinished">Verschlüsselung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="204"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="206"/> <source>Archiving & Symmetrically Encrypting</source> - <translation type="unfinished"></translation> + <translation>Archivierung und symmetrische Verschlüsselung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="250"/> <source>Archiving & Encrypting</source> - <translation type="unfinished"></translation> + <translation>Archivierung und Verschlüsselung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="285"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="334"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="289"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="584"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="687"/> <source>The target file already exists, do you need to overwrite it?</source> <translation type="unfinished">Die Zieldatei existiert bereits, wollen Sie sie überschreiben?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="299"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="200"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="202"/> <source>Decrypting</source> <translation type="unfinished">Entschlüsseln</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/> <source>Decrypting & Extrating</source> - <translation type="unfinished"></translation> + <translation>Entschlüsselung und Extraktion</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="385"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="539"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="642"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="145"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="390"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="547"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="650"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="147"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="267"/> <source>No Key Checked</source> <translation type="unfinished">Kein Schlüssel ausgewählt</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="386"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="540"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="643"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="391"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="548"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="651"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="148"/> <source>Please check the key in the key toolbox on the right.</source> <translation type="unfinished">Bitte wählen Sie den Schlüssel in der Schlüssel-Toolbox auf der rechten Seite.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="393"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="98"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="154"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="398"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="156"/> <source>Invalid Operation</source> <translation type="unfinished">Ungültige Operation</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="394"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="399"/> <source>The selected key contains a key that does not actually have a sign usage.</source> <translation type="unfinished">Der ausgewählte Schlüssel enthält einen Schlüssel, der keine Signierfunktion hat.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="396"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="401"/> <source>for example the Following Key:</source> <translation type="unfinished">zum Beispiel der folgende Schlüssel:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="412"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="417"/> <source>The signature file "%1" exists, do you need to overwrite it?</source> <translation type="unfinished">Die Signaturdatei "%1" existiert, wollen Sie sie überschreiben?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="421"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="426"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="168"/> <source>Signing</source> <translation type="unfinished">Unterzeichnen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="470"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="475"/> <source>File to be Verified</source> - <translation type="unfinished"></translation> + <translation>Zu verifizierende Datei</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="471"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="476"/> <source>Please provide An ABSOLUTE Path If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </source> - <translation type="unfinished"></translation> + <translation>Bitte geben Sie einen ABSOLUTEN Pfad an. +Fals Daten und Signatur in einer Datei COMBINIERT sind, LASSEN SIE DIES LEER: </translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="485"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="490"/> <source>Please select the appropriate origin file or signature file. Ensure that both are in this directory.</source> <translation type="unfinished">Bitte wählen Sie die entsprechende Ursprungsdatei oder Signaturdatei aus. Stellen Sie sicher, dass sich beide in diesem Verzeichnis befinden.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="235"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="499"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="237"/> <source>Verifying</source> <translation type="unfinished">Verifizierung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="594"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="308"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="602"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="310"/> <source>Encrypting and Signing</source> <translation type="unfinished">Verschlüsseln und Signieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="697"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="705"/> <source>Archiving & Encrypting & Signing</source> - <translation type="unfinished"></translation> + <translation>Archivierung & Verschlüsselung & Signierung</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="818"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="758"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="829"/> <source>The output file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">Die Ausgabedatei %1 existiert bereits, wollen Sie sie überschreiben?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="760"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="356"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="767"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="358"/> <source>Decrypting and Verifying</source> <translation type="unfinished">Entschlüsseln und Verifizieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="827"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="838"/> <source>Decrypting & Verifying & Extracting</source> - <translation type="unfinished"></translation> + <translation>Entschlüsselung & Verifizierung & Extraktion</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="55"/> <source>No Key Checked. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">Kein Schlüssel ausgewählt. Möchten Sie mit einer symmetrischen Verschlüsselung unter Verwendung einer Passphrase verschlüsseln?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="99"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> <source>The selected key contains a key that does not actually have a encrypt usage.</source> <translation type="unfinished">Der ausgewählte Schlüssel hat keine Verschlüsselungsfunktion.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> <source>The selected key contains a key that does not actually have a signature usage.</source> <translation type="unfinished">Der ausgewählte Schlüssel hat keine Signierfunktion.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="266"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="268"/> <source>Please check some key in the key toolbox on the right.</source> <translation type="unfinished">Bitte wählen Sie mindestens einen Schlüssel in der Schlüssel-Toolbox auf der rechten Seite.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> <source>Key Not Found.</source> <translation type="unfinished">Schlüssel nicht gefunden.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="101"/> <source> (Local Time) </source> - <translation type="unfinished"></translation> + <translation type="vanished"> (Ortszeit) </translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/> + <source>Localize</source> + <translation type="unfinished">本地化</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="105"/> + <source>UTC</source> + <translation type="unfinished">koordinierte Weltzeit</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/> + <source>Local Time</source> + <translation type="unfinished">当地时间</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="248"/> <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> - <translation type="unfinished"></translation> + <translation>Kann diese Datei nicht öffnen. Bitte stellen Sie sicher, dass es sich um eine reguläre, lesbare Datei handelt.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="251"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="256"/> <source>Cannot open this file. The file is TOO LARGE (>1MB) for GpgFrontend Text Editor.</source> - <translation type="unfinished"></translation> + <translation>Kann diese Datei nicht öffen. DIe Datei ist ZU GROSS (>1MB) für den GpgFrontend Texteditor.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="302"/> <source>GpgFrontend Upgradeable (New Version: %1).</source> <translation type="unfinished">GpgFrontend kann aktualisiert werden (neue Version: %1).</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="307"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/> <source>Withdrawn Version</source> <translation type="unfinished">Zurückgezogene Version</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="309"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> <source>This version(%1) may have been withdrawn by the developer due to serious problems. Please stop using this version immediately and use the latest stable version.</source> <translation type="unfinished">Diese Version (%1) wurde möglicherweise vom Entwickler aufgrund schwerwiegender Probleme zurückgezogen. Bitte beenden Sie die Verwendung dieser Version sofort und verwenden Sie die neueste stabile Version.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> <source>You can download the latest stable version(%1) on Github Releases Page.<br/></source> <translation type="unfinished">Sie können die neueste stabile Version (%1) auf der Github-Release-Seite herunterladen.<br/></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="324"/> <source>This maybe a BETA Version (Latest Stable Version: %1).</source> <translation type="unfinished">Dies ist möglicherweise eine BETA-Version (Neueste stabile Version: %1).</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="45"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="44"/> <source>New</source> <translation type="unfinished">Neu</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="51"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="50"/> <source>Open a new file</source> <translation type="unfinished">Eine neue Datei öffnen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="54"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="53"/> <source>Open...</source> <translation type="unfinished">Öffnen...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="56"/> <source>Open an existing file</source> <translation type="unfinished">Eine vorhandene Datei öffnen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="60"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="59"/> <source>File Browser</source> <translation type="unfinished">Dateibrowser</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="62"/> <source>Open a file browser</source> <translation type="unfinished">Dateibrowser öffnen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="66"/> <source>Save File</source> <translation type="unfinished">Datei speichern</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="70"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="69"/> <source>Save the current File</source> <translation type="unfinished">Die aktuelle Datei speichern</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="73"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="72"/> <source>Save As</source> <translation type="unfinished">Speichern als</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="76"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="75"/> <source>Save the current File as...</source> <translation type="unfinished">Die aktuelle Datei speichern als...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="79"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="78"/> <source>Print</source> <translation type="unfinished">Drucken</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="82"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="81"/> <source>Print Document</source> <translation type="unfinished">Dokument drucken</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="84"/> <source>Close</source> <translation type="unfinished">Schließen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="87"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="86"/> <source>Close file</source> <translation type="unfinished">Datei schließen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="90"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="89"/> <source>Quit</source> <translation type="unfinished">Beenden</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="93"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="92"/> <source>Quit Program</source> <translation type="unfinished">Programm beenden</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="98"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="97"/> <source>Undo</source> <translation type="unfinished">Rückgängig machen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="99"/> <source>Undo Last Edit Action</source> <translation type="unfinished">Letzten Bearbeitungsschritt rückgängig machen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="102"/> <source>Redo</source> <translation type="unfinished">Wiederholen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="105"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="104"/> <source>Redo Last Edit Action</source> <translation type="unfinished">Letzten Bearbeitungsschritt wiederholen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="108"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="107"/> <source>Zoom In</source> <translation type="unfinished">Hineinzoomen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="112"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="111"/> <source>Zoom Out</source> <translation type="unfinished">Rauszoomen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="116"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="115"/> <source>Paste</source> <translation type="unfinished">Einfügen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="118"/> <source>Paste Text From Clipboard</source> <translation type="unfinished">Text aus der Zwischenablage einfügen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="121"/> <source>Cut</source> <translation type="unfinished">Ausschneiden</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="125"/> <source>Cut the current selection's contents to the clipboard</source> <translation type="unfinished">Den Inhalt der aktuellen Auswahl in die Zwischenablage ausschneiden</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="130"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="129"/> <source>Copy</source> <translation type="unfinished">Kopieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="134"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="133"/> <source>Copy the current selection's contents to the clipboard</source> <translation type="unfinished">Den Inhalt der aktuellen Auswahl in die Zwischenablage kopieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="138"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="137"/> <source>Quote</source> <translation type="unfinished">Zitieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="139"/> <source>Quote whole text</source> <translation type="unfinished">Ganzen Text zitieren</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="143"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="142"/> <source>Select All</source> <translation type="unfinished">Alles auswählen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="145"/> <source>Select the whole text</source> <translation type="unfinished">Den gesamten Text auswählen</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="149"/> <source>Find</source> <translation type="unfinished">Suchen</translation> </message> @@ -4446,7 +4705,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="81"/> <source>Username</source> - <translation type="unfinished">Nutzername</translation> + <translation type="unfinished">Benutzername</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="82"/> @@ -4466,7 +4725,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="90"/> <source>Prohibit checking for version updates when the program starts.</source> - <translation type="unfinished">Die Suche nach Versionsaktualisierungen beim Start des Programms verbieten.</translation> + <translation type="unfinished">Die Suche nach Versionsaktualisierungen beim Start des Programms deaktivieren.</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="92"/> @@ -4486,7 +4745,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="171"/> <source>Server Url</source> - <translation type="unfinished"></translation> + <translation>Server-URL</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="181"/> @@ -4528,7 +4787,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="63"/> - <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="196"/> <source>%1 character(s)</source> <translation type="unfinished">%1 Zeichen</translation> </message> @@ -4581,44 +4840,48 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="67"/> <source>Repeat PIN:</source> - <translation type="unfinished"></translation> + <translation>PIN wiederholen:</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="68"/> <source>Show passphrase</source> - <translation type="unfinished"></translation> + <translation>Passwortphrase anzeigen</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="68"/> <source>Hide passphrase</source> - <translation type="unfinished"></translation> + <translation>Passwortphrase verbergen</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="71"/> <source>Given PIN was wrong. Please retry.</source> - <translation type="unfinished"></translation> + <translation>Eingegebene PIN ist ungültig. Bitte erneut versuchen.</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="74"/> <source>PIN:</source> - <translation type="unfinished"></translation> + <translation>PIN:</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="84"/> <source>Passphrases do not match</source> - <translation type="unfinished"></translation> + <translation>Passwortphrasen stimmen nicht überein</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="87"/> <source>Caps Lock is on</source> - <translation type="unfinished"></translation> + <translation>Feststelltaste ist eingeschaltet</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="91"/> - <source>Buddled Pinentry</source> + <source>Bundled Pinentry</source> <translation type="unfinished"></translation> </message> <message> + <source>Buddled Pinentry</source> + <translation type="vanished">Pineingabe</translation> + </message> + <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="95"/> <source>Confirm</source> <translation type="unfinished">Bestätigen</translation> @@ -4770,7 +5033,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/SignersPicker.cpp" line="73"/> <source>Signers Picker</source> - <translation type="unfinished"></translation> + <translation>Signierungswähler</translation> </message> </context> <context> @@ -4858,7 +5121,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp" line="301"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation>Unbekannter Fehler ist aufgetreten</translation> </message> </context> <context> @@ -4918,56 +5181,56 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished">Verzeichnis öffnen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="143"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="203"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="422"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>Warning</source> <translation type="unfinished">Warnung</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="145"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="205"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="424"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> <source>Cannot read file %1: %2.</source> <translation type="unfinished">Kann Datei %1 nicht lesen: %2.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="152"/> <source>Open file</source> <translation type="unfinished">Datei öffnen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="222"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="221"/> <source>Save file</source> <translation type="unfinished">Datei speichern</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="282"/> <source>Unsaved document</source> <translation type="unfinished">Nicht gespeichertes Dokument</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="284"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> <source>The document "%1" has been modified. Do you want to save your changes?</source> <translation type="unfinished">Das Dokument "%1" wurde geändert. Wollen Sie Ihre Änderungen speichern?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="286"/> <source>Note:</source> <translation type="unfinished">Notiz:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="288"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> <source>If you don't save these files, all changes are lost.</source> <translation type="unfinished">Wenn Sie diese Dateien nicht speichern, gehen alle Änderungen verloren.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>No document to print</source> - <translation type="unfinished"></translation> + <translation>Kein Dokument für Ausdruck</translation> </message> </context> <context> @@ -5045,27 +5308,27 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="38"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="39"/> <source>Signatures Details</source> <translation type="unfinished">Unterschriftendetails</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="62"/> <source>No valid input found</source> <translation type="unfinished">Keine gültige Eingabe gefunden</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="71"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="72"/> <source>Error Validating signature</source> <translation type="unfinished">Fehler beim Validieren der Signatur</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> <source>File was signed on %1</source> <translation type="unfinished">Datei wurde am %1 signiert</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="76"/> <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="80"/> <source>It Contains</source> <translation type="unfinished">Es beinhaltet</translation> @@ -5079,154 +5342,154 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyKeyDetailBox</name> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="53"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="54"/> <source>Import from keyserver</source> <translation type="unfinished">Vom Schlüsselserver importieren</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="58"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="59"/> <source>Key not present with id 0x</source> <translation type="unfinished">Schlüssel nicht vorhanden mit der ID 0x</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Status</source> <translation type="unfinished">Status</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> <source>:</source> <translation type="unfinished">:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="65"/> <source>Key not present in key list</source> <translation type="unfinished">Schlüssel nicht in Schlüsselliste vorhanden</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="72"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="73"/> <source>A Signature</source> <translation type="unfinished">Eine Unterschrift</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="77"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="92"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="107"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="123"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="138"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="78"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="93"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="108"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="124"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="139"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="154"/> <source>Key Information is NOT Available</source> <translation type="unfinished">Schlüssel Informationen sind NICHT verfügbar</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="79"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="94"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="109"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="125"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="140"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="155"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="80"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="95"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="110"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="126"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="141"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="156"/> <source>Fingerprint</source> <translation type="unfinished">Fingerabdruck</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> <source>Cert Revoked</source> <translation type="unfinished">Zertifikat widerrufen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <source>Signature Expired</source> <translation type="unfinished">Signatur abgelaufen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> <source>Key Expired</source> <translation type="unfinished">Schlüssel abgelaufen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> <source>General Error</source> <translation type="unfinished">Allgemeiner Fehler</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Unknown Error </source> <translation type="unfinished">Unbekannter Fehler </translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="176"/> <source>Signer Name</source> <translation type="unfinished">Name des Unterzeichners</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="177"/> <source>Signer Email</source> <translation type="unfinished">E-Mail des Unterzeichners</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> <source>Key's Fingerprint</source> <translation type="unfinished">Fingerabdruck des Schlüssels</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="181"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> <source>Valid</source> <translation type="unfinished">Gültig</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="182"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> <source>Flags</source> <translation type="unfinished">Kennzeichnungen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="187"/> <source>Fully Valid</source> <translation type="unfinished">Voll gültig</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> <source>NOT Fully Valid</source> <translation type="unfinished">NICHT vollständig gültig</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="196"/> <source>Good</source> <translation type="unfinished">Gut</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="201"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="199"/> <source>Bad</source> <translation type="unfinished">Schlecht</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="202"/> <source>Expired</source> <translation type="unfinished">Abgelaufen</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="207"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="205"/> <source>Missing Key</source> <translation type="unfinished">Fehlender Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="210"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="208"/> <source>Revoked Key</source> <translation type="unfinished">Widerrufener Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="211"/> <source>Expired Key</source> <translation type="unfinished">Abgelaufener Schlüssel</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="216"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="214"/> <source>Missing CRL</source> <translation type="unfinished">Fehlende Zertifikatssperrliste</translation> </message> @@ -5273,90 +5536,94 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> </context> <context> - <name>QObject</name> + <name>QCoreApplication</name> <message> <location filename="../../../../src/cmd.cpp" line="49"/> <source>This is free software; see the source for copying conditions.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Dies ist freie Software. Beachten Sie den Quellcode für die Kopierbedingungen.</translation> </message> <message> <location filename="../../../../src/cmd.cpp" line="54"/> <source>Build DateTime: </source> - <translation type="unfinished"></translation> + <translation type="unfinished">Build DateTime:</translation> </message> <message> <location filename="../../../../src/cmd.cpp" line="55"/> <source>Build Version: </source> - <translation type="unfinished"></translation> + <translation type="unfinished">Build Version:</translation> </message> <message> <location filename="../../../../src/cmd.cpp" line="56"/> <source>Source Code Version: </source> - <translation type="unfinished"></translation> + <translation type="unfinished">Sourcecode Version:</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="196"/> - <source>GpgME inilization failed</source> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="294"/> + <source>GpgME initiation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="322"/> - <source>GpgME Context inilization failed</source> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="397"/> + <source>GpgME Context initiation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="331"/> - <source>Gpg Key Detabase inilization failed</source> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="406"/> + <source>Gpg Key Detabase initiation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="75"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="89"/> <source>File Hash Information</source> <translation type="unfinished">Datei-Hash-Informationen</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <source>filename</source> - <translation type="unfinished">Dateiname</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> + <source>Filename</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="92"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="100"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="108"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="95"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="99"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="104"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="110"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="116"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> <source>: </source> <translation type="unfinished">: </translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <source>file size(bytes)</source> - <translation type="unfinished">Dateigröße (Byte)</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="94"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="98"/> + <source>File Size</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="113"/> - <source>Error in Calculating File Hash </source> - <translation type="unfinished">Fehler beim Berechnen des Dateihashs </translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="123"/> + <source>Error: cannot read target file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="143"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> <source>target path doesn't exists</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Zielpfad existiert nicht</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="148"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="162"/> <source>do NOT have permission to write path</source> - <translation type="unfinished"></translation> + <translation type="unfinished">habe KEINE Schreibberechtigung für den Pfad</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="153"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="168"/> <source>do NOT have permission to read/write file</source> - <translation type="unfinished"></translation> + <translation type="unfinished">habe KEINE Lese-/Schreibberechtigung für die Datei</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="171"/> <source>Success</source> - <translation type="unfinished">Erfolg</translation> + <translation type="unfinished"></translation> </message> <message> <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> @@ -5369,19 +5636,106 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished">Sollte dieser Vorgang zu langsam sein, stellen Sie bitte die Keyserver-Adresse entsprechend in der gnupg-Konfigurationsdatei ein (abhängig von der Netzwerksituation in Ihrem Land oder Ihrer Region).</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="64"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="63"/> <source>Show Verify Details</source> <translation type="unfinished">Verifizierungsdetails anzeigen</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="73"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="71"/> <source>Public key not found locally</source> <translation type="unfinished">Öffentlicher Schlüssel lokal nicht gefunden</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="74"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="72"/> <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> <translation type="unfinished">Es gibt lokal keinen öffentlichen Zielschlüsselinhalt für GpgFrontend, um genügend Informationen über diese Signatur zu sammeln. Möchten Sie jetzt den öffentlichen Schlüssel vom Keyserver importieren?</translation> </message> </context> +<context> + <name>QObject</name> + <message> + <source>This is free software; see the source for copying conditions.</source> + <translation type="vanished">Dies ist freie Software. Beachten Sie den Quellcode für die Kopierbedingungen.</translation> + </message> + <message> + <source>Build DateTime: </source> + <translation type="vanished">Build DateTime:</translation> + </message> + <message> + <source>Build Version: </source> + <translation type="vanished">Build Version:</translation> + </message> + <message> + <source>Source Code Version: </source> + <translation type="vanished">Sourcecode Version:</translation> + </message> + <message> + <source>GpgME inilization failed</source> + <translation type="vanished">GpgME Initialisierung fehlgeschlagen</translation> + </message> + <message> + <source>GpgME Context inilization failed</source> + <translation type="vanished">GpgME Kontextinitialisierung fehlge</translation> + </message> + <message> + <source>Gpg Key Detabase inilization failed</source> + <translation type="vanished">Gpg Schlüsseldatenbankinitialisierung fehlgeschlagen</translation> + </message> + <message> + <source>File Hash Information</source> + <translation type="obsolete">Datei-Hash-Informationen</translation> + </message> + <message> + <source>filename</source> + <translation type="obsolete">Dateiname</translation> + </message> + <message> + <source>: </source> + <translation type="obsolete">: </translation> + </message> + <message> + <source>file size(bytes)</source> + <translation type="obsolete">Dateigröße (Byte)</translation> + </message> + <message> + <source>Error in Calculating File Hash </source> + <translation type="obsolete">Fehler beim Berechnen des Dateihashs </translation> + </message> + <message> + <source>target path doesn't exists</source> + <translation type="vanished">Zielpfad existiert nicht</translation> + </message> + <message> + <source>do NOT have permission to write path</source> + <translation type="vanished">habe KEINE Schreibberechtigung für den Pfad</translation> + </message> + <message> + <source>do NOT have permission to read/write file</source> + <translation type="vanished">habe KEINE Lese-/Schreibberechtigung für die Datei</translation> + </message> + <message> + <source>Success</source> + <translation type="obsolete">Erfolg</translation> + </message> + <message> + <source>Loading Gnupg Info...</source> + <translation type="obsolete">Gnupg-Info wird geladen...</translation> + </message> + <message> + <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> + <translation type="obsolete">Sollte dieser Vorgang zu langsam sein, stellen Sie bitte die Keyserver-Adresse entsprechend in der gnupg-Konfigurationsdatei ein (abhängig von der Netzwerksituation in Ihrem Land oder Ihrer Region).</translation> + </message> + <message> + <source>Show Verify Details</source> + <translation type="obsolete">Verifizierungsdetails anzeigen</translation> + </message> + <message> + <source>Public key not found locally</source> + <translation type="obsolete">Öffentlicher Schlüssel lokal nicht gefunden</translation> + </message> + <message> + <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> + <translation type="obsolete">Es gibt lokal keinen öffentlichen Zielschlüsselinhalt für GpgFrontend, um genügend Informationen über diese Signatur zu sammeln. Möchten Sie jetzt den öffentlichen Schlüssel vom Keyserver importieren?</translation> + </message> +</context> </TS> diff --git a/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts b/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts index 78c52863..5f676fcc 100644 --- a/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts +++ b/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts @@ -25,7 +25,7 @@ </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> - <source>Gernal State</source> + <source>General State</source> <translation type="unfinished"></translation> </message> <message> @@ -55,22 +55,22 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="68"/> <source>Message Integrity Protection</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Protection de l'intégrité des messages</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="74"/> <source>Symmetric Encryption Algorithm</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Algorithme de cryptage symétrique</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="79"/> <source>Session Key</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Clé de session</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="83"/> <source>German Encryption Standards</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Normes allemandes de cryptage</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="91"/> @@ -128,7 +128,7 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="63"/> <source>Recipients</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Bénéficiaires</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="65"/> @@ -184,50 +184,85 @@ <translation type="unfinished">Détacher</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="76"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="79"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="111"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="77"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <source>Signed By</source> + <translation type="unfinished">Signé par</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="91"/> + <source>Key ID</source> + <translation type="unfinished">Identifiant de clé</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="89"/> + <source>Subkey</source> + <translation type="unfinished">Sous-clé</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="92"/> + <source>Primary Key</source> + <translation type="unfinished">Clé primaire</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="94"/> + <source>Key Create Date</source> + <translation type="unfinished">Date de création de la clé</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="99"/> + <source><unknown></source> + <translation type="unfinished"><unknown></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> + <source>Sign Date</source> + <translation type="unfinished">Date de la signature</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="130"/> <source>Signer</source> <translation type="unfinished">Signataire</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="82"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="101"/> <source>Public Key Algo</source> <translation type="unfinished">Algo. de clé publique</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="84"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="103"/> <source>Hash Algo</source> <translation type="unfinished">Algo. de hachage</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> <source>Date</source> - <translation type="unfinished">Date</translation> + <translation type="obsolete">Date</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> <source>UTC</source> <translation type="unfinished">UTC</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> <source>Localized</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Localisé</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="124"/> <source>Invalid Signers</source> <translation type="unfinished">Signataires non valides</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="113"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="132"/> <source>Fingerprint</source> <translation type="unfinished">Empreinte digitale</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="115"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="134"/> <source>Reason</source> <translation type="unfinished">Raison</translation> </message> @@ -235,119 +270,167 @@ <context> <name>GpgFrontend::GpgVerifyResultAnalyse</name> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="44"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="43"/> <source>Verify Operation</source> <translation type="unfinished">Vérifier le fonctionnement</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="47"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="46"/> <source>Success</source> <translation type="unfinished">Succès</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="49"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="48"/> <source>Failed</source> <translation type="unfinished">Échoué</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> <source>Signed On</source> <translation type="unfinished">Signé le</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> <source>UTC</source> <translation type="unfinished">UTC</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> <source>Localized</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Localisé</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="65"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="64"/> <source>Signatures List</source> <translation type="unfinished">Liste des signatures</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="71"/> <source>Signature [%1]:</source> <translation type="unfinished">Signature [%1] :</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="73"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> <source>Status</source> <translation type="unfinished">Statut</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="76"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="75"/> <source>A Bad Signature.</source> <translation type="unfinished">Une mauvaise signature.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="78"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="77"/> <source>This Signature is invalid.</source> <translation type="unfinished">Cette signature est invalide.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="83"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="82"/> <source>A</source> <translation type="unfinished">UNE</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="85"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="84"/> <source>Good</source> <translation type="unfinished">Bon</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="87"/> <source>Bad</source> <translation type="unfinished">Mauvais</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="91"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="90"/> <source>Expired</source> <translation type="unfinished">Expiré</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="94"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="93"/> <source>Missing Key's</source> <translation type="unfinished">Touches manquantes</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="97"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="96"/> <source>Revoked Key's</source> <translation type="unfinished">Clés révoquées</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="100"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="99"/> <source>Expired Key's</source> <translation type="unfinished">Clés expirées</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="103"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="102"/> <source>Missing CRL's</source> <translation type="unfinished">CRL manquantes</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="107"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="106"/> <source>Signature Fully Valid.</source> <translation type="unfinished">Signature entièrement valide.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="108"/> <source>Signature Not Fully Valid.</source> <translation type="unfinished">Signature pas entièrement valide.</translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <source>Tips</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="110"/> - <source>(Adjust Trust Level to make it Fully Vaild)</source> + <source>Adjust Trust Level to make it Fully Vaild</source> <translation type="unfinished"></translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> + <source>Fingerprint</source> + <translation type="unfinished">Empreinte digitale</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="186"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="229"/> + <source><unknown></source> + <translation type="unfinished"><unknown></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> + <source>Sign Date</source> + <translation type="unfinished">Date de la signature</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="217"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="220"/> + <source>Key ID</source> + <translation type="unfinished">Identifiant de clé</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="218"/> + <source>Subkey</source> + <translation type="unfinished">Sous-clé</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="221"/> + <source>Primary Key</source> + <translation type="unfinished">Clé primaire</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="223"/> + <source>Key Create Date</source> + <translation type="unfinished">Date de création de la clé</translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="117"/> <source>Key is NOT present with ID 0x</source> <translation type="unfinished">La clé n'est PAS présente avec l'ID 0x</translation> @@ -358,67 +441,67 @@ <translation type="unfinished">Une signature n'a PAS pu être vérifiée en raison d'une clé manquante</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="131"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="132"/> <source>A signature is valid but the key used to verify the signature has been revoked</source> <translation type="unfinished">Une signature est valide mais la clé utilisée pour vérifier la signature a été révoquée</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="140"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="141"/> <source>A signature is valid but expired</source> <translation type="unfinished">Une signature est valide mais a expiré</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="147"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="148"/> <source>A signature is valid but the key used to verify the signature has expired.</source> <translation type="unfinished">Une signature est valide mais la clé utilisée pour vérifier la signature a expiré.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="155"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="156"/> <source>There was some other error which prevented the signature verification.</source> <translation type="unfinished">Il y avait une autre erreur qui a empêché la vérification de la signature.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="163"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="164"/> <source>Error for key with fingerprint</source> <translation type="unfinished">Erreur pour la clé avec empreinte digitale</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="174"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="175"/> <source>Could not find information that can be used for verification.</source> <translation type="unfinished">Impossible de trouver des informations pouvant être utilisées pour la vérification.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="188"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="193"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> <source>Signed By</source> <translation type="unfinished">Signé par</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> <source>Unknown</source> - <translation type="unfinished">Inconnu</translation> + <translation type="obsolete">Inconnu</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="197"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="234"/> <source>Public Key Algo</source> <translation type="unfinished">Algo. de clé publique</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="201"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="191"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="236"/> <source>Hash Algo</source> <translation type="unfinished">Algo. de hachage</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> <source>Date</source> - <translation type="unfinished">Date</translation> + <translation type="obsolete">Date</translation> </message> </context> <context> <name>GpgFrontend::Module::Integrated::GnuPGInfoGatheringModule::GnuPGInfoGatheringModule</name> <message> - <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="124"/> + <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="123"/> <source>Embedded In</source> <translation type="unfinished">Intégré dans</translation> </message> @@ -586,138 +669,152 @@ <context> <name>GpgFrontend::UI::CommonUtils</name> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="185"/> <source>GnuPG Context Loading Failed</source> <translation type="unfinished">Échec du chargement du contexte GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="189"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> <source>Gnupg(gpg) is not installed correctly, please follow <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> in FAQ to install Gnupg and then open GpgFrontend. <br />Or, you can open GnuPG Controller to set a custom GnuPG which GpgFrontend should use. Then, GpgFrontend will restart. <br /><br />Breif Reason: %1</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Gnupg(gpg) n'est pas installé correctement, veuillez suivre <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> dans la FAQ pour installer Gnupg et ensuite ouvrir GpgFrontend. <br />Ou, vous pouvez ouvrir GnuPG Controller pour définir un GnuPG personnalisé que GpgFrontend devrait utiliser. Ensuite, GpgFrontend redémarrera. <br /><br />Raison de la rupture : %1</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> <source>No keys found to import</source> - <translation type="unfinished">Aucune clé trouvée à importer</translation> + <translation type="obsolete">Aucune clé trouvée à importer</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="437"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="445"/> <source>Timeout</source> <translation type="unfinished">Temps libre</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="252"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="250"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="381"/> <source>Success</source> <translation type="unfinished">Succès</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="253"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="251"/> <source>Gpg Operation succeed.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Opération Gpg réussie.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="263"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="365"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="261"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> <source>Failure</source> <translation type="unfinished">Échec</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="264"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="262"/> <source>Gpg Operation failed. Error code: %1 Source: %2 Description: %3</source> - <translation type="unfinished"></translation> + <translation type="unfinished">L'opération Gpg a échoué. + +Code d'erreur : %1 +Source : %2 +Description : %3</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="294"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="497"/> <source>Error</source> <translation type="unfinished">Erreur</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="285"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="279"/> <source>Open Key</source> <translation type="unfinished">Ouvrir la clé</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="286"/> <source>Key Files</source> - <translation type="unfinished">Fichiers clés</translation> + <translation type="obsolete">Fichiers clés</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="280"/> <source>Keyring files</source> <translation type="unfinished">Fichiers de porte-clés</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="292"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="288"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="295"/> + <source>The target file is too large for a keyring.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="301"/> <source>File Open Failed</source> <translation type="unfinished">L'ouverture du fichier a échoué</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="293"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="302"/> <source>Failed to open file: </source> <translation type="unfinished">Échec de l'ouverture du fichier:</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="346"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="354"/> <source>Processing</source> <translation type="unfinished">Traitement</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="366"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> <source>Failed to execute command.</source> <translation type="unfinished">Échec de l'exécution de la commande.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="382"/> <source>Succeed in executing command.</source> <translation type="unfinished">Réussir l'exécution de la commande.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="376"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="384"/> <source>Warning</source> <translation type="unfinished">Avertissement</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="377"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="385"/> <source>Finished executing command.</source> <translation type="unfinished">Exécution de la commande terminée.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="398"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="406"/> <source>Default Keyserver Not Found</source> <translation type="unfinished">Serveur de clés par défaut introuvable</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="399"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="407"/> <source>Cannot read default keyserver from your settings, please set a default keyserver first</source> <translation type="unfinished">Impossible de lire le serveur de clés par défaut à partir de vos paramètres, veuillez d'abord définir un serveur de clés par défaut</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="434"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="442"/> <source>Key Not Found</source> <translation type="unfinished">Clé introuvable</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="440"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="448"/> <source>Key Server Not Found</source> <translation type="unfinished">Serveur de clé introuvable</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="443"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="451"/> <source>Connection Error</source> <translation type="unfinished">Erreur de connexion</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="454"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="462"/> <source>The key has been updated</source> <translation type="unfinished">La clé a été mise à jour</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="456"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="464"/> <source>No need to update the key</source> <translation type="unfinished">Pas besoin de mettre à jour la clé</translation> </message> @@ -902,12 +999,12 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FilePage</name> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="63"/> <source>Show Hidden File</source> <translation type="unfinished">Afficher le fichier caché</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="70"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="69"/> <source>Show System File</source> <translation type="unfinished">Afficher le fichier système</translation> </message> @@ -915,131 +1012,136 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FileTreeView</name> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="84"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="97"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="219"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="242"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="294"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="90"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="103"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="166"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="212"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="234"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="275"/> <source>Error</source> <translation type="unfinished">Erreur</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="85"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="91"/> <source>The path is not exists, unprivileged or unreachable.</source> <translation type="unfinished">Le chemin n'existe pas, non privilégié ou inaccessible.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="98"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="104"/> <source>The file is unprivileged or unreachable.</source> <translation type="unfinished">Le fichier n'est pas privilégié ou inaccessible.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="157"/> <source>Warning</source> <translation type="unfinished">Avertissement</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="159"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> <source>Are you sure you want to delete it?</source> <translation type="unfinished">Es-tu sûr de vouloir le supprimer ?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> <source>Unable to delete the file or folder.</source> <translation type="unfinished">Impossible de supprimer le fichier ou le dossier.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="176"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="189"/> <source>Make New Directory</source> <translation type="unfinished">Créer un nouveau dossier</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="178"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> <source>Directory Name</source> <translation type="unfinished">Nom du dossier</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Create Empty File</source> <translation type="unfinished">Créer un fichier vide</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Filename (you can given extension)</source> <translation type="unfinished">Nom de fichier (vous pouvez donner l'extension)</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="220"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="243"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="235"/> <source>Unable to create the file.</source> <translation type="unfinished">Impossible de créer le fichier.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="314"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="298"/> <source>Rename</source> <translation type="unfinished">Renommer</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> <source>New Filename</source> <translation type="unfinished">Nouveau nom de fichier</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="295"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="276"/> <source>Unable to rename the file or folder.</source> <translation type="unfinished">Impossible de renommer le fichier ou le dossier.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="293"/> <source>Open</source> <translation type="unfinished">Ouvrir</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="319"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="303"/> <source>Delete</source> <translation type="unfinished">Effacer</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="324"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> <source>Calculate Hash</source> <translation type="unfinished">Calculer le hachage</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="329"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="313"/> <source>Directory</source> <translation type="unfinished">Annuaire</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="334"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="318"/> <source>File</source> <translation type="unfinished">Déposer</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="339"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="323"/> <source>Compress...</source> <translation type="unfinished">Compresse...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="346"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="330"/> <source>Open with Default System Application</source> <translation type="unfinished">Ouvrir avec l&#39;application système par défaut</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="335"/> <source>New</source> <translation type="unfinished">Nouveau</translation> </message> + <message> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="393"/> + <source>Calculating</source> + <translation type="unfinished">Calculer</translation> + </message> </context> <context> <name>GpgFrontend::UI::FindWidget</name> <message> - <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="46"/> + <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="45"/> <source>Find</source> <translation type="unfinished">Trouve</translation> </message> @@ -1103,23 +1205,28 @@ Description: %3</source> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="63"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="79"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="81"/> <source>Clear All Log (Total Size: %1)</source> <translation type="unfinished">Effacer tout le journal (taille totale : %1)</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="66"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="93"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="95"/> <source>Clear All Data Objects (Total Size: %1)</source> <translation type="unfinished">Effacer tous les objets de données (taille totale : %1)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="69"/> + <source>Reveal in File Explorer</source> + <translation type="unfinished">Révéler dans l'explorateur de fichiers</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="88"/> <source>Confirm</source> <translation type="unfinished">Confirmer</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="87"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="89"/> <source>Are you sure you want to clear all data objects? This will result in loss of all cached form positions, statuses, key servers, etc.</source> <translation type="unfinished">Voulez-vous vraiment effacer tous les objets de données ? Cela entraînera la perte de toutes les positions de formulaire mises en cache, des statuts, des serveurs de clés, etc.</translation> @@ -1143,9 +1250,13 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Avancée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> <source>No ASCII Mode</source> - <translation type="unfinished">Pas de mode ASCII</translation> + <translation type="obsolete">Pas de mode ASCII</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> + <source>Use Binary Mode for File Operations</source> + <translation type="unfinished">Utiliser le mode binaire pour les opérations sur les fichiers</translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="51"/> @@ -1154,86 +1265,92 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="52"/> + <source>Enable GpgME Debug Log</source> + <translation type="unfinished">Activer le journal de débogage de GpgME</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> <source>Use Custom GnuPG</source> <translation type="unfinished">Utiliser GnuPG personnalisé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="54"/> <source>Select GnuPG Path</source> <translation type="unfinished">Sélectionnez le chemin GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="56"/> <source>Use Custom GnuPG Key Database Path</source> <translation type="unfinished">Utiliser le chemin personnalisé de la base de données de clés GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="58"/> <source>Select Key Database Path</source> <translation type="unfinished">Sélectionnez le chemin de la base de données de clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="60"/> + <source>Restart Gpg Agent on start</source> + <translation type="unfinished">Redémarrer l'agent Gpg au démarrage</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="64"/> <source>Tips: please select a directroy where "gpgconf" is located in.</source> <translation type="unfinished">Conseils : veuillez sélectionner un directroy où se trouve "gpgconf".</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="66"/> <source>Tips: notice that modify any of these settings will cause an Application restart.</source> <translation type="unfinished">Conseils : notez que la modification de l'un de ces paramètres entraînera un redémarrage de l'application.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="95"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="98"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="118"/> <source>Open Directory</source> <translation type="unfinished">Ouvrir le répertoire</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="171"/> <source>GnuPG Controller</source> <translation type="unfinished">Contrôleur GnuPGName</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="331"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="339"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="346"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="358"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="356"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="375"/> <source>Illegal GnuPG Path</source> <translation type="unfinished">Chemin GnuPG illégal</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="332"/> <source>Target GnuPG Path is empty.</source> - <translation type="unfinished">Le chemin GnuPG cible est vide.</translation> + <translation type="obsolete">Le chemin GnuPG cible est vide.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="340"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="357"/> <source>Target GnuPG Path is not an exists readable directory.</source> <translation type="unfinished">Le chemin GnuPG cible n&#39;est pas un répertoire lisible existant.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="347"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="364"/> <source>Target GnuPG Path is not an absolute path.</source> <translation type="unfinished">Le chemin GnuPG cible n&#39;est pas un chemin absolu.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> <source>Target GnuPG Path contains no "gpgconf" executable.</source> <translation type="unfinished">Le chemin GnuPG cible ne contient pas d&#39;exécutable &quot;gpgconf&quot;.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="369"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="389"/> <source>Illegal GnuPG Key Database Path</source> <translation type="unfinished">Chemin d'accès à la base de données de clés GnuPG illégal</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="370"/> <source>Target GnuPG Key Database Path is empty.</source> - <translation type="unfinished">Le chemin d&#39;accès à la base de données de clés GnuPG cible est vide.</translation> + <translation type="obsolete">Le chemin d&#39;accès à la base de données de clés GnuPG cible est vide.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="377"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="390"/> <source>Target GnuPG Key Database Path is not an exists readable directory.</source> <translation type="unfinished">Le chemin cible de la base de données de clés GnuPG n&#39;est pas un répertoire lisible existant.</translation> </message> @@ -1247,7 +1364,7 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Description</source> <translation type="unfinished">Description</translation> </message> @@ -1273,31 +1390,50 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="48"/> + <source>Directories</source> + <translation type="unfinished">Annuaires</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="49"/> + <source>Options</source> + <translation type="unfinished">Options</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Directory Type</source> + <translation type="unfinished">Type de répertoire</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Path</source> + <translation type="unfinished">Chemin d'accès</translation> + </message> + <message> <source>Configurations</source> - <translation type="unfinished">Configurations</translation> + <translation type="obsolete">Configurations</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Component</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Composant</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Group</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Groupe</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Key</source> <translation type="unfinished">Clé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Default Value</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Valeur par défaut</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="91"/> <source>Value</source> <translation type="unfinished">Valeur</translation> </message> @@ -1350,7 +1486,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="167"/> <source>Text (*.txt)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Text (*.txt)</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="176"/> @@ -1447,27 +1583,27 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> <source>KeyPair</source> <translation type="unfinished">Paire de clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> <source>UIDs</source> <translation type="unfinished">UID</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="45"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="50"/> <source>Subkeys</source> <translation type="unfinished">Sous-clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="52"/> <source>Operations</source> <translation type="unfinished">Opérations</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="69"/> <source>Key Details</source> <translation type="unfinished">Détails clés</translation> </message> @@ -1507,7 +1643,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/key_generate/KeygenDialog.cpp" line="161"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Une erreur inconnue s'est produite</translation> </message> <message> <location filename="../../../../src/ui/dialog/key_generate/KeygenDialog.cpp" line="197"/> @@ -1611,108 +1747,113 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyImportDetailDialog</name> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="44"/> <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="61"/> <source>Key Import Details</source> <translation type="unfinished">Détails de l'importation de clé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="45"/> <source>No keys found to import</source> <translation type="unfinished">Aucune clé trouvée à importer</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="73"/> <source>General key info</source> <translation type="unfinished">Informations générales sur les clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="77"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="76"/> <source>Considered</source> <translation type="unfinished">Pris en considération</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="83"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="82"/> <source>Public unchanged</source> <translation type="unfinished">Public inchangé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="89"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="88"/> <source>Imported</source> <translation type="unfinished">Importé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="95"/> <source>Not Imported</source> <translation type="unfinished">Non importé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="103"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="102"/> <source>Private Read</source> <translation type="unfinished">Lecture privée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="110"/> <source>Private Imported</source> <translation type="unfinished">Privé Importé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="118"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="117"/> <source>Private Unchanged</source> <translation type="unfinished">Privé Inchangé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="123"/> + <source>New Revocations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Name</source> <translation type="unfinished">Nom</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Email</source> <translation type="unfinished">E-mail</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Status</source> <translation type="unfinished">Statut</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="140"/> <source>Fingerprint</source> <translation type="unfinished">Empreinte digitale</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="160"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> <source>Private</source> <translation type="unfinished">Privé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="163"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> <source>Public</source> <translation type="unfinished">Publique</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> <source>Unchanged</source> <translation type="unfinished">Inchangé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="175"/> <source>New Key</source> <translation type="unfinished">Nouvelle clé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="178"/> <source>New Subkey</source> <translation type="unfinished">Nouvelle sous-clé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="176"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="182"/> <source>New Signature</source> <translation type="unfinished">Nouvelle signature</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="180"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="186"/> <source>New UID</source> <translation type="unfinished">Nouvel UID</translation> </message> @@ -1765,82 +1906,87 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Rechercher des clés...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Select</source> <translation type="unfinished">Sélectionner</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Type</source> <translation type="unfinished">Taper</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Name</source> <translation type="unfinished">Nom</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Email Address</source> <translation type="unfinished">Adresse e-mail</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Usage</source> <translation type="unfinished">Usage</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Trust</source> <translation type="unfinished">Confiance</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Finger Print</source> <translation type="unfinished">Empreinte digitale</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="183"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> + <source>Key ID</source> + <translation type="unfinished">Identifiant de clé</translation> + </message> + <message> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="186"/> <source>Refreshing Key List...</source> <translation type="unfinished">Actualisation de la liste des clés...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> <source>Import Keys</source> <translation type="unfinished">Importer des clés</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="353"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="356"/> <source>You've dropped something on the table.</source> <translation type="unfinished">Vous avez fait tomber quelque chose sur la table.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> <source>GpgFrontend will now try to import key(s).</source> <translation type="unfinished">GpgFrontend va maintenant essayer d'importer des clés.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="360"/> <source>Always import without bothering.</source> <translation type="unfinished">Importez toujours sans vous soucier.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="452"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="455"/> <source>Key List Refreshed.</source> <translation type="unfinished">Liste des clés actualisée.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="473"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="476"/> <source>Syncing Key List...</source> <translation type="unfinished">Synchronisation de la liste des clés...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="481"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="484"/> <source>Sync [%1/%2] %3 %4</source> <translation type="unfinished">Synchronisation [%1/%2] %3 %4</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="491"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="494"/> <source>Key List Sync Done.</source> <translation type="unfinished">Synchronisation de la liste des clés terminée.</translation> </message> @@ -1848,347 +1994,368 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyMgmt</name> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> <source>All</source> <translation type="unfinished">Tous</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="61"/> <source>Only Public Key</source> <translation type="unfinished">Clé publique uniquement</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="71"/> <source>Has Private Key</source> <translation type="unfinished">Possède une clé privée</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="77"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="81"/> <source>No Primary Key</source> <translation type="unfinished">Pas de clé primaire</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="86"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="90"/> <source>Revoked</source> <translation type="unfinished">Révoqué</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="94"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="98"/> <source>Expired</source> <translation type="unfinished">Expiré</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="123"/> <source>KeyPair Management</source> <translation type="unfinished">Gestion des paires de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="144"/> <source>Open</source> <translation type="unfinished">Ouvrir</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="142"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> <source>Open Key File</source> <translation type="unfinished">Ouvrir le fichier clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="149"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="153"/> <source>Close</source> <translation type="unfinished">proche</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="152"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="156"/> <source>New Keypair</source> <translation type="unfinished">Nouvelle paire de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> <source>Generate KeyPair</source> <translation type="unfinished">Générer une paire de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> <source>New Subkey</source> <translation type="unfinished">Nouvelle sous-clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> <source>Generate Subkey For Selected KeyPair</source> <translation type="unfinished">Générer une sous-clé pour la paire de clés sélectionnée</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="257"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="171"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> <source>File</source> <translation type="unfinished">Déposer</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> <source>Import New Key From File</source> <translation type="unfinished">Importer une nouvelle clé à partir d'un fichier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> <source>Clipboard</source> <translation type="unfinished">Presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="181"/> <source>Import New Key From Clipboard</source> <translation type="unfinished">Importer une nouvelle clé du presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="188"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> <source>Keyserver</source> <translation type="unfinished">Serveur de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="196"/> <source>Import New Key From Keyserver</source> <translation type="unfinished">Importer une nouvelle clé à partir du serveur de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="198"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="531"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="202"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Key Package</source> <translation type="unfinished">Paquet de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="201"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> <source>Import Key(s) From a Key Package</source> <translation type="unfinished">Importer des clés à partir d'un package de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> <source>Export To Clipboard</source> <translation type="unfinished">Exporter vers le presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> <source>Export Checked Key(s) To Clipboard</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Exporter les clés vérifiées vers le presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="217"/> <source>Export As Key Package</source> <translation type="unfinished">Exporter en tant que package clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> <source>Export Checked Key(s) To a Key Package</source> <translation type="unfinished">Exporter les clés vérifiées vers un package de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="224"/> <source>Export As OpenSSH</source> <translation type="unfinished">Exporter en tant qu'OpenSSH</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="223"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> <source>Export Checked Key As OpenSSH Format to File</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Exporter la clé vérifiée au format OpenSSH vers un fichier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="231"/> <source>Delete Selected Key(s)</source> <translation type="unfinished">Supprimer la ou les clés sélectionnées</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="228"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> <source>Delete the Selected keys</source> <translation type="unfinished">Supprimer les clés sélectionnées</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="236"/> <source>Delete Checked Key(s)</source> <translation type="unfinished">Supprimer les clés cochées</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="233"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="237"/> <source>Delete the Checked keys</source> <translation type="unfinished">Supprimer les clés cochées</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="238"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="242"/> <source>Show Key Details</source> <translation type="unfinished">Afficher les détails clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="239"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> <source>Show Details for this Key</source> <translation type="unfinished">Afficher les détails de cette clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="244"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="248"/> <source>Set Owner Trust Level</source> <translation type="unfinished">Définir le niveau de confiance du propriétaire</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="281"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="285"/> <source>Key</source> <translation type="unfinished">Clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="262"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> <source>Generate Key</source> <translation type="unfinished">Générer la clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="294"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="270"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="298"/> <source>Import Key</source> <translation type="unfinished">Importer la clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="272"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="276"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="306"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="307"/> <source>Export Key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="293"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="297"/> <source>Import key</source> <translation type="unfinished">Importer la clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="302"/> - <source>Export key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="336"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="340"/> <source>Deleting Keys</source> <translation type="unfinished">Suppression de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="337"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="341"/> <source>Are you sure that you want to delete the following keys?</source> <translation type="unfinished">Êtes-vous sûr de vouloir supprimer les clés suivantes ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="343"/> <source>The action can not be undone.</source> <translation type="unfinished">L'action ne peut pas être annulée.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="404"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="416"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="483"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="507"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="551"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="408"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="420"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="487"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="498"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="511"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="541"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="549"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="565"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="573"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="589"/> <source>Error</source> <translation type="unfinished">Erreur</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> <source>Key Not Found.</source> <translation type="unfinished">Clé introuvable.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="379"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="462"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="468"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="370"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="383"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="466"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="472"/> <source>Forbidden</source> <translation type="unfinished">Interdit</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="367"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="371"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="384"/> <source>Please check some keys before doing this operation.</source> <translation type="unfinished">Veuillez vérifier certaines touches avant de faire cette opération.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="372"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="376"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="524"/> <source>key(s) exported</source> <translation type="unfinished">clé(s) exportée(s)</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="396"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="475"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="400"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="479"/> <source>Exporting</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Exportation</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="405"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="417"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="495"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="409"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="421"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="488"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="499"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Une erreur inconnue s'est produite</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="438"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="442"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="452"/> <source>Invalid Operation</source> <translation type="unfinished">Opération invalide</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="439"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="443"/> <source>Please select one KeyPair before doing this operation.</source> <translation type="unfinished">Veuillez sélectionner une KeyPair avant de faire cette opération.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="449"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="453"/> <source>If a key pair does not have a private key then it will not be able to generate sub-keys.</source> <translation type="unfinished">Si une paire de clés n'a pas de clé privée, elle ne pourra pas générer de sous-clés.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="463"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="467"/> <source>Please check a key before performing this operation.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="469"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="473"/> <source>This operation accepts just a single key.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="512"/> <source>This key may not be able to export as OpenSSH format. Please check the key-size of the subkey(s) used to sign.</source> <translation type="unfinished">Cette clé peut ne pas être en mesure d'exporter au format OpenSSH. Veuillez vérifier la taille de la ou des sous-clés utilisées pour signer.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="515"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="519"/> <source>Export OpenSSH Key To File</source> <translation type="unfinished">Exporter la clé OpenSSH vers un fichier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="516"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> <source>OpenSSH Public Key Files</source> <translation type="unfinished">Fichiers de clé publique OpenSSH</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="530"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Import Key Package</source> <translation type="unfinished">Importer le paquet de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="534"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="542"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="566"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="550"/> + <source>The target file is too large for a key package.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="555"/> <source>Import Key Package Passphrase File</source> <translation type="unfinished">Importer le fichier de mot de passe du package de clés</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="535"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="556"/> <source>Key Package Passphrase File</source> <translation type="unfinished">Fichier de mot de passe du package de clé</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="545"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="574"/> + <source>The target file is too large for a key package passphrase.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="580"/> + <source>Importing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="596"/> <source>key(s) imported</source> <translation type="unfinished">clé(s) importée(s)</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="552"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="590"/> <source>An error occur in importing key package.</source> <translation type="unfinished">Une erreur s'est produite lors de l'importation du package de clés.</translation> </message> @@ -2374,17 +2541,17 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">N'expire jamais</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="258"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="257"/> <source>No Data</source> <translation type="unfinished">Pas de données</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="275"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="274"/> <source>Warning: The primary key has expired.</source> <translation type="unfinished">Avertissement : La clé primaire a expiré.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="279"/> <source>Warning: The primary key has been revoked.</source> <translation type="unfinished">Avertissement : La clé primaire a été révoquée.</translation> </message> @@ -2392,201 +2559,256 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyPairOperaTab</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="53"/> <source>General Operations</source> <translation type="unfinished">Opérations générales</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="59"/> <source>Export Public Key</source> <translation type="unfinished">Exporter la clé publique</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="65"/> <source>Export Private Key</source> <translation type="unfinished">Exporter la clé privée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="70"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="72"/> <source>Modify Expiration Datetime (Primary Key)</source> <translation type="unfinished">Modifier la date d'expiration (clé principale)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="73"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="75"/> <source>Modify Password</source> <translation type="unfinished">Modifier le mot de passe</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="92"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="93"/> <source>Key Server Operation (Pubkey)</source> <translation type="unfinished">Fonctionnement du serveur de clés (Pubkey)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="100"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="177"/> <source>Generate Revoke Certificate</source> <translation type="unfinished">Générer un certificat de révocation</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="106"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="107"/> <source>Modify TOFU Policy</source> <translation type="unfinished">Modifier la politique TOFU</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="101"/> + <source>Revoke Certificate Operation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="114"/> <source>Set Owner Trust Level</source> <translation type="unfinished">Définir le niveau de confiance du propriétaire</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="135"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="138"/> <source>Upload Key Pair to Key Server</source> <translation type="unfinished">Télécharger la paire de clés sur le serveur de clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="143"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="146"/> <source>Sync Key Pair From Key Server</source> <translation type="unfinished">Synchroniser la paire de clés à partir du serveur de clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="158"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="161"/> <source>Export Full Secret Key</source> <translation type="unfinished">Exporter la clé secrète complète</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="164"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="167"/> <source>Export Shortest Secret Key</source> <translation type="unfinished">Exporter la clé secrète la plus courte</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="191"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="237"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="182"/> + <source>Import Revoke Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="298"/> <source>Export Key To File</source> <translation type="unfinished">Exporter la clé vers un fichier</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="192"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="238"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="299"/> <source>Key Files</source> <translation type="unfinished">Fichiers clés</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="197"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="243"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="286"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="261"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="304"/> <source>Export Error</source> <translation type="unfinished">Erreur d'exportation</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="198"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="244"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="287"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="216"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="262"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="305"/> <source>Couldn't open %1 for writing</source> <translation type="unfinished">Impossible d'ouvrir %1 pour l'écriture</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="206"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="224"/> <source>Exporting short private Key</source> <translation type="unfinished">Exportation d'une clé privée courte</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="207"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="272"/> <source>You are about to export your</source> <translation type="unfinished">Vous êtes sur le point d'exporter votre</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="208"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="226"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="273"/> <source> PRIVATE KEY </source> <translation type="unfinished"> CLÉ PRIVÉE</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="274"/> <source>This is NOT your Public Key, so DON'T give it away.</source> <translation type="unfinished">Ce n'est PAS votre clé publique, alors NE la donnez PAS.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="228"/> <source>Do you REALLY want to export your PRIVATE KEY in a Minimum Size?</source> <translation type="unfinished">Vous voulez VRAIMENT exporter votre CLÉ PRIVÉE en Taille Minimum ?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="231"/> <source>For OpenPGP keys it removes all signatures except for the latest self-signatures.</source> <translation type="unfinished">Pour les clés OpenPGP, toutes les signatures sont supprimées, à l'exception des dernières auto-signatures.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="253"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="271"/> <source>Exporting private Key</source> <translation type="unfinished">Exportation de la clé privée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="275"/> <source>Do you REALLY want to export your PRIVATE KEY?</source> <translation type="unfinished">Voulez-vous VRAIMENT exporter votre CLÉ PRIVÉE ?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="329"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="412"/> <source>Revocation Certificates</source> <translation type="unfinished">Certificats de révocation</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="326"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="340"/> <source>Generate revocation certificate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="357"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> <source>Policy Auto</source> <translation type="unfinished">Stratégie automatique</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="373"/> <source>Policy Good</source> <translation type="unfinished">Bonne politique</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="375"/> <source>Policy Bad</source> <translation type="unfinished">Politique incorrecte</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="377"/> <source>Policy Ask</source> <translation type="unfinished">Politique Demander</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="365"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="379"/> <source>Policy Unknown</source> <translation type="unfinished">Stratégie inconnue</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="352"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="366"/> <source>Modify TOFU Policy(Default is Auto)</source> <translation type="unfinished">Modifier la politique TOFU (la valeur par défaut est Auto)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="353"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="367"/> <source>Policy for the Key Pair:</source> <translation type="unfinished">Politique pour la paire de clés :</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="384"/> <source>Not Successful</source> <translation type="unfinished">Sans succès</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="385"/> <source>Modify TOFU policy not successfully.</source> <translation type="unfinished">Échec de la modification de la stratégie TOFU.</translation> </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="399"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="411"/> + <source>Import Key Revocation Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="400"/> + <source>You are about to import the</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="401"/> + <source>REVOCATION CERTIFICATE</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="402"/> + <source>A successful import will result in the key being irreversibly revoked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="404"/> + <source>Do you REALLY want to execute this operation?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="420"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="429"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="437"/> + <source>Error</source> + <translation type="unfinished">Erreur</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="421"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="438"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="430"/> + <source>The target file is too large for a key revocation certificate.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::KeyPairSubkeyTab</name> @@ -2682,12 +2904,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Date d'expiration</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="202"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="203"/> <source>Never Expire</source> <translation type="unfinished">N'expire jamais</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="239"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="240"/> <source>Never Expires</source> <translation type="unfinished">N'expire jamais</translation> </message> @@ -3073,12 +3295,22 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">%1 clés trouvées. Double-cliquez sur une clé pour l'importer.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="415"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="371"/> + <source>Warning</source> + <translation type="unfinished">Avertissement</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="372"/> + <source>Please select one KeyPair before doing this operation.</source> + <translation type="unfinished">Veuillez sélectionner une KeyPair avant de faire cette opération.</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="419"/> <source>Key Imported</source> <translation type="unfinished">Clé importée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="426"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="430"/> <source>Processing ...</source> <translation type="unfinished"></translation> </message> @@ -3162,32 +3394,32 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Signataires</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="80"/> <source>Expire Date</source> <translation type="unfinished">Date d'expiration</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="90"/> <source>Sign For Key's UID(s)</source> <translation type="unfinished">Signer pour les UID de la clé</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="114"/> <source>Unsuccessful Operation</source> <translation type="unfinished">Opération infructueuse</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="115"/> <source>Signature operation failed for UID %1</source> <translation type="unfinished">L'opération de signature a échoué pour l'UID %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> <source>Operation Complete</source> <translation type="unfinished">Opération terminée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="127"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> <source>The signature operation of the UID is complete</source> <translation type="unfinished">L'opération de signature de l'UID est terminée</translation> </message> @@ -3207,7 +3439,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="78"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Une erreur inconnue s'est produite</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="147"/> @@ -3377,546 +3609,556 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::MainWindow</name> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="164"/> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="167"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="158"/> <source>Critical error occur while loading GpgFrontend.</source> <translation type="unfinished">Une erreur critique s'est produite lors du chargement de GpgFrontend.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="157"/> <source>Loading Failed</source> <translation type="unfinished">Échec du chargement</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="48"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="100"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="143"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="162"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="187"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="214"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="257"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="276"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="293"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="307"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="325"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="342"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="356"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="375"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="430"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="449"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="503"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="528"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="568"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="605"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="631"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="671"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="709"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="735"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="768"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="801"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="811"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="836"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="72"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="119"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="175"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="208"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="244"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="320"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="242"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="250"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="145"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="164"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="260"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="311"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="329"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="347"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="361"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="435"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="454"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="489"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="536"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="613"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="639"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="717"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="743"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="775"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="822"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="847"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="121"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="210"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="246"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="322"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="368"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="255"/> <source>Error</source> <translation type="unfinished">Erreur</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="163"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="277"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="326"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="376"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="450"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="529"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="632"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="736"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="802"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="50"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="165"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="280"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="330"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="381"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="455"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="537"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="640"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="813"/> <source>Cannot read from file: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="176"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="178"/> <source>The target file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">Le fichier cible %1 existe déjà, devez-vous l'écraser ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="65"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="179"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="284"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="333"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="411"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="575"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="678"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="750"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="817"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="66"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="181"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="288"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="338"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="416"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="583"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="686"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="757"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="828"/> <source>Warning</source> <translation type="unfinished">Avertissement</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="188"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="294"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="343"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="569"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="672"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="745"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="190"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="298"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="577"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="680"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="752"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="823"/> <source>Cannot write to file: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="83"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="197"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="52"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="199"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="54"/> <source>Symmetric Encryption</source> <translation type="unfinished">Chiffrement symétrique</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="198"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="200"/> <source>No Key Selected. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">Aucune clé sélectionnée. Voulez-vous chiffrer avec un chiffrement symétrique à l'aide d'une phrase secrète ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="90"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="61"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="63"/> <source>Symmetrically Encrypting</source> <translation type="unfinished">Chiffrement symétrique</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="144"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="215"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="258"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="308"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="357"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="431"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="504"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="606"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="710"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="769"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="837"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="120"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="176"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="209"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="245"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="321"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="367"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="102"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="217"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="261"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="312"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="362"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="509"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="614"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="718"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="776"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="848"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="178"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="211"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="323"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="369"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Une erreur inconnue s'est produite</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="125"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="550"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="653"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="277"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="558"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="661"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> <source>Invalid KeyPair</source> <translation type="unfinished">Paire de clés invalide</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="240"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="654"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="278"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="242"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="559"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="662"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="280"/> <source>The selected keypair cannot be used for encryption.</source> <translation type="unfinished">La paire de clés sélectionnée ne peut pas être utilisée pour le chiffrement.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="552"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="655"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="128"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="560"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="663"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="281"/> <source>For example the Following Key:</source> <translation type="unfinished">Par exemple la clé suivante :</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="134"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="109"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="135"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="111"/> <source>Encrypting</source> <translation type="unfinished">Chiffrement</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="204"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="206"/> <source>Archiving & Symmetrically Encrypting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="250"/> <source>Archiving & Encrypting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="285"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="334"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="289"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="584"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="687"/> <source>The target file already exists, do you need to overwrite it?</source> <translation type="unfinished">Le fichier cible existe déjà, devez-vous l'écraser ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="299"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="200"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="202"/> <source>Decrypting</source> <translation type="unfinished">Déchiffrement</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/> <source>Decrypting & Extrating</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="385"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="539"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="642"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="145"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="390"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="547"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="650"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="147"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="267"/> <source>No Key Checked</source> <translation type="unfinished">Aucune clé vérifiée</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="386"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="540"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="643"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="391"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="548"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="651"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="148"/> <source>Please check the key in the key toolbox on the right.</source> <translation type="unfinished">Veuillez vérifier la clé dans la boîte à outils de clé à droite.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="393"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="98"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="154"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="398"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="156"/> <source>Invalid Operation</source> <translation type="unfinished">Opération invalide</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="394"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="399"/> <source>The selected key contains a key that does not actually have a sign usage.</source> <translation type="unfinished">La clé sélectionnée contient une clé qui n'a pas réellement d'utilisation de signe.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="396"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="401"/> <source>for example the Following Key:</source> <translation type="unfinished">par exemple la clé suivante :</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="412"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="417"/> <source>The signature file "%1" exists, do you need to overwrite it?</source> <translation type="unfinished">Le fichier de signature "%1" existe, devez-vous l'écraser ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="421"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="426"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="168"/> <source>Signing</source> <translation type="unfinished">Signature</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="470"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="475"/> <source>File to be Verified</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="471"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="476"/> <source>Please provide An ABSOLUTE Path If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="485"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="490"/> <source>Please select the appropriate origin file or signature file. Ensure that both are in this directory.</source> <translation type="unfinished">Veuillez sélectionner le fichier d'origine ou le fichier de signature approprié. Assurez-vous que les deux sont dans ce dossier.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="235"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="499"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="237"/> <source>Verifying</source> <translation type="unfinished">Vérification</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="594"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="308"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="602"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="310"/> <source>Encrypting and Signing</source> <translation type="unfinished">Chiffrement et signature</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="697"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="705"/> <source>Archiving & Encrypting & Signing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="818"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="758"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="829"/> <source>The output file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">Le fichier de sortie %1 existe déjà, devez-vous l'écraser ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="760"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="356"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="767"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="358"/> <source>Decrypting and Verifying</source> <translation type="unfinished">Déchiffrement et vérification</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="827"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="838"/> <source>Decrypting & Verifying & Extracting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="55"/> <source>No Key Checked. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">Aucune clé vérifiée. Voulez-vous chiffrer avec un chiffrement symétrique à l'aide d'une phrase de passe ?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="99"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> <source>The selected key contains a key that does not actually have a encrypt usage.</source> <translation type="unfinished">La clé sélectionnée contient une clé qui n'a pas réellement d'utilisation de chiffrement.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> <source>The selected key contains a key that does not actually have a signature usage.</source> <translation type="unfinished">La clé sélectionnée contient une clé qui n'a pas réellement d'utilisation de signature.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="266"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="268"/> <source>Please check some key in the key toolbox on the right.</source> <translation type="unfinished">Veuillez cocher une clé dans la boîte à outils des clés à droite.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> <source>Key Not Found.</source> <translation type="unfinished">Clé introuvable.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="101"/> - <source> (Local Time) </source> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/> + <source>Localize</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="105"/> + <source>UTC</source> + <translation type="unfinished">UTC</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/> + <source>Local Time</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="248"/> <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="251"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="256"/> <source>Cannot open this file. The file is TOO LARGE (>1MB) for GpgFrontend Text Editor.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="302"/> <source>GpgFrontend Upgradeable (New Version: %1).</source> <translation type="unfinished">GpgFrontend évolutif (nouvelle version : %1).</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="307"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/> <source>Withdrawn Version</source> <translation type="unfinished">Version retirée</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="309"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> <source>This version(%1) may have been withdrawn by the developer due to serious problems. Please stop using this version immediately and use the latest stable version.</source> <translation type="unfinished">Cette version (%1) a peut-être été retirée par le développeur en raison de graves problèmes. Veuillez cesser d'utiliser cette version immédiatement et utilisez la dernière version stable.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> <source>You can download the latest stable version(%1) on Github Releases Page.<br/></source> <translation type="unfinished">Vous pouvez télécharger la dernière version stable (%1) sur la page des versions de Github.<br/></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="324"/> <source>This maybe a BETA Version (Latest Stable Version: %1).</source> <translation type="unfinished">Il s'agit peut-être d'une version bêta (dernière version stable : %1).</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="45"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="44"/> <source>New</source> <translation type="unfinished">Nouveau</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="51"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="50"/> <source>Open a new file</source> <translation type="unfinished">Ouvrir un nouveau fichier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="54"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="53"/> <source>Open...</source> <translation type="unfinished">Ouvrir...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="56"/> <source>Open an existing file</source> <translation type="unfinished">Ouvrir un fichier existant</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="60"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="59"/> <source>File Browser</source> <translation type="unfinished">Navigateur de fichiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="62"/> <source>Open a file browser</source> <translation type="unfinished">Ouvrir un navigateur de fichiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="66"/> <source>Save File</source> <translation type="unfinished">Enregistrer le fichier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="70"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="69"/> <source>Save the current File</source> <translation type="unfinished">Enregistrer le fichier actuel</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="73"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="72"/> <source>Save As</source> <translation type="unfinished">Enregistrer sous</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="76"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="75"/> <source>Save the current File as...</source> <translation type="unfinished">Enregistrer le fichier actuel sous...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="79"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="78"/> <source>Print</source> <translation type="unfinished">Imprimer</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="82"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="81"/> <source>Print Document</source> <translation type="unfinished">Imprimer le document</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="84"/> <source>Close</source> <translation type="unfinished">proche</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="87"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="86"/> <source>Close file</source> <translation type="unfinished">Fermer le fichier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="90"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="89"/> <source>Quit</source> <translation type="unfinished">Quitter</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="93"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="92"/> <source>Quit Program</source> <translation type="unfinished">Quitter le programme</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="98"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="97"/> <source>Undo</source> <translation type="unfinished">annuler</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="99"/> <source>Undo Last Edit Action</source> <translation type="unfinished">Annuler la dernière action de modification</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="102"/> <source>Redo</source> <translation type="unfinished">Refaire</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="105"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="104"/> <source>Redo Last Edit Action</source> <translation type="unfinished">Rétablir la dernière action de modification</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="108"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="107"/> <source>Zoom In</source> <translation type="unfinished">Agrandir</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="112"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="111"/> <source>Zoom Out</source> <translation type="unfinished">Dézoomer</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="116"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="115"/> <source>Paste</source> <translation type="unfinished">Pâte</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="118"/> <source>Paste Text From Clipboard</source> <translation type="unfinished">Coller le texte du presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="121"/> <source>Cut</source> <translation type="unfinished">Couper</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="125"/> <source>Cut the current selection's contents to the clipboard</source> <translation type="unfinished">Couper le contenu de la sélection actuelle dans le presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="130"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="129"/> <source>Copy</source> <translation type="unfinished">Copier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="134"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="133"/> <source>Copy the current selection's contents to the clipboard</source> <translation type="unfinished">Copier le contenu de la sélection actuelle dans le presse-papiers</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="138"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="137"/> <source>Quote</source> <translation type="unfinished">Citation</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="139"/> <source>Quote whole text</source> <translation type="unfinished">Citer le texte en entier</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="143"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="142"/> <source>Select All</source> <translation type="unfinished">Tout sélectionner</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="145"/> <source>Select the whole text</source> <translation type="unfinished">Sélectionnez tout le texte</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="149"/> <source>Find</source> <translation type="unfinished">Trouve</translation> </message> @@ -4528,7 +4770,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="63"/> - <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="196"/> <source>%1 character(s)</source> <translation type="unfinished">%1 caractère(s)</translation> </message> @@ -4615,7 +4857,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="91"/> - <source>Buddled Pinentry</source> + <source>Bundled Pinentry</source> <translation type="unfinished"></translation> </message> <message> @@ -4858,7 +5100,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp" line="301"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Une erreur inconnue s'est produite</translation> </message> </context> <context> @@ -4918,54 +5160,54 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished">Ouvrir le répertoire</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="143"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="203"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="422"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>Warning</source> <translation type="unfinished">Avertissement</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="145"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="205"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="424"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> <source>Cannot read file %1: %2.</source> <translation type="unfinished">Impossible de lire le fichier %1 : %2.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="152"/> <source>Open file</source> <translation type="unfinished">Fichier ouvert</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="222"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="221"/> <source>Save file</source> <translation type="unfinished">Enregistrer le fichier</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="282"/> <source>Unsaved document</source> <translation type="unfinished">Document non enregistré</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="284"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> <source>The document "%1" has been modified. Do you want to save your changes?</source> <translation type="unfinished">Le document "%1" a été modifié. Voulez-vous enregistrer vos modifications ?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="286"/> <source>Note:</source> <translation type="unfinished">Noter:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="288"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> <source>If you don't save these files, all changes are lost.</source> <translation type="unfinished">Si vous n'enregistrez pas ces fichiers, toutes les modifications sont perdues.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>No document to print</source> <translation type="unfinished"></translation> </message> @@ -5045,27 +5287,27 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="38"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="39"/> <source>Signatures Details</source> <translation type="unfinished">Détails des signatures</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="62"/> <source>No valid input found</source> <translation type="unfinished">Aucune entrée valide trouvée</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="71"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="72"/> <source>Error Validating signature</source> <translation type="unfinished">Erreur lors de la validation de la signature</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> <source>File was signed on %1</source> <translation type="unfinished">Le fichier a été signé le %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="76"/> <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="80"/> <source>It Contains</source> <translation type="unfinished">Il contient</translation> @@ -5079,154 +5321,154 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyKeyDetailBox</name> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="53"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="54"/> <source>Import from keyserver</source> <translation type="unfinished">Importer depuis le serveur de clés</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="58"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="59"/> <source>Key not present with id 0x</source> <translation type="unfinished">Clé non présente avec l'identifiant 0x</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Status</source> <translation type="unfinished">Statut</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> <source>:</source> <translation type="unfinished">:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="65"/> <source>Key not present in key list</source> <translation type="unfinished">Clé non présente dans la liste des clés</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="72"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="73"/> <source>A Signature</source> <translation type="unfinished">Une signature</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="77"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="92"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="107"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="123"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="138"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="78"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="93"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="108"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="124"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="139"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="154"/> <source>Key Information is NOT Available</source> <translation type="unfinished">Les informations clés ne sont PAS disponibles</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="79"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="94"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="109"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="125"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="140"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="155"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="80"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="95"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="110"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="126"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="141"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="156"/> <source>Fingerprint</source> <translation type="unfinished">Empreinte digitale</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> <source>Cert Revoked</source> <translation type="unfinished">Certificat révoqué</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <source>Signature Expired</source> <translation type="unfinished">Signature expirée</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> <source>Key Expired</source> <translation type="unfinished">Clé expirée</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> <source>General Error</source> <translation type="unfinished">Erreur générale</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Unknown Error </source> <translation type="unfinished">Erreur inconnue</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="176"/> <source>Signer Name</source> <translation type="unfinished">Nom du signataire</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="177"/> <source>Signer Email</source> <translation type="unfinished">E-mail du signataire</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> <source>Key's Fingerprint</source> <translation type="unfinished">Empreinte digitale de la clé</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="181"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> <source>Valid</source> <translation type="unfinished">Valide</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="182"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> <source>Flags</source> <translation type="unfinished">Drapeaux</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="187"/> <source>Fully Valid</source> <translation type="unfinished">Entièrement valide</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> <source>NOT Fully Valid</source> <translation type="unfinished">PAS entièrement valide</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="196"/> <source>Good</source> <translation type="unfinished">Bon</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="201"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="199"/> <source>Bad</source> <translation type="unfinished">Mauvais</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="202"/> <source>Expired</source> <translation type="unfinished">Expiré</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="207"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="205"/> <source>Missing Key</source> <translation type="unfinished">Clé manquante</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="210"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="208"/> <source>Revoked Key</source> <translation type="unfinished">Clé révoquée</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="211"/> <source>Expired Key</source> <translation type="unfinished">Clé expirée</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="216"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="214"/> <source>Missing CRL</source> <translation type="unfinished">Liste de révocation de certificats manquante</translation> </message> @@ -5273,7 +5515,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> </context> <context> - <name>QObject</name> + <name>QCoreApplication</name> <message> <location filename="../../../../src/cmd.cpp" line="49"/> <source>This is free software; see the source for copying conditions.</source> @@ -5295,93 +5537,144 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="196"/> - <source>GpgME inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <source>Loading Gnupg Info...</source> + <translation type="unfinished">Chargement des informations sur Gnupg...</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="322"/> - <source>GpgME Context inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> + <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> + <translation type="unfinished">Si ce processus est trop lent, veuillez définir l'adresse du serveur de clés de manière appropriée dans le fichier de configuration gnupg (en fonction de la situation du réseau dans votre pays ou région).</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="331"/> - <source>Gpg Key Detabase inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="63"/> + <source>Show Verify Details</source> + <translation type="unfinished">Afficher les détails de vérification</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="71"/> + <source>Public key not found locally</source> + <translation type="unfinished">Clé publique introuvable localement</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="75"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="72"/> + <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> + <translation type="unfinished">Il n'y a pas de contenu de clé publique cible en local pour que GpgFrontend recueille suffisamment d'informations sur cette signature. Voulez-vous importer la clé publique depuis Keyserver maintenant ?</translation> + </message> + <message> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="89"/> <source>File Hash Information</source> <translation type="unfinished">Informations de hachage de fichier</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <source>filename</source> - <translation type="unfinished">nom de fichier</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> + <source>Filename</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="92"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="100"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="108"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="95"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="99"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="104"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="110"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="116"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> <source>: </source> <translation type="unfinished">:</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <source>file size(bytes)</source> - <translation type="unfinished">taille du fichier (octets)</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="94"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="98"/> + <source>File Size</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="113"/> - <source>Error in Calculating File Hash </source> - <translation type="unfinished">Erreur dans le calcul du hachage du fichier</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="123"/> + <source>Error: cannot read target file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="143"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> <source>target path doesn't exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="148"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="162"/> <source>do NOT have permission to write path</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="153"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="168"/> <source>do NOT have permission to read/write file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="171"/> <source>Success</source> <translation type="unfinished">Succès</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="294"/> + <source>GpgME initiation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="397"/> + <source>GpgME Context initiation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="406"/> + <source>Gpg Key Detabase initiation failed</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>File Hash Information</source> + <translation type="obsolete">Informations de hachage de fichier</translation> + </message> + <message> + <source>filename</source> + <translation type="obsolete">nom de fichier</translation> + </message> + <message> + <source>: </source> + <translation type="obsolete">:</translation> + </message> + <message> + <source>file size(bytes)</source> + <translation type="obsolete">taille du fichier (octets)</translation> + </message> + <message> + <source>Error in Calculating File Hash </source> + <translation type="obsolete">Erreur dans le calcul du hachage du fichier</translation> + </message> + <message> + <source>Success</source> + <translation type="obsolete">Succès</translation> + </message> + <message> <source>Loading Gnupg Info...</source> - <translation type="unfinished">Chargement des informations sur Gnupg...</translation> + <translation type="obsolete">Chargement des informations sur Gnupg...</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> - <translation type="unfinished">Si ce processus est trop lent, veuillez définir l'adresse du serveur de clés de manière appropriée dans le fichier de configuration gnupg (en fonction de la situation du réseau dans votre pays ou région).</translation> + <translation type="obsolete">Si ce processus est trop lent, veuillez définir l'adresse du serveur de clés de manière appropriée dans le fichier de configuration gnupg (en fonction de la situation du réseau dans votre pays ou région).</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="64"/> <source>Show Verify Details</source> - <translation type="unfinished">Afficher les détails de vérification</translation> + <translation type="obsolete">Afficher les détails de vérification</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="73"/> <source>Public key not found locally</source> - <translation type="unfinished">Clé publique introuvable localement</translation> + <translation type="obsolete">Clé publique introuvable localement</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="74"/> <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> - <translation type="unfinished">Il n'y a pas de contenu de clé publique cible en local pour que GpgFrontend recueille suffisamment d'informations sur cette signature. Voulez-vous importer la clé publique depuis Keyserver maintenant ?</translation> + <translation type="obsolete">Il n'y a pas de contenu de clé publique cible en local pour que GpgFrontend recueille suffisamment d'informations sur cette signature. Voulez-vous importer la clé publique depuis Keyserver maintenant ?</translation> </message> </context> </TS> diff --git a/resource/lfs/locale/ts/GpgFrontend.it_IT.ts b/resource/lfs/locale/ts/GpgFrontend.it_IT.ts index bd78ac11..4122612a 100644 --- a/resource/lfs/locale/ts/GpgFrontend.it_IT.ts +++ b/resource/lfs/locale/ts/GpgFrontend.it_IT.ts @@ -25,7 +25,7 @@ </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> - <source>Gernal State</source> + <source>General State</source> <translation type="unfinished"></translation> </message> <message> @@ -184,50 +184,85 @@ <translation type="unfinished">Stacca</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="76"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="79"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="111"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="77"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <source>Signed By</source> + <translation type="unfinished">Firmato da</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="91"/> + <source>Key ID</source> + <translation type="unfinished">ID chiave</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="89"/> + <source>Subkey</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="92"/> + <source>Primary Key</source> + <translation type="unfinished">Chiave primaria</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="94"/> + <source>Key Create Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="99"/> + <source><unknown></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> + <source>Sign Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="130"/> <source>Signer</source> <translation type="unfinished">Firmatario</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="82"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="101"/> <source>Public Key Algo</source> <translation type="unfinished">Algoritmo a chiave pubblica</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="84"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="103"/> <source>Hash Algo</source> <translation type="unfinished">Hash Algo</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> <source>Date</source> - <translation type="unfinished">Data</translation> + <translation type="obsolete">Data</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> <source>UTC</source> <translation type="unfinished">UTC</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> <source>Localized</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="124"/> <source>Invalid Signers</source> <translation type="unfinished">Firmatori non validi</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="113"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="132"/> <source>Fingerprint</source> <translation type="unfinished">Impronta digitale</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="115"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="134"/> <source>Reason</source> <translation type="unfinished">Motivo</translation> </message> @@ -235,116 +270,164 @@ <context> <name>GpgFrontend::GpgVerifyResultAnalyse</name> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="44"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="43"/> <source>Verify Operation</source> <translation type="unfinished">Verificare il funzionamento</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="47"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="46"/> <source>Success</source> <translation type="unfinished">Successo</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="49"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="48"/> <source>Failed</source> <translation type="unfinished">Fallito</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> <source>Signed On</source> <translation type="unfinished">Firmato su</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> <source>UTC</source> <translation type="unfinished">UTC</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> <source>Localized</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="65"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="64"/> <source>Signatures List</source> <translation type="unfinished">Elenco firme</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="71"/> <source>Signature [%1]:</source> <translation type="unfinished">Firma [%1]:</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="73"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> <source>Status</source> <translation type="unfinished">Stato</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="76"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="75"/> <source>A Bad Signature.</source> <translation type="unfinished">Una pessima firma.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="78"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="77"/> <source>This Signature is invalid.</source> <translation type="unfinished">Questa firma non è valida.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="83"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="82"/> <source>A</source> <translation type="unfinished">UN</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="85"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="84"/> <source>Good</source> <translation type="unfinished">Bene</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="87"/> <source>Bad</source> <translation type="unfinished">Cattivo</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="91"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="90"/> <source>Expired</source> <translation type="unfinished">Scaduto</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="94"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="93"/> <source>Missing Key's</source> <translation type="unfinished">Chiavi mancanti</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="97"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="96"/> <source>Revoked Key's</source> <translation type="unfinished">Chiavi revocate</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="100"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="99"/> <source>Expired Key's</source> <translation type="unfinished">Chiavi scadute</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="103"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="102"/> <source>Missing CRL's</source> <translation type="unfinished">CRL mancanti</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="107"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="106"/> <source>Signature Fully Valid.</source> <translation type="unfinished">Firma pienamente valida.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="108"/> <source>Signature Not Fully Valid.</source> <translation type="unfinished">Firma non completamente valida.</translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <source>Tips</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="110"/> - <source>(Adjust Trust Level to make it Fully Vaild)</source> + <source>Adjust Trust Level to make it Fully Vaild</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> + <source>Fingerprint</source> + <translation type="unfinished">Impronta digitale</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="186"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="229"/> + <source><unknown></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> + <source>Sign Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="217"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="220"/> + <source>Key ID</source> + <translation type="unfinished">ID chiave</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="218"/> + <source>Subkey</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="221"/> + <source>Primary Key</source> + <translation type="unfinished">Chiave primaria</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="223"/> + <source>Key Create Date</source> <translation type="unfinished"></translation> </message> <message> @@ -358,67 +441,67 @@ <translation type="unfinished">NON è stato possibile verificare una firma a causa di una Chiave Mancante</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="131"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="132"/> <source>A signature is valid but the key used to verify the signature has been revoked</source> <translation type="unfinished">Una firma è valida ma la chiave utilizzata per verificare la firma è stata revocata</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="140"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="141"/> <source>A signature is valid but expired</source> <translation type="unfinished">Una firma è valida ma è scaduta</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="147"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="148"/> <source>A signature is valid but the key used to verify the signature has expired.</source> <translation type="unfinished">Una firma è valida ma la chiave utilizzata per verificare la firma è scaduta.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="155"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="156"/> <source>There was some other error which prevented the signature verification.</source> <translation type="unfinished">Si è verificato un altro errore che ha impedito la verifica della firma.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="163"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="164"/> <source>Error for key with fingerprint</source> <translation type="unfinished">Errore per chiave con impronta digitale</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="174"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="175"/> <source>Could not find information that can be used for verification.</source> <translation type="unfinished">Impossibile trovare informazioni che possono essere utilizzate per la verifica.</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="188"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="193"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> <source>Signed By</source> <translation type="unfinished">Firmato da</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> <source>Unknown</source> - <translation type="unfinished">Sconosciuto</translation> + <translation type="obsolete">Sconosciuto</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="197"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="234"/> <source>Public Key Algo</source> <translation type="unfinished">Algoritmo a chiave pubblica</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="201"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="191"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="236"/> <source>Hash Algo</source> <translation type="unfinished">Hash Algo</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> <source>Date</source> - <translation type="unfinished">Data</translation> + <translation type="obsolete">Data</translation> </message> </context> <context> <name>GpgFrontend::Module::Integrated::GnuPGInfoGatheringModule::GnuPGInfoGatheringModule</name> <message> - <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="124"/> + <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="123"/> <source>Embedded In</source> <translation type="unfinished">Incorporato in</translation> </message> @@ -586,44 +669,43 @@ <context> <name>GpgFrontend::UI::CommonUtils</name> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="185"/> <source>GnuPG Context Loading Failed</source> <translation type="unfinished">Caricamento del contesto GnuPG non riuscito</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="189"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> <source>Gnupg(gpg) is not installed correctly, please follow <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> in FAQ to install Gnupg and then open GpgFrontend. <br />Or, you can open GnuPG Controller to set a custom GnuPG which GpgFrontend should use. Then, GpgFrontend will restart. <br /><br />Breif Reason: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> <source>No keys found to import</source> - <translation type="unfinished">Nessuna chiave trovata da importare</translation> + <translation type="obsolete">Nessuna chiave trovata da importare</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="437"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="445"/> <source>Timeout</source> <translation type="unfinished">Tempo scaduto</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="252"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="250"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="381"/> <source>Success</source> <translation type="unfinished">Successo</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="253"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="251"/> <source>Gpg Operation succeed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="263"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="365"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="261"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> <source>Failure</source> <translation type="unfinished">Fallimento</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="264"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="262"/> <source>Gpg Operation failed. Error code: %1 @@ -632,92 +714,103 @@ Description: %3</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="294"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="497"/> <source>Error</source> <translation type="unfinished">Errore</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="285"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="279"/> <source>Open Key</source> <translation type="unfinished">Chiave aperta</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="286"/> <source>Key Files</source> - <translation type="unfinished">File chiave</translation> + <translation type="obsolete">File chiave</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="280"/> <source>Keyring files</source> <translation type="unfinished">File portachiavi</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="292"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="288"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="295"/> + <source>The target file is too large for a keyring.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="301"/> <source>File Open Failed</source> <translation type="unfinished">Apertura file non riuscita</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="293"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="302"/> <source>Failed to open file: </source> <translation type="unfinished">Impossibile aprire il file: </translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="346"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="354"/> <source>Processing</source> <translation type="unfinished">In lavorazione</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="366"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> <source>Failed to execute command.</source> <translation type="unfinished">Impossibile eseguire il comando.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="382"/> <source>Succeed in executing command.</source> <translation type="unfinished">Riuscire a eseguire il comando.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="376"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="384"/> <source>Warning</source> <translation type="unfinished">Avvertimento</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="377"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="385"/> <source>Finished executing command.</source> <translation type="unfinished">Terminata l'esecuzione del comando.</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="398"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="406"/> <source>Default Keyserver Not Found</source> <translation type="unfinished">Keyserver predefinito non trovato</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="399"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="407"/> <source>Cannot read default keyserver from your settings, please set a default keyserver first</source> <translation type="unfinished">Impossibile leggere il server delle chiavi predefinito dalle impostazioni, impostare prima un server delle chiavi predefinito</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="434"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="442"/> <source>Key Not Found</source> <translation type="unfinished">Chiave non trovata</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="440"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="448"/> <source>Key Server Not Found</source> <translation type="unfinished">Server chiave non trovato</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="443"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="451"/> <source>Connection Error</source> <translation type="unfinished">Errore di connessione</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="454"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="462"/> <source>The key has been updated</source> <translation type="unfinished">La chiave è stata aggiornata</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="456"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="464"/> <source>No need to update the key</source> <translation type="unfinished">Non è necessario aggiornare la chiave</translation> </message> @@ -902,12 +995,12 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FilePage</name> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="63"/> <source>Show Hidden File</source> <translation type="unfinished">Mostra file nascosto</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="70"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="69"/> <source>Show System File</source> <translation type="unfinished">Mostra file di sistema</translation> </message> @@ -915,131 +1008,136 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FileTreeView</name> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="84"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="97"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="219"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="242"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="294"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="90"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="103"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="166"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="212"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="234"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="275"/> <source>Error</source> <translation type="unfinished">Errore</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="85"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="91"/> <source>The path is not exists, unprivileged or unreachable.</source> <translation type="unfinished">Il percorso non esiste, non privilegiato o irraggiungibile.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="98"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="104"/> <source>The file is unprivileged or unreachable.</source> <translation type="unfinished">Il file non è privilegiato o non è raggiungibile.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="157"/> <source>Warning</source> <translation type="unfinished">Avvertimento</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="159"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> <source>Are you sure you want to delete it?</source> <translation type="unfinished">Sei sicuro di voler cancellare?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> <source>Unable to delete the file or folder.</source> <translation type="unfinished">Impossibile eliminare il file o la cartella.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="176"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="189"/> <source>Make New Directory</source> <translation type="unfinished">Crea una nuova directory</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="178"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> <source>Directory Name</source> <translation type="unfinished">Nome della cartella</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Create Empty File</source> <translation type="unfinished">Crea file vuoto</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Filename (you can given extension)</source> <translation type="unfinished">Nome file (puoi dare l'estensione)</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="220"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="243"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="235"/> <source>Unable to create the file.</source> <translation type="unfinished">Impossibile creare il file.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="314"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="298"/> <source>Rename</source> <translation type="unfinished">Rinominare</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> <source>New Filename</source> <translation type="unfinished">Nuovo nome file</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="295"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="276"/> <source>Unable to rename the file or folder.</source> <translation type="unfinished">Impossibile rinominare il file o la cartella.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="293"/> <source>Open</source> <translation type="unfinished">Apri</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="319"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="303"/> <source>Delete</source> <translation type="unfinished">Elimina</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="324"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> <source>Calculate Hash</source> <translation type="unfinished">Calcola hash</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="329"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="313"/> <source>Directory</source> <translation type="unfinished">Cartella</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="334"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="318"/> <source>File</source> <translation type="unfinished">File</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="339"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="323"/> <source>Compress...</source> <translation type="unfinished">Comprimi...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="346"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="330"/> <source>Open with Default System Application</source> <translation type="unfinished">Apri con l'applicazione di sistema predefinita</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="335"/> <source>New</source> <translation type="unfinished">Nuovo</translation> </message> + <message> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="393"/> + <source>Calculating</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::FindWidget</name> <message> - <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="46"/> + <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="45"/> <source>Find</source> <translation type="unfinished">Trova</translation> </message> @@ -1103,23 +1201,28 @@ Description: %3</source> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="63"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="79"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="81"/> <source>Clear All Log (Total Size: %1)</source> <translation type="unfinished">Cancella tutto il registro (dimensione totale: %1)</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="66"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="93"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="95"/> <source>Clear All Data Objects (Total Size: %1)</source> <translation type="unfinished">Cancella tutti gli oggetti dati (dimensione totale: %1)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="69"/> + <source>Reveal in File Explorer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="88"/> <source>Confirm</source> <translation type="unfinished">Conferma</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="87"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="89"/> <source>Are you sure you want to clear all data objects? This will result in loss of all cached form positions, statuses, key servers, etc.</source> <translation type="unfinished">Sei sicuro di voler cancellare tutti gli oggetti dati? Ciò comporterà la perdita di tutte le posizioni dei moduli memorizzati nella cache, gli stati, i server delle chiavi, ecc.</translation> @@ -1143,9 +1246,13 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Avanzate</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> <source>No ASCII Mode</source> - <translation type="unfinished">Nessuna modalità ASCII</translation> + <translation type="obsolete">Nessuna modalità ASCII</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> + <source>Use Binary Mode for File Operations</source> + <translation type="unfinished"></translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="51"/> @@ -1154,86 +1261,92 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="52"/> + <source>Enable GpgME Debug Log</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> <source>Use Custom GnuPG</source> <translation type="unfinished">Usa GnuPG personalizzato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="54"/> <source>Select GnuPG Path</source> <translation type="unfinished">Seleziona Percorso GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="56"/> <source>Use Custom GnuPG Key Database Path</source> <translation type="unfinished">Usa il percorso del database delle chiavi GnuPG personalizzato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="58"/> <source>Select Key Database Path</source> <translation type="unfinished">Seleziona il percorso del database delle chiavi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="60"/> + <source>Restart Gpg Agent on start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="64"/> <source>Tips: please select a directroy where "gpgconf" is located in.</source> <translation type="unfinished">Suggerimenti: seleziona una directory in cui si trova "gpgconf".</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="66"/> <source>Tips: notice that modify any of these settings will cause an Application restart.</source> <translation type="unfinished">Suggerimenti: si noti che la modifica di una qualsiasi di queste impostazioni provocherà il riavvio dell'applicazione.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="95"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="98"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="118"/> <source>Open Directory</source> <translation type="unfinished">Apri Rubrica</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="171"/> <source>GnuPG Controller</source> <translation type="unfinished">Controllore GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="331"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="339"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="346"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="358"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="356"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="375"/> <source>Illegal GnuPG Path</source> <translation type="unfinished">Percorso GnuPG illegale</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="332"/> <source>Target GnuPG Path is empty.</source> - <translation type="unfinished">Il percorso GnuPG di destinazione è vuoto.</translation> + <translation type="obsolete">Il percorso GnuPG di destinazione è vuoto.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="340"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="357"/> <source>Target GnuPG Path is not an exists readable directory.</source> <translation type="unfinished">Target GnuPG Path non è una directory leggibile esistente.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="347"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="364"/> <source>Target GnuPG Path is not an absolute path.</source> <translation type="unfinished">Target GnuPG Path non è un percorso assoluto.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> <source>Target GnuPG Path contains no "gpgconf" executable.</source> <translation type="unfinished">Il percorso GnuPG di destinazione non contiene l&#39;eseguibile &quot;gpgconf&quot;.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="369"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="389"/> <source>Illegal GnuPG Key Database Path</source> <translation type="unfinished">Percorso illegale del database delle chiavi GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="370"/> <source>Target GnuPG Key Database Path is empty.</source> - <translation type="unfinished">Il percorso del database delle chiavi GnuPG di destinazione è vuoto.</translation> + <translation type="obsolete">Il percorso del database delle chiavi GnuPG di destinazione è vuoto.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="377"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="390"/> <source>Target GnuPG Key Database Path is not an exists readable directory.</source> <translation type="unfinished">Il percorso del database delle chiavi di GnuPG di destinazione non è una directory leggibile esistente.</translation> </message> @@ -1247,7 +1360,7 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Description</source> <translation type="unfinished">Descrizione</translation> </message> @@ -1273,31 +1386,50 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="48"/> + <source>Directories</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="49"/> + <source>Options</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Directory Type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Path</source> + <translation type="unfinished"></translation> + </message> + <message> <source>Configurations</source> - <translation type="unfinished">Configurazioni</translation> + <translation type="obsolete">Configurazioni</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Component</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Group</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Key</source> <translation type="unfinished">Chiave</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Default Value</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="91"/> <source>Value</source> <translation type="unfinished">Valore</translation> </message> @@ -1447,27 +1579,27 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> <source>KeyPair</source> <translation type="unfinished">Coppia di chiavi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> <source>UIDs</source> <translation type="unfinished">UID</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="45"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="50"/> <source>Subkeys</source> <translation type="unfinished">Sottochiavi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="52"/> <source>Operations</source> <translation type="unfinished">Operazioni</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="69"/> <source>Key Details</source> <translation type="unfinished">Dettagli chiave</translation> </message> @@ -1611,108 +1743,113 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyImportDetailDialog</name> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="44"/> <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="61"/> <source>Key Import Details</source> <translation type="unfinished">Dettagli sull'importazione delle chiavi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="45"/> <source>No keys found to import</source> <translation type="unfinished">Nessuna chiave trovata da importare</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="73"/> <source>General key info</source> <translation type="unfinished">Informazioni generali sui tasti</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="77"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="76"/> <source>Considered</source> <translation type="unfinished">Considerato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="83"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="82"/> <source>Public unchanged</source> <translation type="unfinished">Pubblico invariato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="89"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="88"/> <source>Imported</source> <translation type="unfinished">Importato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="95"/> <source>Not Imported</source> <translation type="unfinished">Non importato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="103"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="102"/> <source>Private Read</source> <translation type="unfinished">Lettura privata</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="110"/> <source>Private Imported</source> <translation type="unfinished">Importato privato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="118"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="117"/> <source>Private Unchanged</source> <translation type="unfinished">Privato Invariato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="123"/> + <source>New Revocations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Name</source> <translation type="unfinished">Nome</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Email</source> <translation type="unfinished">E-mail</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Status</source> <translation type="unfinished">Stato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="140"/> <source>Fingerprint</source> <translation type="unfinished">Impronta digitale</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="160"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> <source>Private</source> <translation type="unfinished">Privato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="163"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> <source>Public</source> <translation type="unfinished">Pubblico</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> <source>Unchanged</source> <translation type="unfinished">Invariato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="175"/> <source>New Key</source> <translation type="unfinished">Nuova chiave</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="178"/> <source>New Subkey</source> <translation type="unfinished">Nuova sottochiave</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="176"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="182"/> <source>New Signature</source> <translation type="unfinished">Nuova firma</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="180"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="186"/> <source>New UID</source> <translation type="unfinished">Nuovo UID</translation> </message> @@ -1765,82 +1902,87 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Cerca chiavi...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Select</source> <translation type="unfinished">Selezionare</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Type</source> <translation type="unfinished">Tipo</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Name</source> <translation type="unfinished">Nome</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Email Address</source> <translation type="unfinished">Indirizzo email</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Usage</source> <translation type="unfinished">Utilizzo</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Trust</source> <translation type="unfinished">Fiducia</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Finger Print</source> <translation type="unfinished">Impronta digitale</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="183"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> + <source>Key ID</source> + <translation type="unfinished">ID chiave</translation> + </message> + <message> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="186"/> <source>Refreshing Key List...</source> <translation type="unfinished">Aggiornamento elenco chiavi...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> <source>Import Keys</source> <translation type="unfinished">Importa chiavi</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="353"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="356"/> <source>You've dropped something on the table.</source> <translation type="unfinished">Hai lasciato cadere qualcosa sul tavolo.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> <source>GpgFrontend will now try to import key(s).</source> <translation type="unfinished">GpgFrontend ora proverà a importare le chiavi.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="360"/> <source>Always import without bothering.</source> <translation type="unfinished">Importa sempre senza preoccuparti.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="452"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="455"/> <source>Key List Refreshed.</source> <translation type="unfinished">Elenco chiavi aggiornato.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="473"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="476"/> <source>Syncing Key List...</source> <translation type="unfinished">Sincronizzazione elenco chiavi...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="481"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="484"/> <source>Sync [%1/%2] %3 %4</source> <translation type="unfinished">Sincronizzazione [%1/%2] %3 %4</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="491"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="494"/> <source>Key List Sync Done.</source> <translation type="unfinished">Sincronizzazione elenco chiavi eseguita.</translation> </message> @@ -1848,347 +1990,368 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyMgmt</name> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> <source>All</source> <translation type="unfinished">Tutti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="61"/> <source>Only Public Key</source> <translation type="unfinished">Solo chiave pubblica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="71"/> <source>Has Private Key</source> <translation type="unfinished">Ha una chiave privata</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="77"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="81"/> <source>No Primary Key</source> <translation type="unfinished">Nessuna chiave primaria</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="86"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="90"/> <source>Revoked</source> <translation type="unfinished">Revocato</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="94"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="98"/> <source>Expired</source> <translation type="unfinished">Scaduto</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="123"/> <source>KeyPair Management</source> <translation type="unfinished">Gestione delle coppie di chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="144"/> <source>Open</source> <translation type="unfinished">Apri</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="142"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> <source>Open Key File</source> <translation type="unfinished">Apri file chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="149"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="153"/> <source>Close</source> <translation type="unfinished">Chiudi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="152"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="156"/> <source>New Keypair</source> <translation type="unfinished">Nuova coppia di chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> <source>Generate KeyPair</source> <translation type="unfinished">Genera coppia di chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> <source>New Subkey</source> <translation type="unfinished">Nuova sottochiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> <source>Generate Subkey For Selected KeyPair</source> <translation type="unfinished">Genera sottochiave per la coppia di chiavi selezionata</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="257"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="171"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> <source>File</source> <translation type="unfinished">File</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> <source>Import New Key From File</source> <translation type="unfinished">Importa nuova chiave da file</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> <source>Clipboard</source> <translation type="unfinished">Appunti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="181"/> <source>Import New Key From Clipboard</source> <translation type="unfinished">Importa nuova chiave dagli appunti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="188"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> <source>Keyserver</source> <translation type="unfinished">Server delle chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="196"/> <source>Import New Key From Keyserver</source> <translation type="unfinished">Importa nuova chiave dal server delle chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="198"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="531"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="202"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Key Package</source> <translation type="unfinished">Pacchetto chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="201"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> <source>Import Key(s) From a Key Package</source> <translation type="unfinished">Importa chiavi da un pacchetto di chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> <source>Export To Clipboard</source> <translation type="unfinished">Esporta negli appunti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> <source>Export Checked Key(s) To Clipboard</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="217"/> <source>Export As Key Package</source> <translation type="unfinished">Esporta come pacchetto chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> <source>Export Checked Key(s) To a Key Package</source> <translation type="unfinished">Esporta chiavi selezionate in un pacchetto di chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="224"/> <source>Export As OpenSSH</source> <translation type="unfinished">Esporta come OpenSSH</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="223"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> <source>Export Checked Key As OpenSSH Format to File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="231"/> <source>Delete Selected Key(s)</source> <translation type="unfinished">Elimina chiavi selezionate</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="228"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> <source>Delete the Selected keys</source> <translation type="unfinished">Elimina le chiavi selezionate</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="236"/> <source>Delete Checked Key(s)</source> <translation type="unfinished">Elimina chiavi selezionate</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="233"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="237"/> <source>Delete the Checked keys</source> <translation type="unfinished">Elimina le chiavi selezionate</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="238"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="242"/> <source>Show Key Details</source> <translation type="unfinished">Mostra dettagli chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="239"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> <source>Show Details for this Key</source> <translation type="unfinished">Mostra dettagli per questa chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="244"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="248"/> <source>Set Owner Trust Level</source> <translation type="unfinished">Imposta il livello di attendibilità del proprietario</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="281"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="285"/> <source>Key</source> <translation type="unfinished">Chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="262"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> <source>Generate Key</source> <translation type="unfinished">Genera chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="294"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="270"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="298"/> <source>Import Key</source> <translation type="unfinished">Importa chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="272"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="276"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="306"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="307"/> <source>Export Key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="293"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="297"/> <source>Import key</source> <translation type="unfinished">Importa chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="302"/> - <source>Export key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="336"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="340"/> <source>Deleting Keys</source> <translation type="unfinished">Cancellazione chiavi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="337"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="341"/> <source>Are you sure that you want to delete the following keys?</source> <translation type="unfinished">Sei sicuro di voler eliminare le seguenti chiavi?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="343"/> <source>The action can not be undone.</source> <translation type="unfinished">L'azione non può essere annullata.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="404"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="416"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="483"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="507"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="551"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="408"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="420"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="487"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="498"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="511"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="541"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="549"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="565"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="573"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="589"/> <source>Error</source> <translation type="unfinished">Errore</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> <source>Key Not Found.</source> <translation type="unfinished">Chiave non trovata.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="379"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="462"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="468"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="370"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="383"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="466"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="472"/> <source>Forbidden</source> <translation type="unfinished">Vietato</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="367"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="371"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="384"/> <source>Please check some keys before doing this operation.</source> <translation type="unfinished">Si prega di controllare alcune chiavi prima di eseguire questa operazione.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="372"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="376"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="524"/> <source>key(s) exported</source> <translation type="unfinished">chiavi esportate</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="396"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="475"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="400"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="479"/> <source>Exporting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="405"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="417"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="495"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="409"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="421"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="488"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="499"/> <source>Unknown error occurred</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="438"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="442"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="452"/> <source>Invalid Operation</source> <translation type="unfinished">Operazione non valida</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="439"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="443"/> <source>Please select one KeyPair before doing this operation.</source> <translation type="unfinished">Si prega di selezionare un KeyPair prima di eseguire questa operazione.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="449"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="453"/> <source>If a key pair does not have a private key then it will not be able to generate sub-keys.</source> <translation type="unfinished">Se una coppia di chiavi non dispone di una chiave privata, non sarà in grado di generare sottochiavi.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="463"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="467"/> <source>Please check a key before performing this operation.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="469"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="473"/> <source>This operation accepts just a single key.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="512"/> <source>This key may not be able to export as OpenSSH format. Please check the key-size of the subkey(s) used to sign.</source> <translation type="unfinished">Questa chiave potrebbe non essere in grado di esportare come formato OpenSSH. Si prega di controllare la dimensione della chiave della/e sottochiave/i utilizzata/e per firmare.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="515"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="519"/> <source>Export OpenSSH Key To File</source> <translation type="unfinished">Esporta chiave OpenSSH in file</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="516"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> <source>OpenSSH Public Key Files</source> <translation type="unfinished">File di chiavi pubbliche OpenSSH</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="530"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Import Key Package</source> <translation type="unfinished">Importa pacchetto chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="534"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="542"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="566"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="550"/> + <source>The target file is too large for a key package.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="555"/> <source>Import Key Package Passphrase File</source> <translation type="unfinished">Importa file passphrase pacchetto chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="535"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="556"/> <source>Key Package Passphrase File</source> <translation type="unfinished">File di passphrase del pacchetto chiave</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="545"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="574"/> + <source>The target file is too large for a key package passphrase.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="580"/> + <source>Importing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="596"/> <source>key(s) imported</source> <translation type="unfinished">chiavi importate</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="552"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="590"/> <source>An error occur in importing key package.</source> <translation type="unfinished">Si è verificato un errore durante l'importazione del pacchetto di chiavi.</translation> </message> @@ -2374,17 +2537,17 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Non scade mai</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="258"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="257"/> <source>No Data</source> <translation type="unfinished">Nessun dato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="275"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="274"/> <source>Warning: The primary key has expired.</source> <translation type="unfinished">Avviso: la chiave primaria è scaduta.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="279"/> <source>Warning: The primary key has been revoked.</source> <translation type="unfinished">Avviso: la chiave primaria è stata revocata.</translation> </message> @@ -2392,201 +2555,256 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyPairOperaTab</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="53"/> <source>General Operations</source> <translation type="unfinished">Operazioni generali</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="59"/> <source>Export Public Key</source> <translation type="unfinished">Esporta chiave pubblica</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="65"/> <source>Export Private Key</source> <translation type="unfinished">Esporta chiave privata</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="70"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="72"/> <source>Modify Expiration Datetime (Primary Key)</source> <translation type="unfinished">Modifica data e ora di scadenza (chiave primaria)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="73"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="75"/> <source>Modify Password</source> <translation type="unfinished">Modifica password</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="92"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="93"/> <source>Key Server Operation (Pubkey)</source> <translation type="unfinished">Funzionamento del server delle chiavi (Pubkey)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="100"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="177"/> <source>Generate Revoke Certificate</source> <translation type="unfinished">Genera certificato revoca</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="106"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="107"/> <source>Modify TOFU Policy</source> <translation type="unfinished">Modifica la politica TOFU</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="101"/> + <source>Revoke Certificate Operation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="114"/> <source>Set Owner Trust Level</source> <translation type="unfinished">Imposta il livello di attendibilità del proprietario</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="135"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="138"/> <source>Upload Key Pair to Key Server</source> <translation type="unfinished">Carica coppia di chiavi sul server delle chiavi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="143"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="146"/> <source>Sync Key Pair From Key Server</source> <translation type="unfinished">Sincronizza coppia di chiavi dal server delle chiavi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="158"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="161"/> <source>Export Full Secret Key</source> <translation type="unfinished">Esporta chiave segreta completa</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="164"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="167"/> <source>Export Shortest Secret Key</source> <translation type="unfinished">Esporta la chiave segreta più breve</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="191"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="237"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="182"/> + <source>Import Revoke Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="298"/> <source>Export Key To File</source> <translation type="unfinished">Esporta chiave in file</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="192"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="238"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="299"/> <source>Key Files</source> <translation type="unfinished">File chiave</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="197"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="243"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="286"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="261"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="304"/> <source>Export Error</source> <translation type="unfinished">Errore di esportazione</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="198"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="244"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="287"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="216"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="262"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="305"/> <source>Couldn't open %1 for writing</source> <translation type="unfinished">Impossibile aprire %1 per scrittura</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="206"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="224"/> <source>Exporting short private Key</source> <translation type="unfinished">Esportazione della chiave privata breve</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="207"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="272"/> <source>You are about to export your</source> <translation type="unfinished">Stai per esportare il tuo</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="208"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="226"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="273"/> <source> PRIVATE KEY </source> <translation type="unfinished"> CHIAVE PRIVATA </translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="274"/> <source>This is NOT your Public Key, so DON'T give it away.</source> <translation type="unfinished">Questa NON è la tua chiave pubblica, quindi NON darla via.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="228"/> <source>Do you REALLY want to export your PRIVATE KEY in a Minimum Size?</source> <translation type="unfinished">Vuoi VERAMENTE esportare la tua CHIAVE PRIVATA in una Dimensione Minima?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="231"/> <source>For OpenPGP keys it removes all signatures except for the latest self-signatures.</source> <translation type="unfinished">Per le chiavi OpenPGP rimuove tutte le firme tranne le ultime autofirme.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="253"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="271"/> <source>Exporting private Key</source> <translation type="unfinished">Esportazione della chiave privata</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="275"/> <source>Do you REALLY want to export your PRIVATE KEY?</source> <translation type="unfinished">Vuoi VERAMENTE esportare la tua CHIAVE PRIVATA?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="329"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="412"/> <source>Revocation Certificates</source> <translation type="unfinished">Certificati di revoca</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="326"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="340"/> <source>Generate revocation certificate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="357"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> <source>Policy Auto</source> <translation type="unfinished">Criterio automatico</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="373"/> <source>Policy Good</source> <translation type="unfinished">Politica buona</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="375"/> <source>Policy Bad</source> <translation type="unfinished">Politica scadente</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="377"/> <source>Policy Ask</source> <translation type="unfinished">Politica Chiedi</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="365"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="379"/> <source>Policy Unknown</source> <translation type="unfinished">Politica sconosciuta</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="352"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="366"/> <source>Modify TOFU Policy(Default is Auto)</source> <translation type="unfinished">Modifica la politica TOFU (l'impostazione predefinita è Auto)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="353"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="367"/> <source>Policy for the Key Pair:</source> <translation type="unfinished">Politica per la coppia di chiavi:</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="384"/> <source>Not Successful</source> <translation type="unfinished">Senza successo</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="385"/> <source>Modify TOFU policy not successfully.</source> <translation type="unfinished">Modifica criterio TOFU non correttamente.</translation> </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="399"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="411"/> + <source>Import Key Revocation Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="400"/> + <source>You are about to import the</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="401"/> + <source>REVOCATION CERTIFICATE</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="402"/> + <source>A successful import will result in the key being irreversibly revoked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="404"/> + <source>Do you REALLY want to execute this operation?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="420"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="429"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="437"/> + <source>Error</source> + <translation type="unfinished">Errore</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="421"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="438"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="430"/> + <source>The target file is too large for a key revocation certificate.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::KeyPairSubkeyTab</name> @@ -2682,12 +2900,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Data di scadenza</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="202"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="203"/> <source>Never Expire</source> <translation type="unfinished">Non scade mai</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="239"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="240"/> <source>Never Expires</source> <translation type="unfinished">Non scade mai</translation> </message> @@ -3073,12 +3291,22 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">%1 chiavi trovate. Fare doppio clic su una chiave per importarla.</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="415"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="371"/> + <source>Warning</source> + <translation type="unfinished">Avvertimento</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="372"/> + <source>Please select one KeyPair before doing this operation.</source> + <translation type="unfinished">Si prega di selezionare un KeyPair prima di eseguire questa operazione.</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="419"/> <source>Key Imported</source> <translation type="unfinished">Chiave importata</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="426"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="430"/> <source>Processing ...</source> <translation type="unfinished"></translation> </message> @@ -3162,32 +3390,32 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">Firmatari</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="80"/> <source>Expire Date</source> <translation type="unfinished">Data di scadenza</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="90"/> <source>Sign For Key's UID(s)</source> <translation type="unfinished">Firma per gli UID della chiave</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="114"/> <source>Unsuccessful Operation</source> <translation type="unfinished">Operazione non riuscita</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="115"/> <source>Signature operation failed for UID %1</source> <translation type="unfinished">Operazione di firma non riuscita per l'UID %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> <source>Operation Complete</source> <translation type="unfinished">Operazione completata</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="127"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> <source>The signature operation of the UID is complete</source> <translation type="unfinished">L'operazione di firma dell'UID è completata</translation> </message> @@ -3377,546 +3605,556 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::MainWindow</name> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="164"/> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="167"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="158"/> <source>Critical error occur while loading GpgFrontend.</source> <translation type="unfinished">Si è verificato un errore critico durante il caricamento di GpgFrontend.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="157"/> <source>Loading Failed</source> <translation type="unfinished">Caricamento non riuscito</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="48"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="100"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="143"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="162"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="187"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="214"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="257"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="276"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="293"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="307"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="325"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="342"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="356"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="375"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="430"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="449"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="503"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="528"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="568"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="605"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="631"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="671"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="709"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="735"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="768"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="801"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="811"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="836"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="72"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="119"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="175"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="208"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="244"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="320"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="242"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="250"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="145"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="164"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="260"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="311"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="329"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="347"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="361"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="435"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="454"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="489"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="536"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="613"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="639"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="717"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="743"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="775"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="822"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="847"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="121"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="210"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="246"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="322"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="368"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="255"/> <source>Error</source> <translation type="unfinished">Errore</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="163"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="277"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="326"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="376"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="450"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="529"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="632"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="736"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="802"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="50"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="165"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="280"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="330"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="381"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="455"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="537"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="640"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="813"/> <source>Cannot read from file: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="176"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="178"/> <source>The target file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">Il file di destinazione %1 esiste già, è necessario sovrascriverlo?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="65"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="179"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="284"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="333"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="411"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="575"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="678"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="750"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="817"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="66"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="181"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="288"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="338"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="416"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="583"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="686"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="757"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="828"/> <source>Warning</source> <translation type="unfinished">Avvertimento</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="188"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="294"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="343"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="569"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="672"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="745"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="190"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="298"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="577"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="680"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="752"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="823"/> <source>Cannot write to file: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="83"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="197"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="52"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="199"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="54"/> <source>Symmetric Encryption</source> <translation type="unfinished">Crittografia simmetrica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="198"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="200"/> <source>No Key Selected. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">Nessuna chiave selezionata. Vuoi crittografare con un cifrario simmetrico utilizzando una passphrase?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="90"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="61"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="63"/> <source>Symmetrically Encrypting</source> <translation type="unfinished">Crittografia simmetrica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="144"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="215"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="258"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="308"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="357"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="431"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="504"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="606"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="710"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="769"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="837"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="120"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="176"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="209"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="245"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="321"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="367"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="102"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="217"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="261"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="312"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="362"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="509"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="614"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="718"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="776"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="848"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="178"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="211"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="323"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="369"/> <source>Unknown error occurred</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="125"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="550"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="653"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="277"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="558"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="661"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> <source>Invalid KeyPair</source> <translation type="unfinished">Coppia di chiavi non valida</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="240"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="654"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="278"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="242"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="559"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="662"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="280"/> <source>The selected keypair cannot be used for encryption.</source> <translation type="unfinished">La coppia di chiavi selezionata non può essere utilizzata per la crittografia.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="552"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="655"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="128"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="560"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="663"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="281"/> <source>For example the Following Key:</source> <translation type="unfinished">Ad esempio la seguente chiave:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="134"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="109"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="135"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="111"/> <source>Encrypting</source> <translation type="unfinished">Crittografa</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="204"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="206"/> <source>Archiving & Symmetrically Encrypting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="250"/> <source>Archiving & Encrypting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="285"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="334"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="289"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="584"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="687"/> <source>The target file already exists, do you need to overwrite it?</source> <translation type="unfinished">Il file di destinazione esiste già, è necessario sovrascriverlo?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="299"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="200"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="202"/> <source>Decrypting</source> <translation type="unfinished">Decifra</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/> <source>Decrypting & Extrating</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="385"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="539"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="642"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="145"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="390"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="547"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="650"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="147"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="267"/> <source>No Key Checked</source> <translation type="unfinished">Nessuna chiave controllata</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="386"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="540"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="643"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="391"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="548"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="651"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="148"/> <source>Please check the key in the key toolbox on the right.</source> <translation type="unfinished">Si prega di controllare la chiave nella casella degli strumenti della chiave a destra.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="393"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="98"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="154"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="398"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="156"/> <source>Invalid Operation</source> <translation type="unfinished">Operazione non valida</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="394"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="399"/> <source>The selected key contains a key that does not actually have a sign usage.</source> <translation type="unfinished">La chiave selezionata contiene una chiave che non ha effettivamente un utilizzo del segno.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="396"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="401"/> <source>for example the Following Key:</source> <translation type="unfinished">ad esempio la seguente chiave:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="412"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="417"/> <source>The signature file "%1" exists, do you need to overwrite it?</source> <translation type="unfinished">Il file della firma "%1" esiste, è necessario sovrascriverlo?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="421"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="426"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="168"/> <source>Signing</source> <translation type="unfinished">Firma</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="470"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="475"/> <source>File to be Verified</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="471"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="476"/> <source>Please provide An ABSOLUTE Path If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="485"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="490"/> <source>Please select the appropriate origin file or signature file. Ensure that both are in this directory.</source> <translation type="unfinished">Si prega di selezionare il file di origine appropriato o il file di firma. Assicurati che entrambi siano in questa directory.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="235"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="499"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="237"/> <source>Verifying</source> <translation type="unfinished">Verifica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="594"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="308"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="602"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="310"/> <source>Encrypting and Signing</source> <translation type="unfinished">Crittografa e Firma</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="697"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="705"/> <source>Archiving & Encrypting & Signing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="818"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="758"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="829"/> <source>The output file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">Il file di output %1 esiste già, devi sovrascriverlo?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="760"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="356"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="767"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="358"/> <source>Decrypting and Verifying</source> <translation type="unfinished">Decifra e verifica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="827"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="838"/> <source>Decrypting & Verifying & Extracting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="55"/> <source>No Key Checked. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">Nessuna chiave controllata. Vuoi crittografare con una cifra simmetrica usando una passphrase?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="99"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> <source>The selected key contains a key that does not actually have a encrypt usage.</source> <translation type="unfinished">La chiave selezionata contiene una chiave che in realtà non ha un utilizzo di crittografia.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> <source>The selected key contains a key that does not actually have a signature usage.</source> <translation type="unfinished">La chiave selezionata contiene una chiave che non ha effettivamente un utilizzo della firma.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="266"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="268"/> <source>Please check some key in the key toolbox on the right.</source> <translation type="unfinished">Si prega di controllare alcune chiavi nella casella degli strumenti chiave a destra.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> <source>Key Not Found.</source> <translation type="unfinished">Chiave non trovata.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="101"/> - <source> (Local Time) </source> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/> + <source>Localize</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="105"/> + <source>UTC</source> + <translation type="unfinished">UTC</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/> + <source>Local Time</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="248"/> <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="251"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="256"/> <source>Cannot open this file. The file is TOO LARGE (>1MB) for GpgFrontend Text Editor.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="302"/> <source>GpgFrontend Upgradeable (New Version: %1).</source> <translation type="unfinished">GpgFrontend aggiornabile (nuova versione: %1).</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="307"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/> <source>Withdrawn Version</source> <translation type="unfinished">Versione ritirata</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="309"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> <source>This version(%1) may have been withdrawn by the developer due to serious problems. Please stop using this version immediately and use the latest stable version.</source> <translation type="unfinished">Questa versione (%1) potrebbe essere stata ritirata dallo sviluppatore a causa di seri problemi. Si prega di interrompere immediatamente l'utilizzo di questa versione e utilizzare l'ultima versione stabile.</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> <source>You can download the latest stable version(%1) on Github Releases Page.<br/></source> <translation type="unfinished">Puoi scaricare l'ultima versione stabile (%1) dalla pagina dei rilasci di Github.<br/></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="324"/> <source>This maybe a BETA Version (Latest Stable Version: %1).</source> <translation type="unfinished">Questa potrebbe essere una versione BETA (ultima versione stabile: %1).</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="45"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="44"/> <source>New</source> <translation type="unfinished">Nuovo</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="51"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="50"/> <source>Open a new file</source> <translation type="unfinished">Apri un nuovo file</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="54"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="53"/> <source>Open...</source> <translation type="unfinished">Apri...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="56"/> <source>Open an existing file</source> <translation type="unfinished">Apri un file esistente</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="60"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="59"/> <source>File Browser</source> <translation type="unfinished">Cerca file</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="62"/> <source>Open a file browser</source> <translation type="unfinished">Apri un browser di file</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="66"/> <source>Save File</source> <translation type="unfinished">Salva</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="70"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="69"/> <source>Save the current File</source> <translation type="unfinished">Salva il file corrente</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="73"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="72"/> <source>Save As</source> <translation type="unfinished">Salva come</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="76"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="75"/> <source>Save the current File as...</source> <translation type="unfinished">Salva il file corrente come...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="79"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="78"/> <source>Print</source> <translation type="unfinished">Stampa</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="82"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="81"/> <source>Print Document</source> <translation type="unfinished">Stampa documento</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="84"/> <source>Close</source> <translation type="unfinished">Chiudi</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="87"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="86"/> <source>Close file</source> <translation type="unfinished">Chiudi file</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="90"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="89"/> <source>Quit</source> <translation type="unfinished">Uscire</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="93"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="92"/> <source>Quit Program</source> <translation type="unfinished">Esci dal programma</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="98"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="97"/> <source>Undo</source> <translation type="unfinished">Annulla</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="99"/> <source>Undo Last Edit Action</source> <translation type="unfinished">Annulla l'ultima azione di modifica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="102"/> <source>Redo</source> <translation type="unfinished">Ripeti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="105"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="104"/> <source>Redo Last Edit Action</source> <translation type="unfinished">Ripeti l'ultima azione di modifica</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="108"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="107"/> <source>Zoom In</source> <translation type="unfinished">Ingrandisci</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="112"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="111"/> <source>Zoom Out</source> <translation type="unfinished">Rimpicciolisci</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="116"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="115"/> <source>Paste</source> <translation type="unfinished">Incolla</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="118"/> <source>Paste Text From Clipboard</source> <translation type="unfinished">Incolla il testo dagli appunti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="121"/> <source>Cut</source> <translation type="unfinished">Taglia</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="125"/> <source>Cut the current selection's contents to the clipboard</source> <translation type="unfinished">Taglia il contenuto della selezione corrente negli appunti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="130"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="129"/> <source>Copy</source> <translation type="unfinished">Copia</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="134"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="133"/> <source>Copy the current selection's contents to the clipboard</source> <translation type="unfinished">Copia il contenuto della selezione corrente negli appunti</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="138"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="137"/> <source>Quote</source> <translation type="unfinished">Citazione</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="139"/> <source>Quote whole text</source> <translation type="unfinished">Cita tutto il testo</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="143"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="142"/> <source>Select All</source> <translation type="unfinished">Seleziona tutto</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="145"/> <source>Select the whole text</source> <translation type="unfinished">Seleziona l'intero testo</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="149"/> <source>Find</source> <translation type="unfinished">Trova</translation> </message> @@ -4528,7 +4766,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="63"/> - <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="196"/> <source>%1 character(s)</source> <translation type="unfinished">%1 carattere/i</translation> </message> @@ -4615,7 +4853,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="91"/> - <source>Buddled Pinentry</source> + <source>Bundled Pinentry</source> <translation type="unfinished"></translation> </message> <message> @@ -4918,54 +5156,54 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished">Apri Rubrica</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="143"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="203"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="422"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>Warning</source> <translation type="unfinished">Avvertimento</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="145"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="205"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="424"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> <source>Cannot read file %1: %2.</source> <translation type="unfinished">Impossibile leggere il file %1: %2.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="152"/> <source>Open file</source> <translation type="unfinished">Apri il file</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="222"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="221"/> <source>Save file</source> <translation type="unfinished">Salva</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="282"/> <source>Unsaved document</source> <translation type="unfinished">Documento non salvato</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="284"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> <source>The document "%1" has been modified. Do you want to save your changes?</source> <translation type="unfinished">Il documento "%1" è stato modificato. Vuoi salvare le tue modifiche?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="286"/> <source>Note:</source> <translation type="unfinished">Nota:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="288"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> <source>If you don't save these files, all changes are lost.</source> <translation type="unfinished">Se non salvi questi file, tutte le modifiche andranno perse.</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>No document to print</source> <translation type="unfinished"></translation> </message> @@ -5045,27 +5283,27 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="38"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="39"/> <source>Signatures Details</source> <translation type="unfinished">Dettagli delle firme</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="62"/> <source>No valid input found</source> <translation type="unfinished">Nessun input valido trovato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="71"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="72"/> <source>Error Validating signature</source> <translation type="unfinished">Errore durante la convalida della firma</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> <source>File was signed on %1</source> <translation type="unfinished">Il file è stato firmato il %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="76"/> <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="80"/> <source>It Contains</source> <translation type="unfinished">Contiene</translation> @@ -5079,154 +5317,154 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyKeyDetailBox</name> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="53"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="54"/> <source>Import from keyserver</source> <translation type="unfinished">Importa da keyserver</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="58"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="59"/> <source>Key not present with id 0x</source> <translation type="unfinished">Chiave non presente con ID 0x</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Status</source> <translation type="unfinished">Stato</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> <source>:</source> <translation type="unfinished">:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="65"/> <source>Key not present in key list</source> <translation type="unfinished">Chiave non presente nell'elenco chiavi</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="72"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="73"/> <source>A Signature</source> <translation type="unfinished">Una firma</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="77"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="92"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="107"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="123"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="138"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="78"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="93"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="108"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="124"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="139"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="154"/> <source>Key Information is NOT Available</source> <translation type="unfinished">Le informazioni chiave NON sono disponibili</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="79"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="94"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="109"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="125"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="140"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="155"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="80"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="95"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="110"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="126"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="141"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="156"/> <source>Fingerprint</source> <translation type="unfinished">Impronta digitale</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> <source>Cert Revoked</source> <translation type="unfinished">Certificato revocato</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <source>Signature Expired</source> <translation type="unfinished">Firma scaduta</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> <source>Key Expired</source> <translation type="unfinished">Chiave scaduta</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> <source>General Error</source> <translation type="unfinished">Errore generale</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Unknown Error </source> <translation type="unfinished">Errore sconosciuto </translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="176"/> <source>Signer Name</source> <translation type="unfinished">Nome del firmatario</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="177"/> <source>Signer Email</source> <translation type="unfinished">Email del firmatario</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> <source>Key's Fingerprint</source> <translation type="unfinished">Impronta digitale della chiave</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="181"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> <source>Valid</source> <translation type="unfinished">Valido</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="182"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> <source>Flags</source> <translation type="unfinished">Flag</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="187"/> <source>Fully Valid</source> <translation type="unfinished">Completamente valido</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> <source>NOT Fully Valid</source> <translation type="unfinished">NON completamente valido</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="196"/> <source>Good</source> <translation type="unfinished">Bene</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="201"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="199"/> <source>Bad</source> <translation type="unfinished">Cattivo</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="202"/> <source>Expired</source> <translation type="unfinished">Scaduto</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="207"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="205"/> <source>Missing Key</source> <translation type="unfinished">Chiave mancante</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="210"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="208"/> <source>Revoked Key</source> <translation type="unfinished">Chiave revocata</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="211"/> <source>Expired Key</source> <translation type="unfinished">Chiave scaduta</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="216"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="214"/> <source>Missing CRL</source> <translation type="unfinished">CRL mancante</translation> </message> @@ -5273,7 +5511,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> </context> <context> - <name>QObject</name> + <name>QCoreApplication</name> <message> <location filename="../../../../src/cmd.cpp" line="49"/> <source>This is free software; see the source for copying conditions.</source> @@ -5295,93 +5533,144 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="196"/> - <source>GpgME inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <source>Loading Gnupg Info...</source> + <translation type="unfinished">Caricamento informazioni Gnupg...</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="322"/> - <source>GpgME Context inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> + <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> + <translation type="unfinished">Se questo processo è troppo lento, impostare l'indirizzo del server delle chiavi in modo appropriato nel file di configurazione di gnupg (a seconda della situazione della rete nel proprio paese o regione).</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="331"/> - <source>Gpg Key Detabase inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="63"/> + <source>Show Verify Details</source> + <translation type="unfinished">Mostra dettagli di verifica</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="71"/> + <source>Public key not found locally</source> + <translation type="unfinished">Chiave pubblica non trovata localmente</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="72"/> + <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> + <translation type="unfinished">Non c'è contenuto di chiave pubblica di destinazione in locale per GpgFrontend per raccogliere informazioni sufficienti su questa firma. Vuoi importare la chiave pubblica da Keyserver adesso?</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="75"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="89"/> <source>File Hash Information</source> <translation type="unfinished">Informazioni sull'hash del file</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <source>filename</source> - <translation type="unfinished">nome del file</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> + <source>Filename</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="92"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="100"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="108"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="95"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="99"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="104"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="110"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="116"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> <source>: </source> <translation type="unfinished">: </translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <source>file size(bytes)</source> - <translation type="unfinished">dimensione del file (byte)</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="94"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="98"/> + <source>File Size</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="113"/> - <source>Error in Calculating File Hash </source> - <translation type="unfinished">Errore nel calcolo dell'hash del file </translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="123"/> + <source>Error: cannot read target file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="143"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> <source>target path doesn't exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="148"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="162"/> <source>do NOT have permission to write path</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="153"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="168"/> <source>do NOT have permission to read/write file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="171"/> <source>Success</source> <translation type="unfinished">Successo</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="294"/> + <source>GpgME initiation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="397"/> + <source>GpgME Context initiation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="406"/> + <source>Gpg Key Detabase initiation failed</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>File Hash Information</source> + <translation type="obsolete">Informazioni sull'hash del file</translation> + </message> + <message> + <source>filename</source> + <translation type="obsolete">nome del file</translation> + </message> + <message> + <source>: </source> + <translation type="obsolete">: </translation> + </message> + <message> + <source>file size(bytes)</source> + <translation type="obsolete">dimensione del file (byte)</translation> + </message> + <message> + <source>Error in Calculating File Hash </source> + <translation type="obsolete">Errore nel calcolo dell'hash del file </translation> + </message> + <message> + <source>Success</source> + <translation type="obsolete">Successo</translation> + </message> + <message> <source>Loading Gnupg Info...</source> - <translation type="unfinished">Caricamento informazioni Gnupg...</translation> + <translation type="obsolete">Caricamento informazioni Gnupg...</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> - <translation type="unfinished">Se questo processo è troppo lento, impostare l'indirizzo del server delle chiavi in modo appropriato nel file di configurazione di gnupg (a seconda della situazione della rete nel proprio paese o regione).</translation> + <translation type="obsolete">Se questo processo è troppo lento, impostare l'indirizzo del server delle chiavi in modo appropriato nel file di configurazione di gnupg (a seconda della situazione della rete nel proprio paese o regione).</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="64"/> <source>Show Verify Details</source> - <translation type="unfinished">Mostra dettagli di verifica</translation> + <translation type="obsolete">Mostra dettagli di verifica</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="73"/> <source>Public key not found locally</source> - <translation type="unfinished">Chiave pubblica non trovata localmente</translation> + <translation type="obsolete">Chiave pubblica non trovata localmente</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="74"/> <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> - <translation type="unfinished">Non c'è contenuto di chiave pubblica di destinazione in locale per GpgFrontend per raccogliere informazioni sufficienti su questa firma. Vuoi importare la chiave pubblica da Keyserver adesso?</translation> + <translation type="obsolete">Non c'è contenuto di chiave pubblica di destinazione in locale per GpgFrontend per raccogliere informazioni sufficienti su questa firma. Vuoi importare la chiave pubblica da Keyserver adesso?</translation> </message> </context> </TS> diff --git a/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts b/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts index 75dabdf7..476f3807 100644 --- a/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts +++ b/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts @@ -6,101 +6,105 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="41"/> <source>Decrypt Operation</source> - <translation type="unfinished">解密操作</translation> + <translation>解密操作</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="44"/> <source>Success</source> - <translation type="unfinished">成功</translation> + <translation>成功</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="46"/> <source>Failed</source> - <translation type="unfinished">失败</translation> + <translation>失败</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="51"/> <source>Unsupported Algo</source> - <translation type="unfinished">不支持的算法</translation> + <translation>不被支持的算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> <source>Gernal State</source> - <translation type="unfinished">总览</translation> + <translation type="obsolete">总览</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> + <source>General State</source> + <translation>总览</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="62"/> <source>File Name</source> - <translation type="unfinished">文档名称</translation> + <translation>文件名</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="65"/> <source>MIME</source> - <translation type="unfinished">MIME</translation> + <translation>MIME</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="66"/> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="69"/> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="84"/> <source>false</source> - <translation type="unfinished">错误的</translation> + <translation>否</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="66"/> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="69"/> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="84"/> <source>true</source> - <translation type="unfinished">是</translation> + <translation>是</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="68"/> <source>Message Integrity Protection</source> - <translation type="unfinished"></translation> + <translation>信息完整性保护</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="74"/> <source>Symmetric Encryption Algorithm</source> - <translation type="unfinished"></translation> + <translation>对称加密算法</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="79"/> <source>Session Key</source> - <translation type="unfinished"></translation> + <translation>会话密钥</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="83"/> <source>German Encryption Standards</source> - <translation type="unfinished"></translation> + <translation>符合德国加密标准</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="91"/> <source>Recipient(s)</source> - <translation type="unfinished">收件人</translation> + <translation>接收者列表</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="97"/> <source>Recipient</source> - <translation type="unfinished">接受者</translation> + <translation>接收者</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="119"/> <source>unknown</source> - <translation type="unfinished">未知</translation> + <translation>未知</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="125"/> <source>Key ID</source> - <translation type="unfinished">密钥编号</translation> + <translation>密钥ID</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="126"/> <source>Public Key Algo</source> - <translation type="unfinished">公钥算法</translation> + <translation>公钥算法</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="128"/> <source>Status</source> - <translation type="unfinished">状态</translation> + <translation>状态</translation> </message> </context> <context> @@ -108,37 +112,37 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="40"/> <source>Encrypt Operation</source> - <translation type="unfinished">加密操作</translation> + <translation>加密操作</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="43"/> <source>Success</source> - <translation type="unfinished">成功</translation> + <translation>成功</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="45"/> <source>Failed</source> - <translation type="unfinished">失败</translation> + <translation>失败</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="56"/> <source>Invalid Recipients</source> - <translation type="unfinished">无效的收件人</translation> + <translation>无效的接受者</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="63"/> <source>Recipients</source> - <translation type="unfinished"></translation> + <translation>接受者</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="65"/> <source>Fingerprint</source> - <translation type="unfinished">指纹</translation> + <translation>指纹</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgEncryptResultAnalyse.cpp" line="67"/> <source>Reason</source> - <translation type="unfinished">原因</translation> + <translation>原因</translation> </message> </context> <context> @@ -146,206 +150,289 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="43"/> <source>Sign Operation</source> - <translation type="unfinished">签名操作</translation> + <translation>签名操作</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="46"/> <source>Success</source> - <translation type="unfinished">成功</translation> + <translation>成功</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="48"/> <source>Failed</source> - <translation type="unfinished">失败</translation> + <translation>失败</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="60"/> <source>New Signature</source> - <translation type="unfinished">新签名</translation> + <translation>新签名</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="63"/> <source>Sign Mode</source> - <translation type="unfinished">签名模式</translation> + <translation>签名模式</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="65"/> <source>Normal</source> - <translation type="unfinished">标准</translation> + <translation>标准签名</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="67"/> <source>Clear</source> - <translation type="unfinished">明文签名</translation> + <translation>明文签名</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="69"/> <source>Detach</source> - <translation type="unfinished">分离式签名</translation> + <translation>分离式签名</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="77"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <source>Signed By</source> + <translation>被...签名</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="91"/> + <source>Key ID</source> + <translation>密钥编号</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="76"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="79"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="111"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="89"/> + <source>Subkey</source> + <translation>子密钥</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="92"/> + <source>Primary Key</source> + <translation>主密钥</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="94"/> + <source>Key Create Date</source> + <translation>密钥创建时间</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="99"/> + <source><unknown></source> + <translation><未知></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> + <source>Sign Date</source> + <translation>签署日期</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="130"/> <source>Signer</source> - <translation type="unfinished">签名者</translation> + <translation>签署人</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="82"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="101"/> <source>Public Key Algo</source> - <translation type="unfinished">公钥算法</translation> + <translation>公钥算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="84"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="103"/> <source>Hash Algo</source> - <translation type="unfinished">哈希算法</translation> + <translation>哈希算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> <source>Date</source> - <translation type="unfinished">日期</translation> + <translation type="obsolete">日期</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> <source>UTC</source> - <translation type="unfinished">世界标准时间</translation> + <translation>世界标准时间</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> <source>Localized</source> - <translation type="unfinished">本地化</translation> + <translation>本地化</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="124"/> <source>Invalid Signers</source> - <translation type="unfinished">无效签名者</translation> + <translation>无效签署人</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="113"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="132"/> <source>Fingerprint</source> - <translation type="unfinished">指纹</translation> + <translation>指纹</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="115"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="134"/> <source>Reason</source> - <translation type="unfinished">原因</translation> + <translation>原因</translation> </message> </context> <context> <name>GpgFrontend::GpgVerifyResultAnalyse</name> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="44"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="43"/> <source>Verify Operation</source> <translation type="unfinished">验证操作</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="47"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="46"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="49"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="48"/> <source>Failed</source> <translation type="unfinished">失败</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> <source>Signed On</source> <translation type="unfinished">签署于</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> <source>UTC</source> <translation type="unfinished">世界标准时间</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> <source>Localized</source> <translation type="unfinished">本地化</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="65"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="64"/> <source>Signatures List</source> <translation type="unfinished">签名列表</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="71"/> <source>Signature [%1]:</source> <translation type="unfinished">签名 [%1]:</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="73"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> <source>Status</source> <translation type="unfinished">状态</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="76"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="75"/> <source>A Bad Signature.</source> <translation type="unfinished">一个错误的签名。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="78"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="77"/> <source>This Signature is invalid.</source> <translation type="unfinished">此签名无效。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="83"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="82"/> <source>A</source> <translation type="unfinished">一种</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="85"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="84"/> <source>Good</source> <translation type="unfinished">正常</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="87"/> <source>Bad</source> <translation type="unfinished">异常</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="91"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="90"/> <source>Expired</source> <translation type="unfinished">已到期</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="94"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="93"/> <source>Missing Key's</source> <translation type="unfinished">密钥缺失</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="97"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="96"/> <source>Revoked Key's</source> <translation type="unfinished">撤销的密钥</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="100"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="99"/> <source>Expired Key's</source> <translation type="unfinished">过期的密钥</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="103"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="102"/> <source>Missing CRL's</source> <translation type="unfinished">CRL缺失</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="107"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="106"/> <source>Signature Fully Valid.</source> <translation type="unfinished">签名完全有效。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="108"/> <source>Signature Not Fully Valid.</source> <translation type="unfinished">签名不完全有效。</translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <source>Tips</source> + <translation type="unfinished">提示</translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="110"/> - <source>(Adjust Trust Level to make it Fully Vaild)</source> - <translation type="unfinished"></translation> + <source>Adjust Trust Level to make it Fully Vaild</source> + <translation type="unfinished">可以调整信任级别,使签名完全有效</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> + <source>Fingerprint</source> + <translation type="unfinished">指纹</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="186"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="229"/> + <source><unknown></source> + <translation type="unfinished"><未知></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> + <source>Sign Date</source> + <translation type="unfinished">签署日期</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="217"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="220"/> + <source>Key ID</source> + <translation type="unfinished">密钥编号</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="218"/> + <source>Subkey</source> + <translation type="unfinished">子密钥</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="221"/> + <source>Primary Key</source> + <translation type="unfinished">主密钥</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="223"/> + <source>Key Create Date</source> + <translation type="unfinished">密钥创建时间</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="117"/> @@ -358,67 +445,67 @@ <translation type="unfinished">由于缺少密钥,无法验证签名</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="131"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="132"/> <source>A signature is valid but the key used to verify the signature has been revoked</source> <translation type="unfinished">签名有效,但用于验证签名的密钥已被撤销</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="140"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="141"/> <source>A signature is valid but expired</source> <translation type="unfinished">签名有效但已过期</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="147"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="148"/> <source>A signature is valid but the key used to verify the signature has expired.</source> <translation type="unfinished">签名有效,但用于验证签名的密钥已过期。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="155"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="156"/> <source>There was some other error which prevented the signature verification.</source> <translation type="unfinished">还有一些其他错误阻止了签名验证。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="163"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="164"/> <source>Error for key with fingerprint</source> <translation type="unfinished">带指纹的密钥错误</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="174"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="175"/> <source>Could not find information that can be used for verification.</source> <translation type="unfinished">找不到可用于验证的信息。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="188"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="193"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> <source>Signed By</source> <translation type="unfinished">被...签名</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> <source>Unknown</source> - <translation type="unfinished">未知</translation> + <translation type="obsolete">未知</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="197"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="234"/> <source>Public Key Algo</source> <translation type="unfinished">公钥算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="201"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="191"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="236"/> <source>Hash Algo</source> <translation type="unfinished">哈希算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> <source>Date</source> - <translation type="unfinished">日期</translation> + <translation type="obsolete">日期</translation> </message> </context> <context> <name>GpgFrontend::Module::Integrated::GnuPGInfoGatheringModule::GnuPGInfoGatheringModule</name> <message> - <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="124"/> + <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="123"/> <source>Embedded In</source> <translation type="unfinished">嵌入</translation> </message> @@ -539,7 +626,7 @@ <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="116"/> <source>If you have never used GpgFrontend before and also don't own a gpg key yet you may possibly want to read how to</source> - <translation type="unfinished"></translation> + <translation type="unfinished">如果您以前从未使用过 GpgFrontend,而且还没有 gpg 密钥,您可能需要阅读如何</translation> </message> <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="120"/> @@ -549,7 +636,7 @@ <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="127"/> <source>If you want to learn how to encrypt, decrypt, sign and verify text, you can read </source> - <translation type="unfinished"></translation> + <translation>如果您想了解如何加密、解密、签名和验证文本,可以阅读 </translation> </message> <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="132"/> @@ -570,156 +657,170 @@ <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="144"/> <source>If you want to operate file, you can read </source> - <translation type="unfinished">如果要操作文件,可以阅读</translation> + <translation>如果要操作文件,可以阅读 </translation> </message> <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="148"/> <source>Encrypt & Sign File</source> - <translation type="unfinished">加密和签名文件</translation> + <translation>加密并签署文件</translation> </message> <message> <location filename="../../../../src/ui/dialog/Wizard.cpp" line="152"/> <source>Sign & Verify File</source> - <translation type="unfinished">签署并验证文件</translation> + <translation>签署并验证文件</translation> </message> </context> <context> <name>GpgFrontend::UI::CommonUtils</name> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="185"/> <source>GnuPG Context Loading Failed</source> <translation type="unfinished">GnuPG 上下文加载失败</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="189"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> <source>Gnupg(gpg) is not installed correctly, please follow <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> in FAQ to install Gnupg and then open GpgFrontend. <br />Or, you can open GnuPG Controller to set a custom GnuPG which GpgFrontend should use. Then, GpgFrontend will restart. <br /><br />Breif Reason: %1</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Gnupg(gpg) 未正确安装,请按照常见问题中的 <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> 安装 Gnupg,然后打开 GpgFrontend。<br />或者,您可以打开 GnuPG Controller 设置 GpgFrontend 应使用的自定义 GnuPG。然后,GpgFrontend 将重新启动。 <br /><br />错误原因:%1</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> <source>No keys found to import</source> - <translation type="unfinished">找不到要导入的密钥</translation> + <translation type="obsolete">找不到要导入的密钥</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="437"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="445"/> <source>Timeout</source> <translation type="unfinished">超时</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="252"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="250"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="381"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="253"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="251"/> <source>Gpg Operation succeed.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Gpg 操作成功。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="263"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="365"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="261"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> <source>Failure</source> <translation type="unfinished">失败</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="264"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="262"/> <source>Gpg Operation failed. Error code: %1 Source: %2 Description: %3</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Gpg 操作失败。 + +错误代码: %1 +来源: %2 +说明: %3</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="294"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="497"/> <source>Error</source> <translation type="unfinished">错误</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="285"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="279"/> <source>Open Key</source> <translation type="unfinished">打开密钥</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="286"/> <source>Key Files</source> - <translation type="unfinished">密钥文件</translation> + <translation type="obsolete">密钥文件</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="280"/> <source>Keyring files</source> <translation type="unfinished">密钥圈文件</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="292"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="288"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished">无法打开此文件。请确保这是一个普通文件,并且有读取权限。</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="295"/> + <source>The target file is too large for a keyring.</source> + <translation>目标文件对于一个密钥来说太大。</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="301"/> <source>File Open Failed</source> - <translation type="unfinished">文件打开失败</translation> + <translation>文件打开失败</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="293"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="302"/> <source>Failed to open file: </source> - <translation type="unfinished">打开文件失败:</translation> + <translation>打开文件失败: </translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="346"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="354"/> <source>Processing</source> - <translation type="unfinished">处理中</translation> + <translation>处理中</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="366"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> <source>Failed to execute command.</source> - <translation type="unfinished">无法执行命令。</translation> + <translation>执行命令失败。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="382"/> <source>Succeed in executing command.</source> - <translation type="unfinished">成功执行命令。</translation> + <translation>成功执行命令。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="376"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="384"/> <source>Warning</source> - <translation type="unfinished">警告</translation> + <translation>警告</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="377"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="385"/> <source>Finished executing command.</source> - <translation type="unfinished">命令执行完毕。</translation> + <translation>命令执行完毕。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="398"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="406"/> <source>Default Keyserver Not Found</source> - <translation type="unfinished">未找到默认密钥服务器</translation> + <translation>未找到默认密钥服务器</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="399"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="407"/> <source>Cannot read default keyserver from your settings, please set a default keyserver first</source> - <translation type="unfinished">无法从您的设置中读取默认密钥服务器,请先设置默认密钥服务器</translation> + <translation>无法从您的设置中读取默认密钥服务器,请先设置默认密钥服务器</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="434"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="442"/> <source>Key Not Found</source> - <translation type="unfinished">未找到密钥</translation> + <translation>未找到密钥</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="440"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="448"/> <source>Key Server Not Found</source> - <translation type="unfinished">未找到密钥服务器</translation> + <translation>未找到密钥服务器</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="443"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="451"/> <source>Connection Error</source> - <translation type="unfinished">连接错误</translation> + <translation>连接错误</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="454"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="462"/> <source>The key has been updated</source> - <translation type="unfinished">密钥已更新</translation> + <translation>密钥已更新</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="456"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="464"/> <source>No need to update the key</source> - <translation type="unfinished">无需更新密钥</translation> + <translation>无需更新密钥</translation> </message> <message> <source>Password Input Dialog</source> @@ -821,7 +922,7 @@ Description: %3</source> <message> <location filename="../../../../src/ui/dialog/import_export/ExportKeyPackageDialog.cpp" line="107"/> <source>No key is suitable to export.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">没有适合导出的密钥。</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/ExportKeyPackageDialog.cpp" line="112"/> @@ -902,12 +1003,12 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FilePage</name> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="63"/> <source>Show Hidden File</source> <translation type="unfinished">显示隐藏文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="70"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="69"/> <source>Show System File</source> <translation type="unfinished">显示系统文件</translation> </message> @@ -915,131 +1016,136 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FileTreeView</name> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="84"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="97"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="219"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="242"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="294"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="90"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="103"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="166"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="212"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="234"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="275"/> <source>Error</source> <translation type="unfinished">错误</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="85"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="91"/> <source>The path is not exists, unprivileged or unreachable.</source> <translation type="unfinished">该路径不存在、没有特权或无法访问。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="98"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="104"/> <source>The file is unprivileged or unreachable.</source> <translation type="unfinished">该目录不存在,或者您的权限不足。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="157"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="159"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> <source>Are you sure you want to delete it?</source> <translation type="unfinished">你确定要删除吗?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> <source>Unable to delete the file or folder.</source> <translation type="unfinished">无法删除文件或文件夹。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="176"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="189"/> <source>Make New Directory</source> <translation type="unfinished">新建目录</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="178"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> <source>Directory Name</source> <translation type="unfinished">目录名称</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Create Empty File</source> <translation type="unfinished">创建空文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Filename (you can given extension)</source> <translation type="unfinished">文件名(您可以指定扩展名)</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="220"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="243"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="235"/> <source>Unable to create the file.</source> <translation type="unfinished">无法创建文件。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="314"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="298"/> <source>Rename</source> <translation type="unfinished">改名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> <source>New Filename</source> <translation type="unfinished">新文件名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="295"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="276"/> <source>Unable to rename the file or folder.</source> <translation type="unfinished">无法重命名文件或文件夹。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="293"/> <source>Open</source> <translation type="unfinished">打开</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="319"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="303"/> <source>Delete</source> <translation type="unfinished">删除</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="324"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> <source>Calculate Hash</source> <translation type="unfinished">计算哈希值</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="329"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="313"/> <source>Directory</source> <translation type="unfinished">目录</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="334"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="318"/> <source>File</source> <translation type="unfinished">文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="339"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="323"/> <source>Compress...</source> <translation type="unfinished">压缩...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="346"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="330"/> <source>Open with Default System Application</source> <translation type="unfinished">使用默认系统应用程序打开</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="335"/> <source>New</source> <translation type="unfinished">新建</translation> </message> + <message> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="393"/> + <source>Calculating</source> + <translation type="unfinished">计算中</translation> + </message> </context> <context> <name>GpgFrontend::UI::FindWidget</name> <message> - <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="46"/> + <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="45"/> <source>Find</source> <translation type="unfinished">查找</translation> </message> @@ -1089,40 +1195,45 @@ Description: %3</source> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="58"/> <source>: </source> - <translation type="unfinished">:</translation> + <translation>: </translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="59"/> <source>GpgFrontend will restart automatically if you change the language!</source> - <translation type="unfinished">如果您更改语言,GpgFrontend 将自动重启!</translation> + <translation>如果您更改语言,GpgFrontend 将自动重启!</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="61"/> <source>Data</source> - <translation type="unfinished">数据</translation> + <translation>数据</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="63"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="79"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="81"/> <source>Clear All Log (Total Size: %1)</source> - <translation type="unfinished">清除所有日志(总大小:%1)</translation> + <translation>清除所有日志(总大小:%1)</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="66"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="93"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="95"/> <source>Clear All Data Objects (Total Size: %1)</source> - <translation type="unfinished">清除所有数据对象(总大小:%1)</translation> + <translation>清除所有数据对象(总大小:%1)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="69"/> + <source>Reveal in File Explorer</source> + <translation>在文件资源管理器中显示</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="88"/> <source>Confirm</source> - <translation type="unfinished">确认</translation> + <translation>确认</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="87"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="89"/> <source>Are you sure you want to clear all data objects? This will result in loss of all cached form positions, statuses, key servers, etc.</source> - <translation type="unfinished">您确定要清除所有数据对象吗?这将导致所有缓存的表单位置、状态、密钥服务器等丢失。</translation> + <translation>您确定要清除所有数据对象吗?这将导致所有缓存的页面位置、状态、密钥服务器等丢失。</translation> </message> </context> <context> @@ -1130,112 +1241,122 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="45"/> <source>General</source> - <translation type="unfinished">通用</translation> + <translation>通用</translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="46"/> <source>Key Database</source> - <translation type="unfinished">密钥数据库</translation> + <translation>密钥数据库</translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="47"/> <source>Advanced</source> - <translation type="unfinished">高级</translation> + <translation>高级</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> <source>No ASCII Mode</source> - <translation type="unfinished">无 ASCII 模式</translation> + <translation type="obsolete">无 ASCII 模式</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> + <source>Use Binary Mode for File Operations</source> + <translation>使用二进制模式进行文件操作</translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="51"/> <source>Use Pinentry as Password Input Dialog</source> - <translation type="unfinished">使用 Pinentry 作为密码输入对话框</translation> + <translation>使用 Pinentry 作为密码输入对话框</translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="52"/> - <source>Use Custom GnuPG</source> - <translation type="unfinished">使用自定义 GnuPG</translation> + <source>Enable GpgME Debug Log</source> + <translation>启用 GpgME 调试日志</translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> + <source>Use Custom GnuPG</source> + <translation>使用自定义 GnuPG</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="54"/> <source>Select GnuPG Path</source> - <translation type="unfinished">选择 GnuPG 路径</translation> + <translation>选择 GnuPG 路径</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="56"/> <source>Use Custom GnuPG Key Database Path</source> - <translation type="unfinished">使用自定义 GnuPG 密钥数据库路径</translation> + <translation>使用自定义 GnuPG 密钥数据库路径</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="58"/> <source>Select Key Database Path</source> - <translation type="unfinished">选择密钥数据库路径</translation> + <translation>选择密钥数据库路径</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="60"/> + <source>Restart Gpg Agent on start</source> + <translation>启动时重启 Gpg Agent</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="64"/> <source>Tips: please select a directroy where "gpgconf" is located in.</source> - <translation type="unfinished">提示:请选择“gpgconf”所在目录。</translation> + <translation>提示:请选择“gpgconf”所在目录。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="66"/> <source>Tips: notice that modify any of these settings will cause an Application restart.</source> - <translation type="unfinished">提示:请注意,修改任何这些设置都会导致应用程序重新启动。</translation> + <translation>提示:请注意,修改任何这些设置都会导致应用程序重新启动。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="95"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="98"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="118"/> <source>Open Directory</source> - <translation type="unfinished">打开目录</translation> + <translation>打开目录</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="171"/> <source>GnuPG Controller</source> - <translation type="unfinished">GnuPG 控制器</translation> + <translation>GnuPG 控制器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="331"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="339"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="346"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="358"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="356"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="375"/> <source>Illegal GnuPG Path</source> - <translation type="unfinished">非法 GnuPG 路径</translation> + <translation>非法 GnuPG 路径</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="332"/> <source>Target GnuPG Path is empty.</source> - <translation type="unfinished">目标 GnuPG 路径为空。</translation> + <translation type="obsolete">目标 GnuPG 路径为空。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="340"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="357"/> <source>Target GnuPG Path is not an exists readable directory.</source> - <translation type="unfinished">目标 GnuPG 路径不是现有的可读目录。</translation> + <translation>目标 GnuPG 路径不是现有的可读目录。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="347"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="364"/> <source>Target GnuPG Path is not an absolute path.</source> - <translation type="unfinished">目标 GnuPG 路径不是绝对路径。</translation> + <translation>目标 GnuPG 路径不是绝对路径。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> <source>Target GnuPG Path contains no "gpgconf" executable.</source> - <translation type="unfinished">目标 GnuPG 路径不包含“gpgconf”可执行文件。</translation> + <translation>目标 GnuPG 路径不包含“gpgconf”可执行文件。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="369"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="389"/> <source>Illegal GnuPG Key Database Path</source> - <translation type="unfinished">非法的 GnuPG 密钥数据库路径</translation> + <translation>非法的 GnuPG 密钥数据库路径</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="370"/> <source>Target GnuPG Key Database Path is empty.</source> - <translation type="unfinished">目标 GnuPG 密钥数据库路径为空。</translation> + <translation type="obsolete">目标 GnuPG 密钥数据库路径为空。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="377"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="390"/> <source>Target GnuPG Key Database Path is not an exists readable directory.</source> - <translation type="unfinished">目标 GnuPG 密钥数据库路径不是现有的可读目录。</translation> + <translation>目标 GnuPG 密钥数据库路径不是现有的可读目录。</translation> </message> </context> <context> @@ -1243,28 +1364,28 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> <source>Name</source> - <translation type="unfinished">姓名</translation> + <translation>名称</translation> </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Description</source> - <translation type="unfinished">描述</translation> + <translation>描述</translation> </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> <source>Version</source> - <translation type="unfinished">版本</translation> + <translation>版本</translation> </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="45"/> <source>Checksum</source> - <translation type="unfinished">校验和</translation> + <translation>校验和</translation> </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="45"/> <source>Binary Path</source> - <translation type="unfinished">二进制路径</translation> + <translation>二进制路径</translation> </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="47"/> @@ -1273,33 +1394,52 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="48"/> + <source>Directories</source> + <translation>目录</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="49"/> + <source>Options</source> + <translation>参数</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Directory Type</source> + <translation>目录类型</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Path</source> + <translation>路径</translation> + </message> + <message> <source>Configurations</source> - <translation type="unfinished">配置</translation> + <translation type="obsolete">配置</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Component</source> - <translation type="unfinished">组件</translation> + <translation>组件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Group</source> - <translation type="unfinished">组</translation> + <translation>组</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Key</source> - <translation type="unfinished">键</translation> + <translation>键</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Default Value</source> - <translation type="unfinished">默认值</translation> + <translation>默认值</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="91"/> <source>Value</source> - <translation type="unfinished">值</translation> + <translation>值</translation> </message> </context> <context> @@ -1307,22 +1447,22 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/GpgFrontendApplication.cpp" line="64"/> <source>Standard Exception Thrown</source> - <translation type="unfinished">小意外</translation> + <translation>小意外</translation> </message> <message> <location filename="../../../../src/ui/GpgFrontendApplication.cpp" line="65"/> <source>Oops, an standard exception was thrown during the running of the program. This is not a serious problem, it may be the negligence of the programmer, please report this problem if you can.</source> - <translation type="unfinished">糟糕,在程序运行期间遇到了一个小异常。这不是一个严重的问题,应该是由程序员的疏忽导致的,如果可以的话,请报告这个问题。</translation> + <translation>糟糕,在程序运行期间遇到了一个小异常。这不是一个严重的问题,应该是由程序员的疏忽导致的,如果可以的话,请报告这个问题。</translation> </message> <message> <location filename="../../../../src/ui/GpgFrontendApplication.cpp" line="73"/> <source>Unhandled Exception Thrown</source> - <translation type="unfinished">未处理的异常</translation> + <translation>未处理的异常</translation> </message> <message> <location filename="../../../../src/ui/GpgFrontendApplication.cpp" line="74"/> <source>Oops, an unhandled exception was thrown during the running of the program. This is not a serious problem, it may be the negligence of the programmer, please report this problem if you can.</source> - <translation type="unfinished">糟糕,在程序运行期间引发了未处理的异常。这不是一个严重的问题,可能是程序员的疏忽,如果可以的话,请报告这个问题。</translation> + <translation>糟糕,在程序运行期间引发了未处理的异常。这不是一个严重的问题,可能是程序员的疏忽,如果可以的话,请报告这个问题。</translation> </message> </context> <context> @@ -1330,37 +1470,37 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="45"/> <source>Copy</source> - <translation type="unfinished">复制</translation> + <translation>复制</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="46"/> <source>Save File</source> - <translation type="unfinished">保存文件</translation> + <translation>保存为文件</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="47"/> <source>Clear</source> - <translation type="unfinished">清空面板</translation> + <translation>清空面板</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="167"/> <source>Save Information Board's Content</source> - <translation type="unfinished">保存信息面板的内容</translation> + <translation>保存信息面板的内容</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="167"/> <source>Text (*.txt)</source> - <translation type="unfinished"></translation> + <translation>文本文件 (*.txt)</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="176"/> <source>Error</source> - <translation type="unfinished">错误</translation> + <translation>错误</translation> </message> <message> <location filename="../../../../src/ui/widgets/InfoBoardWidget.cpp" line="177"/> <source>The file path is not exists, unprivileged or unreachable.</source> - <translation type="unfinished">文件路径不存在、无特权或无法访问。</translation> + <translation>文件路径不存在、无特权或无法访问。</translation> </message> </context> <context> @@ -1447,27 +1587,27 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> <source>KeyPair</source> <translation type="unfinished">密钥对</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> <source>UIDs</source> <translation type="unfinished">UID</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="45"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="50"/> <source>Subkeys</source> <translation type="unfinished">子密钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="52"/> <source>Operations</source> <translation type="unfinished">操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="69"/> <source>Key Details</source> <translation type="unfinished">密钥详情</translation> </message> @@ -1507,7 +1647,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/key_generate/KeygenDialog.cpp" line="161"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">发生了未知错误</translation> </message> <message> <location filename="../../../../src/ui/dialog/key_generate/KeygenDialog.cpp" line="197"/> @@ -1611,108 +1751,113 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyImportDetailDialog</name> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="44"/> <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="61"/> <source>Key Import Details</source> <translation type="unfinished">密钥导入详细信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="45"/> <source>No keys found to import</source> <translation type="unfinished">找不到要导入的密钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="73"/> <source>General key info</source> <translation type="unfinished">一般密钥信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="77"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="76"/> <source>Considered</source> <translation type="unfinished">经过认证</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="83"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="82"/> <source>Public unchanged</source> <translation type="unfinished">公开且不变</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="89"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="88"/> <source>Imported</source> <translation type="unfinished">导入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="95"/> <source>Not Imported</source> <translation type="unfinished">未导入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="103"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="102"/> <source>Private Read</source> <translation type="unfinished">私有且可读</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="110"/> <source>Private Imported</source> <translation type="unfinished">私有并导入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="118"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="117"/> <source>Private Unchanged</source> <translation type="unfinished">私有未变更</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="123"/> + <source>New Revocations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Name</source> <translation type="unfinished">姓名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Email</source> <translation type="unfinished">电子邮件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Status</source> <translation type="unfinished">状态</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="140"/> <source>Fingerprint</source> <translation type="unfinished">指纹</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="160"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> <source>Private</source> <translation type="unfinished">私有的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="163"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> <source>Public</source> <translation type="unfinished">公开的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> <source>Unchanged</source> <translation type="unfinished">未变化</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="175"/> <source>New Key</source> <translation type="unfinished">新密钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="178"/> <source>New Subkey</source> <translation type="unfinished">新子密钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="176"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="182"/> <source>New Signature</source> <translation type="unfinished">新签名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="180"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="186"/> <source>New UID</source> <translation type="unfinished">新 UID</translation> </message> @@ -1765,82 +1910,87 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">搜索钥匙...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Select</source> <translation type="unfinished">选择</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Type</source> <translation type="unfinished">类型</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Name</source> <translation type="unfinished">姓名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Email Address</source> <translation type="unfinished">电子邮件地址</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Usage</source> <translation type="unfinished">用法</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Trust</source> <translation type="unfinished">信任</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Finger Print</source> <translation type="unfinished">指纹</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="183"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> + <source>Key ID</source> + <translation type="unfinished">密钥编号</translation> + </message> + <message> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="186"/> <source>Refreshing Key List...</source> <translation type="unfinished">正在刷新密钥列表...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> <source>Import Keys</source> <translation type="unfinished">导入密钥</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="353"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="356"/> <source>You've dropped something on the table.</source> <translation type="unfinished">你把东西掉在桌子上了。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> <source>GpgFrontend will now try to import key(s).</source> <translation type="unfinished">GpgFrontend 现在将尝试导入密钥。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="360"/> <source>Always import without bothering.</source> <translation type="unfinished">始终导入而无需打扰。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="452"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="455"/> <source>Key List Refreshed.</source> <translation type="unfinished">密钥列表已刷新。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="473"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="476"/> <source>Syncing Key List...</source> <translation type="unfinished">正在同步密钥列表...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="481"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="484"/> <source>Sync [%1/%2] %3 %4</source> <translation type="unfinished">同步 [%1/%2] %3 %4</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="491"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="494"/> <source>Key List Sync Done.</source> <translation type="unfinished">密钥列表同步完成。</translation> </message> @@ -1848,347 +1998,368 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyMgmt</name> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> <source>All</source> <translation type="unfinished">全部</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="61"/> <source>Only Public Key</source> <translation type="unfinished">只有公钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="71"/> <source>Has Private Key</source> <translation type="unfinished">有私钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="77"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="81"/> <source>No Primary Key</source> <translation type="unfinished">无主密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="86"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="90"/> <source>Revoked</source> <translation type="unfinished">已吊销</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="94"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="98"/> <source>Expired</source> <translation type="unfinished">已到期</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="123"/> <source>KeyPair Management</source> <translation type="unfinished">密钥对管理</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="144"/> <source>Open</source> <translation type="unfinished">打开</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="142"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> <source>Open Key File</source> <translation type="unfinished">打开密钥文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="149"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="153"/> <source>Close</source> <translation type="unfinished">关闭</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="152"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="156"/> <source>New Keypair</source> <translation type="unfinished">新密钥对</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> <source>Generate KeyPair</source> <translation type="unfinished">生成密钥对</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> <source>New Subkey</source> <translation type="unfinished">新子密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> <source>Generate Subkey For Selected KeyPair</source> <translation type="unfinished">为选定的密钥对生成子密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="257"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="171"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> <source>File</source> <translation type="unfinished">文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> <source>Import New Key From File</source> <translation type="unfinished">从文件导入新密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> <source>Clipboard</source> <translation type="unfinished">剪贴板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="181"/> <source>Import New Key From Clipboard</source> <translation type="unfinished">从剪贴板导入新密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="188"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> <source>Keyserver</source> <translation type="unfinished">密钥服务器</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="196"/> <source>Import New Key From Keyserver</source> <translation type="unfinished">从密钥服务器导入新密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="198"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="531"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="202"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Key Package</source> <translation type="unfinished">密钥包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="201"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> <source>Import Key(s) From a Key Package</source> <translation type="unfinished">从密钥包导入密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> <source>Export To Clipboard</source> <translation type="unfinished">导出到剪贴板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> <source>Export Checked Key(s) To Clipboard</source> - <translation type="unfinished"></translation> + <translation type="unfinished">将选中的密钥导出到剪贴板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="217"/> <source>Export As Key Package</source> <translation type="unfinished">导出为密钥包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> <source>Export Checked Key(s) To a Key Package</source> <translation type="unfinished">将勾选的密钥导出到密钥包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="224"/> <source>Export As OpenSSH</source> <translation type="unfinished">导出为OpenSSH密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="223"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> <source>Export Checked Key As OpenSSH Format to File</source> - <translation type="unfinished"></translation> + <translation type="unfinished">将校验过的密钥导出为 OpenSSH 格式文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="231"/> <source>Delete Selected Key(s)</source> <translation type="unfinished">删除这些选定的密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="228"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> <source>Delete the Selected keys</source> <translation type="unfinished">删除这个选定的密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="236"/> <source>Delete Checked Key(s)</source> <translation type="unfinished">删除选中的密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="233"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="237"/> <source>Delete the Checked keys</source> <translation type="unfinished">删除选中的密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="238"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="242"/> <source>Show Key Details</source> <translation type="unfinished">显示密钥细节</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="239"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> <source>Show Details for this Key</source> <translation type="unfinished">显示此密钥的详细信息</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="244"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="248"/> <source>Set Owner Trust Level</source> <translation type="unfinished">设置所有者信任级别</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="281"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="285"/> <source>Key</source> <translation type="unfinished">密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="262"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> <source>Generate Key</source> <translation type="unfinished">生成密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="294"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="270"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="298"/> <source>Import Key</source> <translation type="unfinished">导入密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="272"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="276"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="306"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="307"/> <source>Export Key</source> <translation type="unfinished">导出密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="293"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="297"/> <source>Import key</source> <translation type="unfinished">导入密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="302"/> - <source>Export key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="336"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="340"/> <source>Deleting Keys</source> <translation type="unfinished">删除密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="337"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="341"/> <source>Are you sure that you want to delete the following keys?</source> <translation type="unfinished">您确定要删除以下密钥吗?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="343"/> <source>The action can not be undone.</source> <translation type="unfinished">该操作无法撤消。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="404"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="416"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="483"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="507"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="551"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="408"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="420"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="487"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="498"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="511"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="541"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="549"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="565"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="573"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="589"/> <source>Error</source> <translation type="unfinished">错误</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> <source>Key Not Found.</source> <translation type="unfinished">未找到密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="379"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="462"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="468"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="370"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="383"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="466"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="472"/> <source>Forbidden</source> <translation type="unfinished">操作被禁止</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="367"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="371"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="384"/> <source>Please check some keys before doing this operation.</source> <translation type="unfinished">请在执行此操作之前勾选一些密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="372"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="376"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="524"/> <source>key(s) exported</source> <translation type="unfinished">导出的密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="396"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="475"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="400"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="479"/> <source>Exporting</source> - <translation type="unfinished"></translation> + <translation type="unfinished">导出中</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="405"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="417"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="495"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="409"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="421"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="488"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="499"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">发生了未知错误</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="438"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="442"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="452"/> <source>Invalid Operation</source> <translation type="unfinished">无效操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="439"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="443"/> <source>Please select one KeyPair before doing this operation.</source> <translation type="unfinished">请在执行此操作前选择一个钥对。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="449"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="453"/> <source>If a key pair does not have a private key then it will not be able to generate sub-keys.</source> <translation type="unfinished">如果密钥对没有私钥,那么它将无法生成子密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="463"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="467"/> <source>Please check a key before performing this operation.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">请在执行此操作前勾选一个密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="469"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="473"/> <source>This operation accepts just a single key.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">此操作只接受单个密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="512"/> <source>This key may not be able to export as OpenSSH format. Please check the key-size of the subkey(s) used to sign.</source> <translation type="unfinished">此密钥可能无法导出为 OpenSSH 格式。请检查用于签名的子密钥的密钥大小。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="515"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="519"/> <source>Export OpenSSH Key To File</source> <translation type="unfinished">将 OpenSSH 密钥导出到文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="516"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> <source>OpenSSH Public Key Files</source> <translation type="unfinished">OpenSSH 公钥文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="530"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Import Key Package</source> <translation type="unfinished">导入密钥包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="534"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="542"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="566"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished">无法打开此文件。请确保这是一个普通文件,并且有读取权限。</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="550"/> + <source>The target file is too large for a key package.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="555"/> <source>Import Key Package Passphrase File</source> <translation type="unfinished">导入密钥包密码文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="535"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="556"/> <source>Key Package Passphrase File</source> <translation type="unfinished">密钥包密码文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="545"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="574"/> + <source>The target file is too large for a key package passphrase.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="580"/> + <source>Importing</source> + <translation type="unfinished">导入中</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="596"/> <source>key(s) imported</source> <translation type="unfinished">导入的密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="552"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="590"/> <source>An error occur in importing key package.</source> <translation type="unfinished">导入密钥包出错。</translation> </message> @@ -2374,17 +2545,17 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">永不过期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="258"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="257"/> <source>No Data</source> <translation type="unfinished">没有数据</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="275"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="274"/> <source>Warning: The primary key has expired.</source> <translation type="unfinished">警告:主密钥已过期。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="279"/> <source>Warning: The primary key has been revoked.</source> <translation type="unfinished">警告:主密钥已被撤销。</translation> </message> @@ -2392,200 +2563,255 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyPairOperaTab</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="53"/> <source>General Operations</source> - <translation type="unfinished">一般操作</translation> + <translation>一般操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="59"/> <source>Export Public Key</source> - <translation type="unfinished">导出公钥</translation> + <translation>导出公钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="65"/> <source>Export Private Key</source> - <translation type="unfinished">导出私钥</translation> + <translation>导出私钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="70"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="72"/> <source>Modify Expiration Datetime (Primary Key)</source> - <translation type="unfinished">修改到期日期时间(主密钥)</translation> + <translation>修改到期日期时间(主密钥)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="73"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="75"/> <source>Modify Password</source> - <translation type="unfinished">修改密码</translation> + <translation>修改密码</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="92"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="93"/> <source>Key Server Operation (Pubkey)</source> - <translation type="unfinished">密钥服务器操作(公钥)</translation> + <translation>密钥服务器操作(公钥)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="100"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="177"/> <source>Generate Revoke Certificate</source> - <translation type="unfinished">生成撤销证书</translation> + <translation>生成吊销证书</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="106"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="107"/> <source>Modify TOFU Policy</source> - <translation type="unfinished">修改TOFU策略</translation> + <translation>修改TOFU策略</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="101"/> + <source>Revoke Certificate Operation</source> + <translation>吊销证书操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="114"/> <source>Set Owner Trust Level</source> - <translation type="unfinished">设置所有者信任级别</translation> + <translation>设置所有者信任级别</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="135"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="138"/> <source>Upload Key Pair to Key Server</source> - <translation type="unfinished">上传密钥对到密钥服务器</translation> + <translation>上传密钥对到密钥服务器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="143"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="146"/> <source>Sync Key Pair From Key Server</source> - <translation type="unfinished">从密钥服务器同步密钥对</translation> + <translation>从密钥服务器同步密钥对</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="158"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="161"/> <source>Export Full Secret Key</source> - <translation type="unfinished">导出完整密钥</translation> + <translation>导出完整私钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="164"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="167"/> <source>Export Shortest Secret Key</source> - <translation type="unfinished">导出最短密钥</translation> + <translation>导出最短私钥</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="182"/> + <source>Import Revoke Certificate</source> + <translation>导入吊销证书</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="191"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="237"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="298"/> <source>Export Key To File</source> - <translation type="unfinished">将密钥导出到文件</translation> + <translation>将密钥导出到文件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="192"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="238"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="299"/> <source>Key Files</source> - <translation type="unfinished">密钥文件</translation> + <translation>密钥文件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="197"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="243"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="286"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="261"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="304"/> <source>Export Error</source> - <translation type="unfinished">导出错误</translation> + <translation>导出错误</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="198"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="244"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="287"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="216"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="262"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="305"/> <source>Couldn't open %1 for writing</source> - <translation type="unfinished">无法打开 %1 进行写入</translation> + <translation>无法打开 %1 进行写入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="206"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="224"/> <source>Exporting short private Key</source> - <translation type="unfinished">导出短私钥</translation> + <translation>导出短私钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="207"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="272"/> <source>You are about to export your</source> - <translation type="unfinished">您即将导出您的</translation> + <translation>您即将导出您的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="208"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="226"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="273"/> <source> PRIVATE KEY </source> - <translation type="unfinished"> 私钥</translation> + <translation> 私钥 </translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="274"/> <source>This is NOT your Public Key, so DON'T give it away.</source> - <translation type="unfinished">这不是你的公钥,所以不要把它给别人!</translation> + <translation>这不是你的公钥,所以不要把它给别人。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="228"/> <source>Do you REALLY want to export your PRIVATE KEY in a Minimum Size?</source> - <translation type="unfinished">您真的想以最小尺寸导出您的私钥吗?</translation> + <translation>您真的想以最小尺寸导出您的私钥吗?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="231"/> <source>For OpenPGP keys it removes all signatures except for the latest self-signatures.</source> - <translation type="unfinished">对于 OpenPGP 密钥,它会删除除最新的自签名之外的所有签名。</translation> + <translation>对于 OpenPGP 密钥,它会删除除最新的自签名之外的所有签名。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="253"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="271"/> <source>Exporting private Key</source> - <translation type="unfinished">导出私钥</translation> + <translation>导出私钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="275"/> <source>Do you REALLY want to export your PRIVATE KEY?</source> - <translation type="unfinished">你真的想导出你的私钥吗?</translation> + <translation>你真的想导出你的私钥吗?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="329"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="412"/> <source>Revocation Certificates</source> - <translation type="unfinished">吊销证书</translation> + <translation>吊销证书</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="326"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="340"/> <source>Generate revocation certificate</source> - <translation type="unfinished"></translation> + <translation>生成撤吊销证书</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="357"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> <source>Policy Auto</source> - <translation type="unfinished">策略:自动</translation> + <translation>策略:自动</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="373"/> <source>Policy Good</source> - <translation type="unfinished">策略:正常</translation> + <translation>策略:正常</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="375"/> <source>Policy Bad</source> - <translation type="unfinished">策略:异常</translation> + <translation>策略:异常</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="377"/> <source>Policy Ask</source> - <translation type="unfinished">策略:咨询</translation> + <translation>策略:询问</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="365"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="379"/> <source>Policy Unknown</source> - <translation type="unfinished">策略:未知</translation> + <translation>策略:未知</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="352"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="366"/> <source>Modify TOFU Policy(Default is Auto)</source> - <translation type="unfinished">修改TOFU策略(默认为自动)</translation> + <translation>修改TOFU策略(默认为自动)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="353"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="367"/> <source>Policy for the Key Pair:</source> - <translation type="unfinished">密钥对策略:</translation> + <translation>密钥对策略:</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="384"/> <source>Not Successful</source> - <translation type="unfinished">不成功</translation> + <translation>失败</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="385"/> <source>Modify TOFU policy not successfully.</source> - <translation type="unfinished">修改 TOFU 策略不成功。</translation> + <translation>修改 TOFU 策略失败。</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="399"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="411"/> + <source>Import Key Revocation Certificate</source> + <translation>导入密钥吊销证书</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="400"/> + <source>You are about to import the</source> + <translation>您将导入</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="401"/> + <source>REVOCATION CERTIFICATE</source> + <translation>吊销证书</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="402"/> + <source>A successful import will result in the key being irreversibly revoked.</source> + <translation>导入成功后,密钥将被不可逆转地吊销。</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="404"/> + <source>Do you REALLY want to execute this operation?</source> + <translation>您真的想执行这个操作吗?</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="420"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="429"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="437"/> + <source>Error</source> + <translation>错误</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="421"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="438"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation>无法打开此文件。请确保这是一个普通文件,并且有读取权限。</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="430"/> + <source>The target file is too large for a key revocation certificate.</source> + <translation>目标文件对于一个密钥吊销证书来说太大了。</translation> </message> </context> <context> @@ -2674,7 +2900,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="159"/> <source>Create Date</source> - <translation type="unfinished"></translation> + <translation type="unfinished">创建时间</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="160"/> @@ -2682,12 +2908,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">到期日期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="202"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="203"/> <source>Never Expire</source> <translation type="unfinished">永不过期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="239"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="240"/> <source>Never Expires</source> <translation type="unfinished">永不过期</translation> </message> @@ -2794,12 +3020,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairUIDTab.cpp" line="163"/> <source>Create Date</source> - <translation type="unfinished"></translation> + <translation type="unfinished">创建时间</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairUIDTab.cpp" line="164"/> <source>Expired Date</source> - <translation type="unfinished"></translation> + <translation type="unfinished">过期时间</translation> </message> <message> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairUIDTab.cpp" line="240"/> @@ -2980,7 +3206,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="70"/> <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="74"/> <source>: </source> - <translation type="unfinished">:</translation> + <translation>: </translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="74"/> @@ -3073,14 +3299,24 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">找到 %1 个密钥。双击一个密钥来导入它。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="415"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="371"/> + <source>Warning</source> + <translation type="unfinished">警告</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="372"/> + <source>Please select one KeyPair before doing this operation.</source> + <translation type="unfinished">请在执行此操作前选择一个钥对。</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="419"/> <source>Key Imported</source> <translation type="unfinished">密钥导入成功</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="426"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="430"/> <source>Processing ...</source> - <translation type="unfinished"></translation> + <translation type="unfinished">处理中 ......</translation> </message> </context> <context> @@ -3088,22 +3324,22 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="74"/> <source>Key not found in the Keyserver.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">密钥服务器中找不到密钥。</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="77"/> <source>Network connection timeout.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">网络连接错误。</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="80"/> <source>Cannot resolve the address of target key server.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">网络连接超时。</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="83"/> <source>General connection error occurred.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">出现一般连接错误。</translation> </message> <message> <location filename="../../../../src/ui/thread/KeyServerImportTask.cpp" line="89"/> @@ -3162,32 +3398,32 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">签名者</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="80"/> <source>Expire Date</source> <translation type="unfinished">到期日期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="90"/> <source>Sign For Key's UID(s)</source> <translation type="unfinished">为密钥的 UID 签名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="114"/> <source>Unsuccessful Operation</source> <translation type="unfinished">不成功的操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="115"/> <source>Signature operation failed for UID %1</source> <translation type="unfinished">UID %1 的签名操作失败</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> <source>Operation Complete</source> <translation type="unfinished">操作完成</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="127"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> <source>The signature operation of the UID is complete</source> <translation type="unfinished">UID的签名操作完成</translation> </message> @@ -3207,7 +3443,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="78"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">发生未知错误</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="147"/> @@ -3232,7 +3468,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="158"/> <source>Upload Failed</source> - <translation type="unfinished"></translation> + <translation type="unfinished">上传失败</translation> </message> <message> <location filename="../../../../src/ui/dialog/import_export/KeyUploadDialog.cpp" line="162"/> @@ -3351,7 +3587,7 @@ This will result in loss of all cached form positions, statuses, key servers, et <message> <location filename="../../../../src/ui/dialog/settings/SettingsKeyServer.cpp" line="221"/> <source>timeout(ms): </source> - <translation type="unfinished"></translation> + <translation>超时时间(毫秒): </translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsKeyServer.cpp" line="245"/> @@ -3377,546 +3613,557 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::MainWindow</name> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="164"/> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="167"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="158"/> <source>Critical error occur while loading GpgFrontend.</source> <translation type="unfinished">加载 GpgFrontend 时发生严重错误。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="157"/> <source>Loading Failed</source> <translation type="unfinished">加载失败</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="48"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="100"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="143"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="162"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="187"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="214"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="257"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="276"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="293"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="307"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="325"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="342"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="356"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="375"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="430"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="449"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="503"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="528"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="568"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="605"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="631"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="671"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="709"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="735"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="768"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="801"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="811"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="836"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="72"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="119"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="175"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="208"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="244"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="320"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="242"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="250"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="145"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="164"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="260"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="311"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="329"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="347"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="361"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="435"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="454"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="489"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="536"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="613"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="639"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="717"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="743"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="775"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="822"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="847"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="121"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="210"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="246"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="322"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="368"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="255"/> <source>Error</source> <translation type="unfinished">错误</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="163"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="277"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="326"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="376"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="450"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="529"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="632"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="736"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="802"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="50"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="165"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="280"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="330"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="381"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="455"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="537"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="640"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="813"/> <source>Cannot read from file: %1</source> - <translation type="unfinished"></translation> + <translation type="unfinished">无法读取文件:%1</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="176"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="178"/> <source>The target file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">目标文件 %1 已经存在,是否需要覆盖?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="65"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="179"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="284"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="333"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="411"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="575"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="678"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="750"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="817"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="66"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="181"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="288"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="338"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="416"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="583"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="686"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="757"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="828"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="188"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="294"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="343"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="569"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="672"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="745"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="190"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="298"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="577"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="680"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="752"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="823"/> <source>Cannot write to file: %1</source> - <translation type="unfinished"></translation> + <translation type="unfinished">无法写入文件:%1</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="83"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="197"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="52"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="199"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="54"/> <source>Symmetric Encryption</source> <translation type="unfinished">对称加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="198"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="200"/> <source>No Key Selected. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">未选择密钥。您想使用密码使用对称密码进行加密吗?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="90"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="61"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="63"/> <source>Symmetrically Encrypting</source> - <translation type="unfinished">对称加密</translation> - </message> - <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="144"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="215"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="258"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="308"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="357"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="431"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="504"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="606"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="710"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="769"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="837"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="120"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="176"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="209"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="245"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="321"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="367"/> + <translation type="unfinished">对称加密中</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="102"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="217"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="261"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="312"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="362"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="509"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="614"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="718"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="776"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="848"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="178"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="211"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="323"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="369"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">发生了未知错误</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="125"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="550"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="653"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="277"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="558"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="661"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> <source>Invalid KeyPair</source> <translation type="unfinished">无效的密钥对</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="240"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="654"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="278"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="242"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="559"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="662"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="280"/> <source>The selected keypair cannot be used for encryption.</source> <translation type="unfinished">所选的密钥对不能用于加密。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="552"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="655"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="128"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="560"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="663"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="281"/> <source>For example the Following Key:</source> <translation type="unfinished">例如以下密钥:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="134"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="109"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="135"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="111"/> <source>Encrypting</source> <translation type="unfinished">加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="204"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="206"/> <source>Archiving & Symmetrically Encrypting</source> - <translation type="unfinished"></translation> + <translation type="unfinished">正在打包并进行对称加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="250"/> <source>Archiving & Encrypting</source> - <translation type="unfinished"></translation> + <translation type="unfinished">正在打包并进行加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="285"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="334"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="289"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="584"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="687"/> <source>The target file already exists, do you need to overwrite it?</source> <translation type="unfinished">目标文件已经存在,是否需要覆盖?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="299"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="200"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="202"/> <source>Decrypting</source> <translation type="unfinished">解密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/> <source>Decrypting & Extrating</source> - <translation type="unfinished"></translation> + <translation type="unfinished">正在进行解密并解包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="385"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="539"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="642"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="145"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="390"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="547"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="650"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="147"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="267"/> <source>No Key Checked</source> <translation type="unfinished">未勾选任何密钥</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="386"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="540"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="643"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="391"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="548"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="651"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="148"/> <source>Please check the key in the key toolbox on the right.</source> <translation type="unfinished">请勾选右侧密钥工具箱中的密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="393"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="98"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="154"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="398"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="156"/> <source>Invalid Operation</source> <translation type="unfinished">无效操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="394"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="399"/> <source>The selected key contains a key that does not actually have a sign usage.</source> <translation type="unfinished">所选密钥包含一个实际上没有符号用法的密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="396"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="401"/> <source>for example the Following Key:</source> <translation type="unfinished">例如以下密钥:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="412"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="417"/> <source>The signature file "%1" exists, do you need to overwrite it?</source> <translation type="unfinished">签名文件“%1”存在,是否需要覆盖?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="421"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="426"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="168"/> <source>Signing</source> <translation type="unfinished">签名</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="470"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="475"/> <source>File to be Verified</source> - <translation type="unfinished"></translation> + <translation type="unfinished">被验证的文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="471"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="476"/> <source>Please provide An ABSOLUTE Path If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </source> - <translation type="unfinished"></translation> + <translation>请提供绝对路径 +如果确认数据和签名都在一个文件中,请置空: </translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="485"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="490"/> <source>Please select the appropriate origin file or signature file. Ensure that both are in this directory.</source> <translation type="unfinished">请选择合适的源文件或签名文件。确保两者都在此目录中。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="235"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="499"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="237"/> <source>Verifying</source> <translation type="unfinished">验证</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="594"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="308"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="602"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="310"/> <source>Encrypting and Signing</source> <translation type="unfinished">加密和签名</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="697"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="705"/> <source>Archiving & Encrypting & Signing</source> - <translation type="unfinished"></translation> + <translation type="unfinished">正在进行打包、加密及签名操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="818"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="758"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="829"/> <source>The output file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">输出文件 %1 已经存在,是否需要覆盖?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="760"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="356"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="767"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="358"/> <source>Decrypting and Verifying</source> <translation type="unfinished">解密和验证</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="827"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="838"/> <source>Decrypting & Verifying & Extracting</source> - <translation type="unfinished"></translation> + <translation type="unfinished">正在进行解包、解密及验证操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="55"/> <source>No Key Checked. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">未选中任何密钥。您想使用密码对文字进行对称加密吗?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="99"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> <source>The selected key contains a key that does not actually have a encrypt usage.</source> <translation type="unfinished">所选密钥包含一个实际上没有加密用途的密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> <source>The selected key contains a key that does not actually have a signature usage.</source> <translation type="unfinished">所选密钥包含一个实际上没有签名用法的密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="266"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="268"/> <source>Please check some key in the key toolbox on the right.</source> <translation type="unfinished">请勾选右侧密钥工具箱中的一些密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> <source>Key Not Found.</source> <translation type="unfinished">未找到密钥。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="101"/> - <source> (Local Time) </source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/> + <source>Localize</source> + <translation type="unfinished">本地化</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="105"/> + <source>UTC</source> + <translation type="unfinished">世界标准时间</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/> + <source>Local Time</source> + <translation type="unfinished">当地时间</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="248"/> <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">无法打开此文件。请确保这是一个普通文件,并且有读取权限。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="251"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="256"/> <source>Cannot open this file. The file is TOO LARGE (>1MB) for GpgFrontend Text Editor.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">无法打开此文件。文件对于 GpgFrontend 文本编辑器来说过大(>1MB)。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="302"/> <source>GpgFrontend Upgradeable (New Version: %1).</source> <translation type="unfinished">GpgFrontend 可升级(新版本:%1)。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="307"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/> <source>Withdrawn Version</source> <translation type="unfinished">被召回的版本</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="309"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> <source>This version(%1) may have been withdrawn by the developer due to serious problems. Please stop using this version immediately and use the latest stable version.</source> <translation type="unfinished">由于严重问题,此版本(%1) 可能已被开发人员召回。请立即停止使用此版本并使用最新的稳定版。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> <source>You can download the latest stable version(%1) on Github Releases Page.<br/></source> <translation type="unfinished">您可以在 Github Releases Page 上下载最新的稳定版 (%1)。<br/></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="324"/> <source>This maybe a BETA Version (Latest Stable Version: %1).</source> <translation type="unfinished">这可能是 BETA 版本(最新稳定版:%1)。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="45"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="44"/> <source>New</source> <translation type="unfinished">新建</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="51"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="50"/> <source>Open a new file</source> <translation type="unfinished">打开一个新文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="54"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="53"/> <source>Open...</source> <translation type="unfinished">打开...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="56"/> <source>Open an existing file</source> <translation type="unfinished">打开现有文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="60"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="59"/> <source>File Browser</source> <translation type="unfinished">文件浏览器</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="62"/> <source>Open a file browser</source> <translation type="unfinished">打开文件浏览器</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="66"/> <source>Save File</source> <translation type="unfinished">保存文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="70"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="69"/> <source>Save the current File</source> <translation type="unfinished">保存当前文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="73"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="72"/> <source>Save As</source> <translation type="unfinished">另存为</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="76"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="75"/> <source>Save the current File as...</source> <translation type="unfinished">将当前文件另存为...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="79"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="78"/> <source>Print</source> <translation type="unfinished">打印</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="82"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="81"/> <source>Print Document</source> <translation type="unfinished">打印文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="84"/> <source>Close</source> <translation type="unfinished">关闭</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="87"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="86"/> <source>Close file</source> <translation type="unfinished">关闭文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="90"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="89"/> <source>Quit</source> <translation type="unfinished">退出</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="93"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="92"/> <source>Quit Program</source> <translation type="unfinished">退出程序</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="98"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="97"/> <source>Undo</source> <translation type="unfinished">撤消</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="99"/> <source>Undo Last Edit Action</source> <translation type="unfinished">撤消上次编辑操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="102"/> <source>Redo</source> <translation type="unfinished">重做</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="105"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="104"/> <source>Redo Last Edit Action</source> <translation type="unfinished">重做上次编辑操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="108"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="107"/> <source>Zoom In</source> <translation type="unfinished">放大</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="112"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="111"/> <source>Zoom Out</source> <translation type="unfinished">缩小</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="116"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="115"/> <source>Paste</source> <translation type="unfinished">粘贴</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="118"/> <source>Paste Text From Clipboard</source> <translation type="unfinished">从剪贴板粘贴文本</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="121"/> <source>Cut</source> <translation type="unfinished">剪切</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="125"/> <source>Cut the current selection's contents to the clipboard</source> <translation type="unfinished">将当前选择的内容剪切到剪贴板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="130"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="129"/> <source>Copy</source> <translation type="unfinished">复制</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="134"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="133"/> <source>Copy the current selection's contents to the clipboard</source> <translation type="unfinished">将当前选择的内容复制到剪贴板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="138"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="137"/> <source>Quote</source> <translation type="unfinished">引用</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="139"/> <source>Quote whole text</source> <translation type="unfinished">引用全文</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="143"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="142"/> <source>Select All</source> <translation type="unfinished">全选</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="145"/> <source>Select the whole text</source> <translation type="unfinished">选择整个文本</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="149"/> <source>Find</source> <translation type="unfinished">查找</translation> </message> @@ -4362,7 +4609,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="656"/> <source>Import key from...</source> - <translation type="unfinished">从...导入密钥</translation> + <translation>从···导入密钥</translation> </message> <message> <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="657"/> @@ -4486,7 +4733,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="171"/> <source>Server Url</source> - <translation type="unfinished"></translation> + <translation type="unfinished">服务器路径</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsNetwork.cpp" line="181"/> @@ -4528,7 +4775,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="63"/> - <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="196"/> <source>%1 character(s)</source> <translation type="unfinished">%1 个字符</translation> </message> @@ -4581,42 +4828,46 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="67"/> <source>Repeat PIN:</source> - <translation type="unfinished"></translation> + <translation>重复密码:</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="68"/> <source>Show passphrase</source> - <translation type="unfinished"></translation> + <translation type="unfinished">显示密码</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="68"/> <source>Hide passphrase</source> - <translation type="unfinished"></translation> + <translation type="unfinished">隐藏密码</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="71"/> <source>Given PIN was wrong. Please retry.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">所给的密码有误,请重新输入。</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="74"/> <source>PIN:</source> - <translation type="unfinished"></translation> + <translation type="unfinished">密码:</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="84"/> <source>Passphrases do not match</source> - <translation type="unfinished"></translation> + <translation type="unfinished">密码不匹配</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="87"/> <source>Caps Lock is on</source> - <translation type="unfinished"></translation> + <translation type="unfinished">大写锁定已开启</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="91"/> + <source>Bundled Pinentry</source> + <translation type="unfinished">集成Pinentry</translation> + </message> + <message> <source>Buddled Pinentry</source> - <translation type="unfinished"></translation> + <translation type="obsolete">集成Pinentry</translation> </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="95"/> @@ -4770,7 +5021,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/SignersPicker.cpp" line="73"/> <source>Signers Picker</source> - <translation type="unfinished"></translation> + <translation type="unfinished">签署人选择界面</translation> </message> </context> <context> @@ -4858,7 +5109,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp" line="301"/> <source>Unknown error occurred</source> - <translation type="unfinished"></translation> + <translation type="unfinished">发生未知错误</translation> </message> </context> <context> @@ -4918,56 +5169,56 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished">打开目录</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="143"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="203"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="422"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="145"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="205"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="424"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> <source>Cannot read file %1: %2.</source> <translation type="unfinished">无法读取文件 %1: %2。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="152"/> <source>Open file</source> <translation type="unfinished">打开文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="222"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="221"/> <source>Save file</source> <translation type="unfinished">保存存档</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="282"/> <source>Unsaved document</source> <translation type="unfinished">未保存的文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="284"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> <source>The document "%1" has been modified. Do you want to save your changes?</source> <translation type="unfinished">文档“%1”已被修改。是否要保存更改?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="286"/> <source>Note:</source> <translation type="unfinished">笔记:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="288"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> <source>If you don't save these files, all changes are lost.</source> <translation type="unfinished">如果您不保存这些文件,所有更改都将丢失。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>No document to print</source> - <translation type="unfinished"></translation> + <translation type="unfinished">没有要打印的文件</translation> </message> </context> <context> @@ -4998,7 +5249,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="164"/> <source>: </source> - <translation type="unfinished">:</translation> + <translation>: </translation> </message> <message> <location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="246"/> @@ -5034,7 +5285,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <message> <location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="263"/> <source>This version has serious problems and has been withdrawn. Please stop using it immediately.</source> - <translation type="unfinished">此版本存在严重问题,已经被召回。请立即停止使用!</translation> + <translation>此版本存在严重问题,已经被召回。请立即停止使用。</translation> </message> <message> <location filename="../../../../src/ui/dialog/help/AboutDialog.cpp" line="274"/> @@ -5045,27 +5296,27 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="38"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="39"/> <source>Signatures Details</source> <translation type="unfinished">签名详情</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="62"/> <source>No valid input found</source> <translation type="unfinished">找不到有效的输入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="71"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="72"/> <source>Error Validating signature</source> <translation type="unfinished">验证签名时出错</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> <source>File was signed on %1</source> <translation type="unfinished">文件已在 %1 上签名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="76"/> <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="80"/> <source>It Contains</source> <translation type="unfinished">它包含了</translation> @@ -5079,154 +5330,154 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyKeyDetailBox</name> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="53"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="54"/> <source>Import from keyserver</source> <translation type="unfinished">从密钥服务器导入</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="58"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="59"/> <source>Key not present with id 0x</source> <translation type="unfinished">不存在 ID 为 0x 的密钥</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Status</source> <translation type="unfinished">状态</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> <source>:</source> <translation type="unfinished">:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="65"/> <source>Key not present in key list</source> <translation type="unfinished">密钥不在密钥列表中</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="72"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="73"/> <source>A Signature</source> <translation type="unfinished">一个签名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="77"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="92"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="107"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="123"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="138"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="78"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="93"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="108"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="124"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="139"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="154"/> <source>Key Information is NOT Available</source> <translation type="unfinished">密钥信息不可用</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="79"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="94"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="109"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="125"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="140"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="155"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="80"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="95"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="110"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="126"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="141"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="156"/> <source>Fingerprint</source> <translation type="unfinished">指纹</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> <source>Cert Revoked</source> <translation type="unfinished">证书吊销</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <source>Signature Expired</source> <translation type="unfinished">签名过期</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> <source>Key Expired</source> <translation type="unfinished">密钥过期</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> <source>General Error</source> <translation type="unfinished">一般错误</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Unknown Error </source> - <translation type="unfinished">未知错误</translation> + <translation>未知错误 </translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="176"/> <source>Signer Name</source> <translation type="unfinished">签名者姓名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="177"/> <source>Signer Email</source> <translation type="unfinished">签名者电子邮件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> <source>Key's Fingerprint</source> <translation type="unfinished">密钥的指纹</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="181"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> <source>Valid</source> <translation type="unfinished">有效的</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="182"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> <source>Flags</source> <translation type="unfinished">标志</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="187"/> <source>Fully Valid</source> <translation type="unfinished">完全有效</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> <source>NOT Fully Valid</source> <translation type="unfinished">不完全有效</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="196"/> <source>Good</source> <translation type="unfinished">正常</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="201"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="199"/> <source>Bad</source> <translation type="unfinished">异常</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="202"/> <source>Expired</source> <translation type="unfinished">已到期</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="207"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="205"/> <source>Missing Key</source> <translation type="unfinished">缺少密钥</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="210"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="208"/> <source>Revoked Key</source> <translation type="unfinished">撤销密钥</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="211"/> <source>Expired Key</source> <translation type="unfinished">过期密钥</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="216"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="214"/> <source>Missing CRL</source> <translation type="unfinished">缺少 CRL</translation> </message> @@ -5273,115 +5524,166 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> </context> <context> - <name>QObject</name> + <name>QCoreApplication</name> <message> <location filename="../../../../src/cmd.cpp" line="49"/> <source>This is free software; see the source for copying conditions.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">此为自由软件。关于版权信息,请参阅源代码中的版权文件。</translation> </message> <message> <location filename="../../../../src/cmd.cpp" line="54"/> <source>Build DateTime: </source> - <translation type="unfinished"></translation> + <translation>构建时间: </translation> </message> <message> <location filename="../../../../src/cmd.cpp" line="55"/> <source>Build Version: </source> - <translation type="unfinished"></translation> + <translation>构建版本: </translation> </message> <message> <location filename="../../../../src/cmd.cpp" line="56"/> <source>Source Code Version: </source> - <translation type="unfinished"></translation> + <translation>源代码版本: </translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="196"/> - <source>GpgME inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <source>Loading Gnupg Info...</source> + <translation type="unfinished">正在加载 Gnupg 信息...</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="322"/> - <source>GpgME Context inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> + <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> + <translation type="unfinished">如果此过程太慢,请在 gnupg 配置文件中适当设置密钥服务器地址(取决于您所在国家或地区的网络情况)。</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="331"/> - <source>Gpg Key Detabase inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="63"/> + <source>Show Verify Details</source> + <translation type="unfinished">显示验证详细信息</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="75"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="71"/> + <source>Public key not found locally</source> + <translation type="unfinished">本地未找到公钥</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="72"/> + <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> + <translation type="unfinished">本地没有目标公钥内容供 GpgFrontend 收集有关此签名的足够信息。现在要从密钥服务器导入公钥吗?</translation> + </message> + <message> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="89"/> <source>File Hash Information</source> <translation type="unfinished">文件哈希信息</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <source>filename</source> - <translation type="unfinished">文档名称</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> + <source>Filename</source> + <translation type="unfinished">文件名</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="92"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="100"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="108"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="95"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="99"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="104"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="110"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="116"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> <source>: </source> - <translation type="unfinished">:</translation> + <translation>: </translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <source>file size(bytes)</source> - <translation type="unfinished">文件大小(字节)</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="94"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="98"/> + <source>File Size</source> + <translation type="unfinished">文件大小</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="113"/> - <source>Error in Calculating File Hash </source> - <translation type="unfinished">计算文件哈希时出错</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="123"/> + <source>Error: cannot read target file</source> + <translation type="unfinished">错误:无法读取目标文件</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="143"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> <source>target path doesn't exists</source> - <translation type="unfinished"></translation> + <translation type="unfinished">目标路径不存在</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="148"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="162"/> <source>do NOT have permission to write path</source> - <translation type="unfinished"></translation> + <translation type="unfinished">缺少写入路径的权限</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="153"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="168"/> <source>do NOT have permission to read/write file</source> - <translation type="unfinished"></translation> + <translation type="unfinished">缺少读写文件的权限</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="171"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="294"/> + <source>GpgME initiation failed</source> + <translation type="unfinished">GpgME初始化失败</translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="397"/> + <source>GpgME Context initiation failed</source> + <translation type="unfinished">GpgME上下文初始化失败</translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="406"/> + <source>Gpg Key Detabase initiation failed</source> + <translation type="unfinished">密钥数据库初始化失败</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>File Hash Information</source> + <translation type="obsolete">文件哈希信息</translation> + </message> + <message> + <source>filename</source> + <translation type="obsolete">文档名称</translation> + </message> + <message> + <source>: </source> + <translation type="obsolete">:</translation> + </message> + <message> + <source>file size(bytes)</source> + <translation type="obsolete">文件大小(字节)</translation> + </message> + <message> + <source>Error in Calculating File Hash </source> + <translation type="obsolete">计算文件哈希时出错</translation> + </message> + <message> + <source>Success</source> + <translation type="obsolete">成功</translation> + </message> + <message> <source>Loading Gnupg Info...</source> - <translation type="unfinished">正在加载 Gnupg 信息...</translation> + <translation type="obsolete">正在加载 Gnupg 信息...</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> - <translation type="unfinished">如果此过程太慢,请在 gnupg 配置文件中适当设置密钥服务器地址(取决于您所在国家或地区的网络情况)。</translation> + <translation type="obsolete">如果此过程太慢,请在 gnupg 配置文件中适当设置密钥服务器地址(取决于您所在国家或地区的网络情况)。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="64"/> <source>Show Verify Details</source> - <translation type="unfinished">显示验证详细信息</translation> + <translation type="obsolete">显示验证详细信息</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="73"/> <source>Public key not found locally</source> - <translation type="unfinished">本地未找到公钥</translation> + <translation type="obsolete">本地未找到公钥</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="74"/> <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> - <translation type="unfinished">本地没有目标公钥内容供 GpgFrontend 收集有关此签名的足够信息。现在要从密钥服务器导入公钥吗?</translation> + <translation type="obsolete">本地没有目标公钥内容供 GpgFrontend 收集有关此签名的足够信息。现在要从密钥服务器导入公钥吗?</translation> </message> </context> </TS> diff --git a/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts b/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts index 13fdc856..b94379ff 100644 --- a/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts +++ b/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts @@ -25,7 +25,7 @@ </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="59"/> - <source>Gernal State</source> + <source>General State</source> <translation type="unfinished"></translation> </message> <message> @@ -36,7 +36,7 @@ <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="65"/> <source>MIME</source> - <translation type="unfinished">啞劇</translation> + <translation type="unfinished">MIME</translation> </message> <message> <location filename="../../../../src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp" line="66"/> @@ -184,50 +184,85 @@ <translation type="unfinished">分離</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="76"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="79"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="111"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="77"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <source>Signed By</source> + <translation type="unfinished">被...簽名</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="91"/> + <source>Key ID</source> + <translation type="unfinished">鑰匙編號</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="89"/> + <source>Subkey</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="92"/> + <source>Primary Key</source> + <translation type="unfinished">首要的關鍵</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="94"/> + <source>Key Create Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="99"/> + <source><unknown></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> + <source>Sign Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="130"/> <source>Signer</source> <translation type="unfinished">簽名者</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="82"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="101"/> <source>Public Key Algo</source> <translation type="unfinished">公鑰算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="84"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="103"/> <source>Hash Algo</source> <translation type="unfinished">哈希算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> <source>Date</source> - <translation type="unfinished">日期</translation> + <translation type="obsolete">日期</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="86"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> <source>UTC</source> <translation type="unfinished">世界標準時間</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="90"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="109"/> <source>Localized</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="105"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="124"/> <source>Invalid Signers</source> <translation type="unfinished">無效的簽名者</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="113"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="98"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="132"/> <source>Fingerprint</source> <translation type="unfinished">指紋</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="115"/> + <location filename="../../../../src/core/function/result_analyse/GpgSignResultAnalyse.cpp" line="134"/> <source>Reason</source> <translation type="unfinished">原因</translation> </message> @@ -235,116 +270,164 @@ <context> <name>GpgFrontend::GpgVerifyResultAnalyse</name> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="44"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="43"/> <source>Verify Operation</source> <translation type="unfinished">驗證操作</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="47"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="46"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="49"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="48"/> <source>Failed</source> <translation type="unfinished">失敗</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> <source>Signed On</source> <translation type="unfinished">已登錄</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="58"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="57"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> <source>UTC</source> <translation type="unfinished">世界標準時間</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="62"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="61"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> <source>Localized</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="65"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="64"/> <source>Signatures List</source> <translation type="unfinished">簽名列表</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="71"/> <source>Signature [%1]:</source> <translation type="unfinished">簽名 [%1]:</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="73"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="72"/> <source>Status</source> <translation type="unfinished">狀態</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="76"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="75"/> <source>A Bad Signature.</source> <translation type="unfinished">一個錯誤的簽名。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="78"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="77"/> <source>This Signature is invalid.</source> <translation type="unfinished">此簽名無效。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="83"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="82"/> <source>A</source> <translation type="unfinished">一種</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="85"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="84"/> <source>Good</source> <translation type="unfinished">好的</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="88"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="87"/> <source>Bad</source> <translation type="unfinished">壞的</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="91"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="90"/> <source>Expired</source> <translation type="unfinished">已到期</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="94"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="93"/> <source>Missing Key's</source> <translation type="unfinished">鑰匙不見了</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="97"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="96"/> <source>Revoked Key's</source> <translation type="unfinished">撤銷的鑰匙</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="100"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="99"/> <source>Expired Key's</source> <translation type="unfinished">過期的金鑰</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="103"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="102"/> <source>Missing CRL's</source> <translation type="unfinished">缺少 CRL</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="107"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="106"/> <source>Signature Fully Valid.</source> <translation type="unfinished">簽名完全有效。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="108"/> <source>Signature Not Fully Valid.</source> <translation type="unfinished">簽名不完全有效。</translation> </message> <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="109"/> + <source>Tips</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="110"/> - <source>(Adjust Trust Level to make it Fully Vaild)</source> + <source>Adjust Trust Level to make it Fully Vaild</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> + <source>Fingerprint</source> + <translation type="unfinished">指紋</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="186"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="229"/> + <source><unknown></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="192"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="194"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="237"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="239"/> + <source>Sign Date</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="217"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="220"/> + <source>Key ID</source> + <translation type="unfinished">鑰匙編號</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="218"/> + <source>Subkey</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="221"/> + <source>Primary Key</source> + <translation type="unfinished">首要的關鍵</translation> + </message> + <message> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="223"/> + <source>Key Create Date</source> <translation type="unfinished"></translation> </message> <message> @@ -358,67 +441,67 @@ <translation type="unfinished">由於缺少金鑰,無法驗證簽名</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="131"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="132"/> <source>A signature is valid but the key used to verify the signature has been revoked</source> <translation type="unfinished">簽名有效,但用於驗證簽名的金鑰已被撤銷</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="140"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="141"/> <source>A signature is valid but expired</source> <translation type="unfinished">簽名有效但已過期</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="147"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="148"/> <source>A signature is valid but the key used to verify the signature has expired.</source> <translation type="unfinished">簽名有效,但用於驗證簽名的金鑰已過期。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="155"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="156"/> <source>There was some other error which prevented the signature verification.</source> <translation type="unfinished">還有一些其他錯誤阻止了簽名驗證。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="163"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="164"/> <source>Error for key with fingerprint</source> <translation type="unfinished">帶指紋的鑰匙錯誤</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="174"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="175"/> <source>Could not find information that can be used for verification.</source> <translation type="unfinished">找不到可用於驗證的信息。</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="188"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="193"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="184"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="228"/> <source>Signed By</source> <translation type="unfinished">被...簽名</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> <source>Unknown</source> - <translation type="unfinished">未知</translation> + <translation type="obsolete">未知</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="197"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="189"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="234"/> <source>Public Key Algo</source> <translation type="unfinished">公鑰算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="201"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="191"/> + <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="236"/> <source>Hash Algo</source> <translation type="unfinished">哈希算法</translation> </message> <message> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="205"/> - <location filename="../../../../src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp" line="209"/> <source>Date</source> - <translation type="unfinished">日期</translation> + <translation type="obsolete">日期</translation> </message> </context> <context> <name>GpgFrontend::Module::Integrated::GnuPGInfoGatheringModule::GnuPGInfoGatheringModule</name> <message> - <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="124"/> + <location filename="../../../../src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp" line="123"/> <source>Embedded In</source> <translation type="unfinished">嵌入</translation> </message> @@ -586,44 +669,43 @@ <context> <name>GpgFrontend::UI::CommonUtils</name> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="185"/> <source>GnuPG Context Loading Failed</source> <translation type="unfinished">GnuPG 上下文加載失敗</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="189"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="187"/> <source>Gnupg(gpg) is not installed correctly, please follow <a href='https://www.gpgfrontend.bktus.com/#/faq?id=how-to-deal-with-39env-loading-failed39'>this notes</a> in FAQ to install Gnupg and then open GpgFrontend. <br />Or, you can open GnuPG Controller to set a custom GnuPG which GpgFrontend should use. Then, GpgFrontend will restart. <br /><br />Breif Reason: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> <source>No keys found to import</source> - <translation type="unfinished">找不到要導入的金鑰</translation> + <translation type="obsolete">找不到要導入的金鑰</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="437"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="445"/> <source>Timeout</source> <translation type="unfinished">暫停</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="252"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="250"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="381"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="253"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="251"/> <source>Gpg Operation succeed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="263"/> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="365"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="261"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="373"/> <source>Failure</source> <translation type="unfinished">失敗</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="264"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="262"/> <source>Gpg Operation failed. Error code: %1 @@ -632,92 +714,103 @@ Description: %3</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="277"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="294"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="497"/> <source>Error</source> <translation type="unfinished">錯誤</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="285"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="279"/> <source>Open Key</source> <translation type="unfinished">開關鍵</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="286"/> <source>Key Files</source> - <translation type="unfinished">關鍵文件</translation> + <translation type="obsolete">關鍵文件</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="287"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="280"/> <source>Keyring files</source> <translation type="unfinished">鑰匙圈文件</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="292"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="288"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="295"/> + <source>The target file is too large for a keyring.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="301"/> <source>File Open Failed</source> <translation type="unfinished">文件打開失敗</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="293"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="302"/> <source>Failed to open file: </source> <translation type="unfinished">開啟檔案失敗原因 : </translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="346"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="354"/> <source>Processing</source> <translation type="unfinished">加工</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="366"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> <source>Failed to execute command.</source> <translation type="unfinished">無法執行命令。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="374"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="382"/> <source>Succeed in executing command.</source> <translation type="unfinished">成功執行命令。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="376"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="384"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="377"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="385"/> <source>Finished executing command.</source> <translation type="unfinished">命令執行完畢。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="398"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="406"/> <source>Default Keyserver Not Found</source> <translation type="unfinished">未找到預設金鑰伺服器</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="399"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="407"/> <source>Cannot read default keyserver from your settings, please set a default keyserver first</source> <translation type="unfinished">無法從您的設定值中讀取預設金鑰伺服器,請先設定值預設金鑰伺服器</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="434"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="442"/> <source>Key Not Found</source> <translation type="unfinished">未找到金鑰</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="440"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="448"/> <source>Key Server Not Found</source> <translation type="unfinished">未找到金鑰伺服器</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="443"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="451"/> <source>Connection Error</source> <translation type="unfinished">連線錯誤</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="454"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="462"/> <source>The key has been updated</source> <translation type="unfinished">金鑰已更新</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="456"/> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="464"/> <source>No need to update the key</source> <translation type="unfinished">無需更新金鑰</translation> </message> @@ -902,12 +995,12 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FilePage</name> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="63"/> <source>Show Hidden File</source> <translation type="unfinished">顯示隱藏文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FilePage.cpp" line="70"/> + <location filename="../../../../src/ui/widgets/FilePage.cpp" line="69"/> <source>Show System File</source> <translation type="unfinished">顯示系統文件</translation> </message> @@ -915,131 +1008,136 @@ Description: %3</source> <context> <name>GpgFrontend::UI::FileTreeView</name> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="84"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="97"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="219"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="242"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="294"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="90"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="103"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="166"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="212"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="234"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="275"/> <source>Error</source> <translation type="unfinished">錯誤</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="85"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="91"/> <source>The path is not exists, unprivileged or unreachable.</source> <translation type="unfinished">該路徑不存在、沒有特權或無法存取。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="98"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="104"/> <source>The file is unprivileged or unreachable.</source> <translation type="unfinished">該文件沒有特權或無法存取。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="157"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="159"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="158"/> <source>Are you sure you want to delete it?</source> <translation type="unfinished">你確定要刪除嗎?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="167"/> <source>Unable to delete the file or folder.</source> <translation type="unfinished">無法刪除文件或文件夾。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="176"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="189"/> <source>Make New Directory</source> <translation type="unfinished">新建目錄</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="178"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="177"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="190"/> <source>Directory Name</source> <translation type="unfinished">目錄名稱</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Create Empty File</source> <translation type="unfinished">創建空文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="209"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="232"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="226"/> <source>Filename (you can given extension)</source> <translation type="unfinished">文件名(您可以指定擴展名)</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="220"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="243"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="235"/> <source>Unable to create the file.</source> <translation type="unfinished">無法創建文件。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="314"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="298"/> <source>Rename</source> <translation type="unfinished">改名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="277"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="267"/> <source>New Filename</source> <translation type="unfinished">新文件名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="295"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="276"/> <source>Unable to rename the file or folder.</source> <translation type="unfinished">無法重命名文件或文件夾。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="293"/> <source>Open</source> <translation type="unfinished">打開</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="319"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="303"/> <source>Delete</source> <translation type="unfinished">刪除</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="324"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="308"/> <source>Calculate Hash</source> <translation type="unfinished">計算哈希</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="329"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="313"/> <source>Directory</source> <translation type="unfinished">目錄</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="334"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="318"/> <source>File</source> <translation type="unfinished">文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="339"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="323"/> <source>Compress...</source> <translation type="unfinished">壓縮...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="346"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="330"/> <source>Open with Default System Application</source> <translation type="unfinished">使用預設系統應用程序打開</translation> </message> <message> - <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="335"/> <source>New</source> <translation type="unfinished">新的</translation> </message> + <message> + <location filename="../../../../src/ui/widgets/FileTreeView.cpp" line="393"/> + <source>Calculating</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::FindWidget</name> <message> - <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="46"/> + <location filename="../../../../src/ui/widgets/FindWidget.cpp" line="45"/> <source>Find</source> <translation type="unfinished">找</translation> </message> @@ -1103,23 +1201,28 @@ Description: %3</source> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="63"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="79"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="81"/> <source>Clear All Log (Total Size: %1)</source> <translation type="unfinished">清除所有日誌(總大小:%1)</translation> </message> <message> <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="66"/> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="93"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="95"/> <source>Clear All Data Objects (Total Size: %1)</source> <translation type="unfinished">清除所有數據對象(總大小:%1)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="69"/> + <source>Reveal in File Explorer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="88"/> <source>Confirm</source> <translation type="unfinished">確認</translation> </message> <message> - <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="87"/> + <location filename="../../../../src/ui/dialog/settings/SettingsGeneral.cpp" line="89"/> <source>Are you sure you want to clear all data objects? This will result in loss of all cached form positions, statuses, key servers, etc.</source> <translation type="unfinished">您確定要清除所有數據對象嗎?這將導致所有緩存的表單位置、狀態、金鑰伺服器等丟失。</translation> @@ -1143,9 +1246,13 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">先進的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> <source>No ASCII Mode</source> - <translation type="unfinished">無 ASCII 模式</translation> + <translation type="obsolete">無 ASCII 模式</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="49"/> + <source>Use Binary Mode for File Operations</source> + <translation type="unfinished"></translation> </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="51"/> @@ -1154,86 +1261,92 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="52"/> + <source>Enable GpgME Debug Log</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> <source>Use Custom GnuPG</source> <translation type="unfinished">使用自定義 GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="54"/> <source>Select GnuPG Path</source> <translation type="unfinished">選擇 GnuPG 路徑</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="56"/> <source>Use Custom GnuPG Key Database Path</source> <translation type="unfinished">使用自定義 GnuPG 金鑰數據庫路徑</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="58"/> <source>Select Key Database Path</source> <translation type="unfinished">選擇金鑰數據庫路徑</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="60"/> + <source>Restart Gpg Agent on start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="64"/> <source>Tips: please select a directroy where "gpgconf" is located in.</source> <translation type="unfinished">提示:請選擇“gpgconf”所在目錄。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="66"/> <source>Tips: notice that modify any of these settings will cause an Application restart.</source> <translation type="unfinished">提示:請注意,修改任何這些設定值都會導致應用程序重新啟動。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="95"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="98"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="118"/> <source>Open Directory</source> <translation type="unfinished">打開目錄</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="171"/> <source>GnuPG Controller</source> <translation type="unfinished">GnuPG 控制器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="331"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="339"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="346"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="358"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="356"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="375"/> <source>Illegal GnuPG Path</source> <translation type="unfinished">非法 GnuPG 路徑</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="332"/> <source>Target GnuPG Path is empty.</source> - <translation type="unfinished">目標 GnuPG 路徑為空。</translation> + <translation type="obsolete">目標 GnuPG 路徑為空。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="340"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="357"/> <source>Target GnuPG Path is not an exists readable directory.</source> <translation type="unfinished">目標 GnuPG 路徑不是現有的可讀目錄。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="347"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="364"/> <source>Target GnuPG Path is not an absolute path.</source> <translation type="unfinished">目標 GnuPG 路徑不是絕對路徑。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> <source>Target GnuPG Path contains no "gpgconf" executable.</source> <translation type="unfinished">目標 GnuPG 路徑不包含“gpgconf”可執行文件。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="369"/> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="376"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="389"/> <source>Illegal GnuPG Key Database Path</source> <translation type="unfinished">非法的 GnuPG 金鑰數據庫路徑</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="370"/> <source>Target GnuPG Key Database Path is empty.</source> - <translation type="unfinished">目標 GnuPG 金鑰數據庫路徑為空。</translation> + <translation type="obsolete">目標 GnuPG 金鑰數據庫路徑為空。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="377"/> + <location filename="../../../../src/ui/dialog/gnupg/GnuPGControllerDialog.cpp" line="390"/> <source>Target GnuPG Key Database Path is not an exists readable directory.</source> <translation type="unfinished">目標 GnuPG 金鑰數據庫路徑不是現有的可讀目錄。</translation> </message> @@ -1247,7 +1360,7 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="44"/> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Description</source> <translation type="unfinished">描述</translation> </message> @@ -1273,31 +1386,50 @@ This will result in loss of all cached form positions, statuses, key servers, et </message> <message> <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="48"/> + <source>Directories</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="49"/> + <source>Options</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Directory Type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="68"/> + <source>Path</source> + <translation type="unfinished"></translation> + </message> + <message> <source>Configurations</source> - <translation type="unfinished">配置</translation> + <translation type="obsolete">配置</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Component</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Group</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="89"/> <source>Key</source> <translation type="unfinished">鑰匙</translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="90"/> <source>Default Value</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/help/GnupgTab.cpp" line="91"/> <source>Value</source> <translation type="unfinished">價值</translation> </message> @@ -1447,27 +1579,27 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> <source>KeyPair</source> <translation type="unfinished">金鑰對</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> <source>UIDs</source> <translation type="unfinished">UID</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="45"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="50"/> <source>Subkeys</source> <translation type="unfinished">子鍵</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="47"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="52"/> <source>Operations</source> <translation type="unfinished">運作中</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyDetailsDialog.cpp" line="69"/> <source>Key Details</source> <translation type="unfinished">關鍵細節</translation> </message> @@ -1611,108 +1743,113 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyImportDetailDialog</name> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="42"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="44"/> <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="61"/> <source>Key Import Details</source> <translation type="unfinished">金鑰導入詳細信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="43"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="45"/> <source>No keys found to import</source> <translation type="unfinished">找不到要導入的金鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="73"/> <source>General key info</source> <translation type="unfinished">一般關鍵信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="77"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="76"/> <source>Considered</source> <translation type="unfinished">經過考慮的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="83"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="82"/> <source>Public unchanged</source> <translation type="unfinished">公開不變</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="89"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="88"/> <source>Imported</source> <translation type="unfinished">進口</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="95"/> <source>Not Imported</source> <translation type="unfinished">未進口</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="103"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="102"/> <source>Private Read</source> <translation type="unfinished">私用閱讀</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="110"/> <source>Private Imported</source> <translation type="unfinished">私用進口</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="118"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="117"/> <source>Private Unchanged</source> <translation type="unfinished">私用不變</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="123"/> + <source>New Revocations</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Name</source> <translation type="unfinished">姓名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Email</source> <translation type="unfinished">電子郵件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="139"/> <source>Status</source> <translation type="unfinished">狀態</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="140"/> <source>Fingerprint</source> <translation type="unfinished">指紋</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="160"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> <source>Private</source> <translation type="unfinished">私用</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="163"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> <source>Public</source> <translation type="unfinished">民眾</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="166"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> <source>Unchanged</source> <translation type="unfinished">不變</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="169"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="175"/> <source>New Key</source> <translation type="unfinished">新增鑰匙</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="172"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="178"/> <source>New Subkey</source> <translation type="unfinished">新增子系金鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="176"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="182"/> <source>New Signature</source> <translation type="unfinished">新增簽署檔</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="180"/> + <location filename="../../../../src/ui/dialog/import_export/KeyImportDetailDialog.cpp" line="186"/> <source>New UID</source> <translation type="unfinished">新 UID</translation> </message> @@ -1765,82 +1902,87 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">搜索鑰匙...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Select</source> <translation type="unfinished">選擇</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Type</source> <translation type="unfinished">類型</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Name</source> <translation type="unfinished">姓名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="167"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="170"/> <source>Email Address</source> <translation type="unfinished">電子郵件位址</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Usage</source> <translation type="unfinished">用法</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Trust</source> <translation type="unfinished">相信</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="168"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> <source>Finger Print</source> <translation type="unfinished">指紋</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="183"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="171"/> + <source>Key ID</source> + <translation type="unfinished">鑰匙編號</translation> + </message> + <message> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="186"/> <source>Refreshing Key List...</source> <translation type="unfinished">正在刷新金鑰列表...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="351"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> <source>Import Keys</source> <translation type="unfinished">導入金鑰</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="353"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="356"/> <source>You've dropped something on the table.</source> <translation type="unfinished">你把東西掉在桌子上了。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="354"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> <source>GpgFrontend will now try to import key(s).</source> <translation type="unfinished">GpgFrontend 現在將嘗試導入金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="357"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="360"/> <source>Always import without bothering.</source> <translation type="unfinished">始終導入而無需打擾。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="452"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="455"/> <source>Key List Refreshed.</source> <translation type="unfinished">金鑰列表已刷新。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="473"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="476"/> <source>Syncing Key List...</source> <translation type="unfinished">正在同步金鑰列表...</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="481"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="484"/> <source>Sync [%1/%2] %3 %4</source> <translation type="unfinished">同步 [%1/%2] %3 %4</translation> </message> <message> - <location filename="../../../../src/ui/widgets/KeyList.cpp" line="491"/> + <location filename="../../../../src/ui/widgets/KeyList.cpp" line="494"/> <source>Key List Sync Done.</source> <translation type="unfinished">金鑰列表同步完成。</translation> </message> @@ -1848,347 +1990,368 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyMgmt</name> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> <source>All</source> <translation type="unfinished">全部</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="61"/> <source>Only Public Key</source> <translation type="unfinished">只有公鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="71"/> <source>Has Private Key</source> <translation type="unfinished">有私鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="77"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="81"/> <source>No Primary Key</source> <translation type="unfinished">無主鍵</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="86"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="90"/> <source>Revoked</source> <translation type="unfinished">撤銷</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="94"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="98"/> <source>Expired</source> <translation type="unfinished">已到期</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="123"/> <source>KeyPair Management</source> <translation type="unfinished">金鑰對管理</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="144"/> <source>Open</source> <translation type="unfinished">打開</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="142"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> <source>Open Key File</source> <translation type="unfinished">打開金鑰文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="146"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="149"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="153"/> <source>Close</source> <translation type="unfinished">關閉</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="152"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="156"/> <source>New Keypair</source> <translation type="unfinished">新金鑰對</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> <source>Generate KeyPair</source> <translation type="unfinished">生成金鑰對</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> <source>New Subkey</source> <translation type="unfinished">新增子系金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="163"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> <source>Generate Subkey For Selected KeyPair</source> <translation type="unfinished">為選定的金鑰對生成子金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="167"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="257"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="171"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> <source>File</source> <translation type="unfinished">文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> <source>Import New Key From File</source> <translation type="unfinished">從文件導入新金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="173"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> <source>Clipboard</source> <translation type="unfinished">剪貼板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="181"/> <source>Import New Key From Clipboard</source> <translation type="unfinished">從剪貼板導入新金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="188"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> <source>Keyserver</source> <translation type="unfinished">金鑰伺服器</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="192"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="196"/> <source>Import New Key From Keyserver</source> <translation type="unfinished">從金鑰伺服器導入新金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="198"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="531"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="202"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Key Package</source> <translation type="unfinished">鑰匙包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="201"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> <source>Import Key(s) From a Key Package</source> <translation type="unfinished">從金鑰包導入金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="205"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> <source>Export To Clipboard</source> <translation type="unfinished">導出到剪貼板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="209"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> <source>Export Checked Key(s) To Clipboard</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="213"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="217"/> <source>Export As Key Package</source> <translation type="unfinished">導出為金鑰包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> <source>Export Checked Key(s) To a Key Package</source> <translation type="unfinished">將檢查的金鑰導出到金鑰包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="220"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="224"/> <source>Export As OpenSSH</source> <translation type="unfinished">導出為 OpenSSH</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="223"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> <source>Export Checked Key As OpenSSH Format to File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="227"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="231"/> <source>Delete Selected Key(s)</source> <translation type="unfinished">刪除選定的鍵</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="228"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> <source>Delete the Selected keys</source> <translation type="unfinished">刪除選定的鍵</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="232"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="236"/> <source>Delete Checked Key(s)</source> <translation type="unfinished">刪除選中的金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="233"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="237"/> <source>Delete the Checked keys</source> <translation type="unfinished">刪除選中的鍵</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="238"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="242"/> <source>Show Key Details</source> <translation type="unfinished">顯示關鍵細節</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="239"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> <source>Show Details for this Key</source> <translation type="unfinished">顯示此鍵的詳細信息</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="243"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="244"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="248"/> <source>Set Owner Trust Level</source> <translation type="unfinished">設定所有者信任級別</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="261"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="281"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="285"/> <source>Key</source> <translation type="unfinished">鑰匙</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="262"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> <source>Generate Key</source> <translation type="unfinished">生成金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="266"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="294"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="270"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="298"/> <source>Import Key</source> <translation type="unfinished">導入金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="272"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="276"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="306"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="307"/> <source>Export Key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="293"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="297"/> <source>Import key</source> <translation type="unfinished">導入金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="302"/> - <source>Export key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="336"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="340"/> <source>Deleting Keys</source> <translation type="unfinished">刪除金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="337"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="341"/> <source>Are you sure that you want to delete the following keys?</source> <translation type="unfinished">您確定要刪除以下鍵嗎?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="343"/> <source>The action can not be undone.</source> <translation type="unfinished">該操作無法撤消。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="404"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="416"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="483"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="507"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="551"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="408"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="420"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="487"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="498"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="511"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="541"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="549"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="565"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="573"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="589"/> <source>Error</source> <translation type="unfinished">錯誤</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="355"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="444"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="359"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> <source>Key Not Found.</source> <translation type="unfinished">未找到金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="379"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="462"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="468"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="370"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="383"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="466"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="472"/> <source>Forbidden</source> <translation type="unfinished">禁止的</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="367"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="371"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="384"/> <source>Please check some keys before doing this operation.</source> <translation type="unfinished">請在執行此操作之前檢查一些鍵。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="372"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="376"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="524"/> <source>key(s) exported</source> <translation type="unfinished">導出的金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="396"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="475"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="400"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="479"/> <source>Exporting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="405"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="417"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="495"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="409"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="421"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="488"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="499"/> <source>Unknown error occurred</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="438"/> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="448"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="442"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="452"/> <source>Invalid Operation</source> <translation type="unfinished">無效操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="439"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="443"/> <source>Please select one KeyPair before doing this operation.</source> <translation type="unfinished">請在執行此操作前選擇一個 KeyPair。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="449"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="453"/> <source>If a key pair does not have a private key then it will not be able to generate sub-keys.</source> <translation type="unfinished">如果金鑰對沒有私鑰,那麼它將無法生成子金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="463"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="467"/> <source>Please check a key before performing this operation.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="469"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="473"/> <source>This operation accepts just a single key.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="512"/> <source>This key may not be able to export as OpenSSH format. Please check the key-size of the subkey(s) used to sign.</source> <translation type="unfinished">此金鑰可能無法導出為 OpenSSH 格式。請檢查用於簽名的子金鑰的金鑰大小。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="515"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="519"/> <source>Export OpenSSH Key To File</source> <translation type="unfinished">將 OpenSSH 金鑰導出到文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="516"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="520"/> <source>OpenSSH Public Key Files</source> <translation type="unfinished">OpenSSH 公鑰文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="530"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="532"/> <source>Import Key Package</source> <translation type="unfinished">導入金鑰包</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="534"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="542"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="566"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="550"/> + <source>The target file is too large for a key package.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="555"/> <source>Import Key Package Passphrase File</source> <translation type="unfinished">導入金鑰包密碼文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="535"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="556"/> <source>Key Package Passphrase File</source> <translation type="unfinished">金鑰包密碼文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="545"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="574"/> + <source>The target file is too large for a key package passphrase.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="580"/> + <source>Importing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="596"/> <source>key(s) imported</source> <translation type="unfinished">導入的金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="552"/> + <location filename="../../../../src/ui/main_window/KeyMgmt.cpp" line="590"/> <source>An error occur in importing key package.</source> <translation type="unfinished">導入金鑰包出錯。</translation> </message> @@ -2374,17 +2537,17 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">永不過期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="258"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="257"/> <source>No Data</source> <translation type="unfinished">沒有數據</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="275"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="274"/> <source>Warning: The primary key has expired.</source> <translation type="unfinished">警告:主鍵已過期。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairDetailTab.cpp" line="279"/> <source>Warning: The primary key has been revoked.</source> <translation type="unfinished">警告:主鍵已被撤銷。</translation> </message> @@ -2392,201 +2555,256 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::KeyPairOperaTab</name> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="53"/> <source>General Operations</source> <translation type="unfinished">一般操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="59"/> <source>Export Public Key</source> <translation type="unfinished">導出公鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="63"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="65"/> <source>Export Private Key</source> <translation type="unfinished">導出私鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="70"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="72"/> <source>Modify Expiration Datetime (Primary Key)</source> <translation type="unfinished">修改到期日期時間(主鍵)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="73"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="75"/> <source>Modify Password</source> <translation type="unfinished">修改密碼</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="92"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="93"/> <source>Key Server Operation (Pubkey)</source> <translation type="unfinished">金鑰伺服器操作(公鑰)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="100"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="177"/> <source>Generate Revoke Certificate</source> <translation type="unfinished">生成撤銷證書</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="106"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="107"/> <source>Modify TOFU Policy</source> <translation type="unfinished">修改豆腐政策</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="111"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="101"/> + <source>Revoke Certificate Operation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="114"/> <source>Set Owner Trust Level</source> <translation type="unfinished">設定所有者信任級別</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="135"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="138"/> <source>Upload Key Pair to Key Server</source> <translation type="unfinished">上傳金鑰對到金鑰伺服器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="143"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="146"/> <source>Sync Key Pair From Key Server</source> <translation type="unfinished">從金鑰伺服器同步金鑰對</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="158"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="161"/> <source>Export Full Secret Key</source> <translation type="unfinished">導出完整金鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="164"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="167"/> <source>Export Shortest Secret Key</source> <translation type="unfinished">導出最短金鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="191"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="237"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="280"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="182"/> + <source>Import Revoke Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="298"/> <source>Export Key To File</source> <translation type="unfinished">將金鑰導出到文件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="192"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="238"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="299"/> <source>Key Files</source> <translation type="unfinished">關鍵文件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="197"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="243"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="286"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="261"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="304"/> <source>Export Error</source> <translation type="unfinished">導出錯誤</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="198"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="244"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="287"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="216"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="262"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="305"/> <source>Couldn't open %1 for writing</source> <translation type="unfinished">無法打開 %1 進行寫入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="206"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="224"/> <source>Exporting short private Key</source> <translation type="unfinished">導出短私鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="207"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="272"/> <source>You are about to export your</source> <translation type="unfinished">您即將導出您的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="208"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="255"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="226"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="273"/> <source> PRIVATE KEY </source> <translation type="unfinished"> 私密金鑰 </translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="209"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="256"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="274"/> <source>This is NOT your Public Key, so DON'T give it away.</source> <translation type="unfinished">這不是你的公鑰,所以不要把它洩露出去。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="210"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="228"/> <source>Do you REALLY want to export your PRIVATE KEY in a Minimum Size?</source> <translation type="unfinished">您真的想以最小尺寸導出您的私鑰嗎?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="231"/> <source>For OpenPGP keys it removes all signatures except for the latest self-signatures.</source> <translation type="unfinished">對於 OpenPGP 金鑰,它會刪除除最新的自簽名之外的所有簽名。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="253"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="271"/> <source>Exporting private Key</source> <translation type="unfinished">導出私鑰</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="275"/> <source>Do you REALLY want to export your PRIVATE KEY?</source> <translation type="unfinished">你真的想導出你的私鑰嗎?</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="329"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="412"/> <source>Revocation Certificates</source> <translation type="unfinished">吊銷證書</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="326"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="340"/> <source>Generate revocation certificate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="357"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> <source>Policy Auto</source> <translation type="unfinished">政策自動</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="359"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="373"/> <source>Policy Good</source> <translation type="unfinished">政策好</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="347"/> <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="361"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="375"/> <source>Policy Bad</source> <translation type="unfinished">政策不好</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="363"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="377"/> <source>Policy Ask</source> <translation type="unfinished">政策諮詢</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="348"/> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="365"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="362"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="379"/> <source>Policy Unknown</source> <translation type="unfinished">政策未知</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="352"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="366"/> <source>Modify TOFU Policy(Default is Auto)</source> <translation type="unfinished">修改TOFU 政策(預設為自動)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="353"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="367"/> <source>Policy for the Key Pair:</source> <translation type="unfinished">金鑰對策略:</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="384"/> <source>Not Successful</source> <translation type="unfinished">不成功</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="371"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="385"/> <source>Modify TOFU policy not successfully.</source> <translation type="unfinished">修改 TOFU 策略不成功。</translation> </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="399"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="411"/> + <source>Import Key Revocation Certificate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="400"/> + <source>You are about to import the</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="401"/> + <source>REVOCATION CERTIFICATE</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="402"/> + <source>A successful import will result in the key being irreversibly revoked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="404"/> + <source>Do you REALLY want to execute this operation?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="420"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="429"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="437"/> + <source>Error</source> + <translation type="unfinished">錯誤</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="421"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="438"/> + <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairOperaTab.cpp" line="430"/> + <source>The target file is too large for a key revocation certificate.</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>GpgFrontend::UI::KeyPairSubkeyTab</name> @@ -2682,12 +2900,12 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">到期日期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="202"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="203"/> <source>Never Expire</source> <translation type="unfinished">永不過期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="239"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyPairSubkeyTab.cpp" line="240"/> <source>Never Expires</source> <translation type="unfinished">永不過期</translation> </message> @@ -3073,12 +3291,22 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">找到 %1 個金鑰。雙擊一個鍵來導入它。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="415"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="371"/> + <source>Warning</source> + <translation type="unfinished">警告</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="372"/> + <source>Please select one KeyPair before doing this operation.</source> + <translation type="unfinished">請在執行此操作前選擇一個 KeyPair。</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="419"/> <source>Key Imported</source> <translation type="unfinished">鑰匙進口</translation> </message> <message> - <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="426"/> + <location filename="../../../../src/ui/dialog/import_export/KeyServerImportDialog.cpp" line="430"/> <source>Processing ...</source> <translation type="unfinished"></translation> </message> @@ -3162,32 +3390,32 @@ This will result in loss of all cached form positions, statuses, key servers, et <translation type="unfinished">簽名者</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="86"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="80"/> <source>Expire Date</source> <translation type="unfinished">到期日期</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="96"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="90"/> <source>Sign For Key's UID(s)</source> <translation type="unfinished">為金鑰的 UID 簽名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="114"/> <source>Unsuccessful Operation</source> <translation type="unfinished">不成功的操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="115"/> <source>Signature operation failed for UID %1</source> <translation type="unfinished">UID %1 的簽名操作失敗</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="126"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="120"/> <source>Operation Complete</source> <translation type="unfinished">操作完成</translation> </message> <message> - <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="127"/> + <location filename="../../../../src/ui/dialog/keypair_details/KeyUIDSignDialog.cpp" line="121"/> <source>The signature operation of the UID is complete</source> <translation type="unfinished">UID的簽名操作完成</translation> </message> @@ -3377,546 +3605,556 @@ This will result in loss of all cached form positions, statuses, key servers, et <context> <name>GpgFrontend::UI::MainWindow</name> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="164"/> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="167"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="158"/> <source>Critical error occur while loading GpgFrontend.</source> <translation type="unfinished">加載 GpgFrontend 時發生嚴重錯誤。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindow.cpp" line="157"/> <source>Loading Failed</source> <translation type="unfinished">加載失敗</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="48"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="100"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="143"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="162"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="187"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="214"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="257"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="276"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="293"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="307"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="325"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="342"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="356"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="375"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="430"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="449"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="484"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="503"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="528"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="568"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="605"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="631"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="671"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="709"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="735"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="768"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="801"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="811"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="836"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="72"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="119"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="175"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="208"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="244"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="320"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="366"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="242"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="250"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="145"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="164"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="216"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="260"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="311"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="329"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="347"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="361"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="380"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="435"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="454"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="489"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="508"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="536"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="613"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="639"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="717"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="743"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="775"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="822"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="847"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="74"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="121"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="177"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="210"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="246"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="322"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="368"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="255"/> <source>Error</source> <translation type="unfinished">錯誤</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="49"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="163"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="277"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="326"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="376"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="450"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="529"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="632"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="736"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="802"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="50"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="165"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="280"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="330"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="381"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="455"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="537"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="640"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="744"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="813"/> <source>Cannot read from file: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="176"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="178"/> <source>The target file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">目標文件 %1 已經存在,是否需要覆蓋?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="65"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="179"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="284"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="333"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="411"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="575"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="678"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="750"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="817"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="66"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="181"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="288"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="338"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="416"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="583"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="686"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="757"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="828"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="74"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="188"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="294"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="343"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="569"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="672"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="745"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="812"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="190"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="298"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="577"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="680"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="752"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="823"/> <source>Cannot write to file: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="83"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="197"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="52"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="199"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="54"/> <source>Symmetric Encryption</source> <translation type="unfinished">對稱加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="84"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="198"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="200"/> <source>No Key Selected. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">未選擇金鑰。您想使用密碼使用對稱密碼進行加密嗎?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="90"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="61"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="63"/> <source>Symmetrically Encrypting</source> <translation type="unfinished">對稱加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="144"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="215"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="258"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="308"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="357"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="431"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="504"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="606"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="710"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="769"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="837"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="73"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="120"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="176"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="209"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="245"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="321"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="367"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="102"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="217"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="261"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="312"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="362"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="509"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="614"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="718"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="776"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="848"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="75"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="178"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="211"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="247"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="323"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="369"/> <source>Unknown error occurred</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="125"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="550"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="653"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="277"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="558"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="661"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> <source>Invalid KeyPair</source> <translation type="unfinished">無效的金鑰對</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="126"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="240"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="654"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="278"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="242"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="559"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="662"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="280"/> <source>The selected keypair cannot be used for encryption.</source> <translation type="unfinished">所選的金鑰對不能用於加密。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="127"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="241"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="552"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="655"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="279"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="128"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="560"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="663"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="159"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="281"/> <source>For example the Following Key:</source> <translation type="unfinished">例如以下鍵:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="134"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="109"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="135"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="111"/> <source>Encrypting</source> <translation type="unfinished">加密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="204"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="206"/> <source>Archiving & Symmetrically Encrypting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="250"/> <source>Archiving & Encrypting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="285"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="334"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="576"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="679"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="289"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="339"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="584"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="687"/> <source>The target file already exists, do you need to overwrite it?</source> <translation type="unfinished">目標文件已經存在,是否需要覆蓋?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="299"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="200"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="303"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="202"/> <source>Decrypting</source> <translation type="unfinished">解密</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="348"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/> <source>Decrypting & Extrating</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="385"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="539"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="642"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="145"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="265"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="390"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="547"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="650"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="147"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="267"/> <source>No Key Checked</source> <translation type="unfinished">未檢查金鑰</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="386"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="540"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="643"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="391"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="548"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="651"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="148"/> <source>Please check the key in the key toolbox on the right.</source> <translation type="unfinished">請檢查右側鑰匙工具箱中的鑰匙。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="393"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="98"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="154"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="398"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="156"/> <source>Invalid Operation</source> <translation type="unfinished">無效操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="394"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="399"/> <source>The selected key contains a key that does not actually have a sign usage.</source> <translation type="unfinished">所選金鑰包含一個實際上沒有符號用法的金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="396"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="401"/> <source>for example the Following Key:</source> <translation type="unfinished">例如以下鍵:</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="412"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="417"/> <source>The signature file "%1" exists, do you need to overwrite it?</source> <translation type="unfinished">簽名文件“%1”存在,是否需要覆蓋?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="421"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="166"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="426"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="168"/> <source>Signing</source> <translation type="unfinished">簽約</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="470"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="475"/> <source>File to be Verified</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="471"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="476"/> <source>Please provide An ABSOLUTE Path If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="485"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="490"/> <source>Please select the appropriate origin file or signature file. Ensure that both are in this directory.</source> <translation type="unfinished">請選擇合適的源文件或簽名文件。確保兩者都在此目錄中。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="494"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="235"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="499"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="237"/> <source>Verifying</source> <translation type="unfinished">驗證</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="594"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="308"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="602"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="310"/> <source>Encrypting and Signing</source> <translation type="unfinished">加密和簽名</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="697"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="705"/> <source>Archiving & Encrypting & Signing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="751"/> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="818"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="758"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="829"/> <source>The output file %1 already exists, do you need to overwrite it?</source> <translation type="unfinished">輸出文件 %1 已經存在,是否需要覆蓋?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="760"/> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="356"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="767"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="358"/> <source>Decrypting and Verifying</source> <translation type="unfinished">解密和驗證</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="827"/> + <location filename="../../../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="838"/> <source>Decrypting & Verifying & Extracting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="53"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="55"/> <source>No Key Checked. Do you want to encrypt with a symmetric cipher using a passphrase?</source> <translation type="unfinished">未檢查金鑰。您想使用密碼短語使用對稱密碼進行加密嗎?</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="99"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="101"/> <source>The selected key contains a key that does not actually have a encrypt usage.</source> <translation type="unfinished">所選金鑰包含一個實際上沒有加密用途的金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="155"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="157"/> <source>The selected key contains a key that does not actually have a signature usage.</source> <translation type="unfinished">所選金鑰包含一個實際上沒有簽名用法的金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="266"/> + <location filename="../../../../src/ui/main_window/MainWindowGpgOperaFunction.cpp" line="268"/> <source>Please check some key in the key toolbox on the right.</source> <translation type="unfinished">請檢查右側鑰匙工具箱中的一些鑰匙。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="96"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="116"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="148"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="161"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="174"/> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="189"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="97"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="120"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="156"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="169"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="182"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="197"/> <source>Key Not Found.</source> <translation type="unfinished">未找到金鑰。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="101"/> - <source> (Local Time) </source> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/> + <source>Localize</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="105"/> + <source>UTC</source> + <translation type="unfinished">世界標準時間</translation> + </message> + <message> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/> + <source>Local Time</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="243"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="248"/> <source>Cannot open this file. Please make sure that this is a regular file and it's readable.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="251"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="256"/> <source>Cannot open this file. The file is TOO LARGE (>1MB) for GpgFrontend Text Editor.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="297"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="302"/> <source>GpgFrontend Upgradeable (New Version: %1).</source> <translation type="unfinished">GpgFrontend 可升級(新版本:%1)。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="307"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/> <source>Withdrawn Version</source> <translation type="unfinished">撤回版</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="309"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> <source>This version(%1) may have been withdrawn by the developer due to serious problems. Please stop using this version immediately and use the latest stable version.</source> <translation type="unfinished">由於嚴重問題,此版本(%1) 可能已被開發人員撤回。請立即停止使用此版本並使用最新的穩定版本。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="314"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> <source>You can download the latest stable version(%1) on Github Releases Page.<br/></source> <translation type="unfinished">您可以在 Github Releases Page 上下載最新的穩定版本 (%1)。<br/></translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="319"/> + <location filename="../../../../src/ui/main_window/MainWindowSlotFunction.cpp" line="324"/> <source>This maybe a BETA Version (Latest Stable Version: %1).</source> <translation type="unfinished">這可能是 BETA 版本(最新穩定版本:%1)。</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="45"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="44"/> <source>New</source> <translation type="unfinished">新的</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="51"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="50"/> <source>Open a new file</source> <translation type="unfinished">打開一個新文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="54"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="53"/> <source>Open...</source> <translation type="unfinished">打開...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="57"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="56"/> <source>Open an existing file</source> <translation type="unfinished">打開現有文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="60"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="59"/> <source>File Browser</source> <translation type="unfinished">文件瀏覽器</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="63"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="62"/> <source>Open a file browser</source> <translation type="unfinished">打開文件瀏覽器</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="67"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="66"/> <source>Save File</source> <translation type="unfinished">保存存檔</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="70"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="69"/> <source>Save the current File</source> <translation type="unfinished">保存當前文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="73"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="72"/> <source>Save As</source> <translation type="unfinished">另存為</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="76"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="75"/> <source>Save the current File as...</source> <translation type="unfinished">將當前文件另存為...</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="79"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="78"/> <source>Print</source> <translation type="unfinished">打印</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="82"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="81"/> <source>Print Document</source> <translation type="unfinished">打印文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="85"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="84"/> <source>Close</source> <translation type="unfinished">關閉</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="87"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="86"/> <source>Close file</source> <translation type="unfinished">關閉文件</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="90"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="89"/> <source>Quit</source> <translation type="unfinished">退出</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="93"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="92"/> <source>Quit Program</source> <translation type="unfinished">退出程序</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="98"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="97"/> <source>Undo</source> <translation type="unfinished">撤消</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="100"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="99"/> <source>Undo Last Edit Action</source> <translation type="unfinished">撤消上次編輯操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="103"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="102"/> <source>Redo</source> <translation type="unfinished">重做</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="105"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="104"/> <source>Redo Last Edit Action</source> <translation type="unfinished">重做上次編輯操作</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="108"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="107"/> <source>Zoom In</source> <translation type="unfinished">放大</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="112"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="111"/> <source>Zoom Out</source> <translation type="unfinished">縮小</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="116"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="115"/> <source>Paste</source> <translation type="unfinished">粘貼</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="119"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="118"/> <source>Paste Text From Clipboard</source> <translation type="unfinished">從剪貼板粘貼文本</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="122"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="121"/> <source>Cut</source> <translation type="unfinished">切</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="126"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="125"/> <source>Cut the current selection's contents to the clipboard</source> <translation type="unfinished">將當前選擇的內容剪切到剪貼板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="130"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="129"/> <source>Copy</source> <translation type="unfinished">複製</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="134"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="133"/> <source>Copy the current selection's contents to the clipboard</source> <translation type="unfinished">將當前選擇的內容複製到剪貼板</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="138"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="137"/> <source>Quote</source> <translation type="unfinished">引用</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="140"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="139"/> <source>Quote whole text</source> <translation type="unfinished">引用全文</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="143"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="142"/> <source>Select All</source> <translation type="unfinished">全選</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="146"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="145"/> <source>Select the whole text</source> <translation type="unfinished">選擇整個文本</translation> </message> <message> - <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="150"/> + <location filename="../../../../src/ui/main_window/MainWindowUI.cpp" line="149"/> <source>Find</source> <translation type="unfinished">找</translation> </message> @@ -4528,7 +4766,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="63"/> - <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/PlainTextEditorPage.cpp" line="196"/> <source>%1 character(s)</source> <translation type="unfinished">%1 個字符</translation> </message> @@ -4615,7 +4853,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> <message> <location filename="../../../../src/ui/function/RaisePinentry.cpp" line="91"/> - <source>Buddled Pinentry</source> + <source>Bundled Pinentry</source> <translation type="unfinished"></translation> </message> <message> @@ -4918,54 +5156,54 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished">打開目錄</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="143"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="203"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="422"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>Warning</source> <translation type="unfinished">警告</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="145"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="205"/> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="424"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="144"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="423"/> <source>Cannot read file %1: %2.</source> <translation type="unfinished">無法讀取文件 %1: %2。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="152"/> <source>Open file</source> <translation type="unfinished">打開文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="222"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="221"/> <source>Save file</source> <translation type="unfinished">保存存檔</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="282"/> <source>Unsaved document</source> <translation type="unfinished">未保存的文件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="284"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="283"/> <source>The document "%1" has been modified. Do you want to save your changes?</source> <translation type="unfinished">文檔“%1”已被修改。是否要保存更改?</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="286"/> <source>Note:</source> <translation type="unfinished">筆記:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="288"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="287"/> <source>If you don't save these files, all changes are lost.</source> <translation type="unfinished">如果您不保存這些文件,所有更改都將丟失。</translation> </message> <message> - <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="460"/> + <location filename="../../../../src/ui/widgets/TextEdit.cpp" line="459"/> <source>No document to print</source> <translation type="unfinished"></translation> </message> @@ -5045,27 +5283,27 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyDetailsDialog</name> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="38"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="39"/> <source>Signatures Details</source> <translation type="unfinished">簽名詳情</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="62"/> <source>No valid input found</source> <translation type="unfinished">找不到有效的輸入</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="71"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="72"/> <source>Error Validating signature</source> <translation type="unfinished">驗證簽名時出錯</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="74"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> <source>File was signed on %1</source> <translation type="unfinished">文件已在 %1 上簽名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="75"/> + <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="76"/> <location filename="../../../../src/ui/dialog/details/VerifyDetailsDialog.cpp" line="80"/> <source>It Contains</source> <translation type="unfinished">它包含了</translation> @@ -5079,154 +5317,154 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <context> <name>GpgFrontend::UI::VerifyKeyDetailBox</name> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="53"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="54"/> <source>Import from keyserver</source> <translation type="unfinished">從金鑰伺服器導入</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="58"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="59"/> <source>Key not present with id 0x</source> <translation type="unfinished">不存在 ID 為 0x 的金鑰</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Status</source> <translation type="unfinished">狀態</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="62"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="63"/> <source>:</source> <translation type="unfinished">:</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="64"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="65"/> <source>Key not present in key list</source> <translation type="unfinished">金鑰不在金鑰列表中</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="72"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="73"/> <source>A Signature</source> <translation type="unfinished">一個簽名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="77"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="92"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="107"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="123"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="138"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="153"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="78"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="93"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="108"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="124"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="139"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="154"/> <source>Key Information is NOT Available</source> <translation type="unfinished">關鍵信息不可用</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="79"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="94"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="109"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="125"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="140"/> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="155"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="80"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="95"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="110"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="126"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="141"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="156"/> <source>Fingerprint</source> <translation type="unfinished">指紋</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="87"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="88"/> <source>Cert Revoked</source> <translation type="unfinished">證書吊銷</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="102"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="103"/> <source>Signature Expired</source> <translation type="unfinished">簽名過期</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="117"/> <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="118"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="119"/> <source>Key Expired</source> <translation type="unfinished">金鑰過期</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="133"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="134"/> <source>General Error</source> <translation type="unfinished">一般錯誤</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="148"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="149"/> <source>Unknown Error </source> <translation type="unfinished">異常錯誤 </translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="176"/> <source>Signer Name</source> <translation type="unfinished">簽名者姓名</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="177"/> <source>Signer Email</source> <translation type="unfinished">簽名者電子郵件</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="178"/> <source>Key's Fingerprint</source> <translation type="unfinished">鑰匙的指紋</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="181"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="179"/> <source>Valid</source> <translation type="unfinished">有效的</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="182"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="180"/> <source>Flags</source> <translation type="unfinished">旗幟</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="187"/> <source>Fully Valid</source> <translation type="unfinished">完全有效</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="191"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="189"/> <source>NOT Fully Valid</source> <translation type="unfinished">不完全有效</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="198"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="196"/> <source>Good</source> <translation type="unfinished">好的</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="201"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="199"/> <source>Bad</source> <translation type="unfinished">壞的</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="204"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="202"/> <source>Expired</source> <translation type="unfinished">已到期</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="207"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="205"/> <source>Missing Key</source> <translation type="unfinished">缺少鑰匙</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="210"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="208"/> <source>Revoked Key</source> <translation type="unfinished">撤銷金鑰</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="213"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="211"/> <source>Expired Key</source> <translation type="unfinished">過期金鑰</translation> </message> <message> - <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="216"/> + <location filename="../../../../src/ui/widgets/VerifyKeyDetailBox.cpp" line="214"/> <source>Missing CRL</source> <translation type="unfinished">缺少 CRL</translation> </message> @@ -5273,7 +5511,7 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc </message> </context> <context> - <name>QObject</name> + <name>QCoreApplication</name> <message> <location filename="../../../../src/cmd.cpp" line="49"/> <source>This is free software; see the source for copying conditions.</source> @@ -5295,93 +5533,144 @@ If Data And Signature is COMBINED within a single file, KEEP THIS EMPTY: </sourc <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="196"/> - <source>GpgME inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <source>Loading Gnupg Info...</source> + <translation type="unfinished">正在加載 Gnupg 信息...</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="322"/> - <source>GpgME Context inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> + <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> + <translation type="unfinished">如果此過程太慢,請在 gnupg 組態檔案中適當設定金鑰伺服器位址(取決於您所在國家或地區的網絡情況)。</translation> </message> <message> - <location filename="../../../../src/core/GpgCoreInit.cpp" line="331"/> - <source>Gpg Key Detabase inilization failed</source> - <translation type="unfinished"></translation> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="63"/> + <source>Show Verify Details</source> + <translation type="unfinished">顯示驗證詳細信息</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="71"/> + <source>Public key not found locally</source> + <translation type="unfinished">本地未找到公鑰</translation> + </message> + <message> + <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="72"/> + <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> + <translation type="unfinished">本地沒有目標公鑰內容供 GpgFrontend 收集有關此簽名的足夠信息。現在要從 Keyserver 導入公鑰嗎?</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="75"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="89"/> <source>File Hash Information</source> <translation type="unfinished">文件哈希信息</translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <source>filename</source> - <translation type="unfinished">文檔名稱</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> + <source>Filename</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="76"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="92"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="100"/> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="108"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="90"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="95"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="99"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="104"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="110"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="116"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="125"/> <source>: </source> <translation type="unfinished">: </translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="83"/> - <source>file size(bytes)</source> - <translation type="unfinished">文件大小(字節)</translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="94"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="98"/> + <source>File Size</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="113"/> - <source>Error in Calculating File Hash </source> - <translation type="unfinished">計算檔案雜湊中有錯誤 </translation> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="123"/> + <source>Error: cannot read target file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="143"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> <source>target path doesn't exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="148"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="162"/> <source>do NOT have permission to write path</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="153"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="168"/> <source>do NOT have permission to read/write file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/core/utils/IOUtils.cpp" line="156"/> + <location filename="../../../../src/core/utils/IOUtils.cpp" line="171"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="53"/> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="294"/> + <source>GpgME initiation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="397"/> + <source>GpgME Context initiation failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/core/GpgCoreInit.cpp" line="406"/> + <source>Gpg Key Detabase initiation failed</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>File Hash Information</source> + <translation type="obsolete">文件哈希信息</translation> + </message> + <message> + <source>filename</source> + <translation type="obsolete">文檔名稱</translation> + </message> + <message> + <source>: </source> + <translation type="obsolete">: </translation> + </message> + <message> + <source>file size(bytes)</source> + <translation type="obsolete">文件大小(字節)</translation> + </message> + <message> + <source>Error in Calculating File Hash </source> + <translation type="obsolete">計算檔案雜湊中有錯誤 </translation> + </message> + <message> + <source>Success</source> + <translation type="obsolete">成功</translation> + </message> + <message> <source>Loading Gnupg Info...</source> - <translation type="unfinished">正在加載 Gnupg 信息...</translation> + <translation type="obsolete">正在加載 Gnupg 信息...</translation> </message> <message> - <location filename="../../../../src/ui/GpgFrontendUIInit.cpp" line="54"/> <source>If this process is too slow, please set the key server address appropriately in the gnupg configuration file (depending on the network situation in your country or region).</source> - <translation type="unfinished">如果此過程太慢,請在 gnupg 組態檔案中適當設定金鑰伺服器位址(取決於您所在國家或地區的網絡情況)。</translation> + <translation type="obsolete">如果此過程太慢,請在 gnupg 組態檔案中適當設定金鑰伺服器位址(取決於您所在國家或地區的網絡情況)。</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="64"/> <source>Show Verify Details</source> - <translation type="unfinished">顯示驗證詳細信息</translation> + <translation type="obsolete">顯示驗證詳細信息</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="73"/> <source>Public key not found locally</source> - <translation type="unfinished">本地未找到公鑰</translation> + <translation type="obsolete">本地未找到公鑰</translation> </message> <message> - <location filename="../../../../src/ui/UserInterfaceUtils.cpp" line="74"/> <source>There is no target public key content in local for GpgFrontend to gather enough information about this Signature. Do you want to import the public key from Keyserver now?</source> - <translation type="unfinished">本地沒有目標公鑰內容供 GpgFrontend 收集有關此簽名的足夠信息。現在要從 Keyserver 導入公鑰嗎?</translation> + <translation type="obsolete">本地沒有目標公鑰內容供 GpgFrontend 收集有關此簽名的足夠信息。現在要從 Keyserver 導入公鑰嗎?</translation> </message> </context> </TS> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 71734127..6a7cf4a8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -171,10 +171,6 @@ if (BUILD_APPLICATION) list(APPEND ALL_RUNTIME_DEP_PATH_LIST ${_libDllPath}) unset(_libDllPath) - file(GLOB _libDllPath "${_libDllBinPath}/libarchive-*.dll") - list(APPEND ALL_RUNTIME_DEP_PATH_LIST ${_libDllPath}) - - unset(_libDllPath) file(GLOB _libDllPath "${_libDllBinPath}/libassuan-*.dll") list(APPEND ALL_RUNTIME_DEP_PATH_LIST ${_libDllPath}) @@ -271,6 +267,10 @@ if (BUILD_APPLICATION) file(GLOB _libDllPath "${_libDllBinPath}/libcrypto-*.dll") list(APPEND ALL_RUNTIME_DEP_PATH_LIST ${_libDllPath}) + unset(_libDllPath) + file(GLOB _libDllPath "${_libDllBinPath}/libxml2-*.dll") + list(APPEND ALL_RUNTIME_DEP_PATH_LIST ${_libDllPath}) + # gpgme-w32spawn.exe unset(_libExEPath) file(GLOB _libExEPath "${_libDllBinPath}/gpgme-w32spawn.exe") @@ -452,6 +452,17 @@ if (BUILD_APPLICATION) TS_FILES ${TS_FILES} SOURCES ${ALL_SOURCE_FILES} INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/src) + + file(GLOB QT_TRANSLATIONS_TS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/third_party/qttranslations/translations/*.ts) + list(FILTER QT_TRANSLATIONS_TS INCLUDE REGEX ".*(qt|qtbase)_.*\.ts$") + add_custom_target(qttranslations ALL) + qt_add_lrelease(qttranslations + TS_FILES ${QT_TRANSLATIONS_TS} + QM_FILES_OUTPUT_VARIABLE QT_TRANSLATIONS_QM) + qt_add_resources(${AppName} "qttranslations" + PREFIX "/i18n_qt" + BASE ${CMAKE_CURRENT_BINARY_DIR} + FILES ${QT_TRANSLATIONS_QM}) endif() # if building linux package diff --git a/src/app.cpp b/src/app.cpp index b8b20300..a5539a37 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -33,6 +33,7 @@ #include "ui/GpgFrontendUIInit.h" // main +#include "init.h" #include "main.h" namespace GpgFrontend { @@ -69,6 +70,9 @@ auto StartApplication(const GFCxtWPtr& p_ctx) -> int { int restart_count = 0; do { + // refresh locale settings + if (restart_count > 0) InitLocale(); + // after that load ui totally GpgFrontend::UI::InitGpgFrontendUI(app); diff --git a/src/cmd.cpp b/src/cmd.cpp index f060a16b..cef0a984 100644 --- a/src/cmd.cpp +++ b/src/cmd.cpp @@ -46,14 +46,15 @@ auto PrintVersion() -> int { << "v" << VERSION_MAJOR << "." << VERSION_MINOR << "." << VERSION_PATCH << '\n'; stream << "Copyright (©) 2021 Saturneric <[email protected]>" << '\n' - << QObject::tr( + << QCoreApplication::tr( "This is free software; see the source for copying conditions.") << '\n' << '\n'; - stream << QObject::tr("Build DateTime: ") << BUILD_TIMESTAMP << '\n' - << QObject::tr("Build Version: ") << BUILD_VERSION << '\n' - << QObject::tr("Source Code Version: ") << GIT_VERSION << '\n'; + stream << QCoreApplication::tr("Build DateTime: ") << BUILD_TIMESTAMP << '\n' + << QCoreApplication::tr("Build Version: ") << BUILD_VERSION << '\n' + << QCoreApplication::tr("Source Code Version: ") << GIT_VERSION + << '\n'; stream << Qt::endl; return 0; diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index ed12ad01..a37ea7ee 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -75,12 +75,29 @@ endif () # spdlog target_link_libraries(gpgfrontend_core PRIVATE spdlog) -# link libarchive -if(APPLE) - set(LibArchive_INCLUDE_DIR "/usr/local/opt/libarchive/include") + +# configure libarchive +if(NOT MINGW) + if(APPLE) + if(EXISTS "/usr/local/opt/libarchive/include") + set(LibArchive_INCLUDE_DIR "/usr/local/opt/libarchive/include") + else() + set(LibArchive_INCLUDE_DIR "/opt/homebrew/opt/libarchive/include") + endif() + endif() + find_package(LibArchive REQUIRED) + target_include_directories(gpgfrontend_core PRIVATE ${LibArchive_INCLUDE_DIR}) +else() + if(MINGW) + set_target_properties(archive + PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" + ) + endif() endif() -find_package(LibArchive REQUIRED) -target_include_directories(gpgfrontend_core PRIVATE ${LibArchive_INCLUDE_DIR}) + +# link libarchive target_link_libraries(gpgfrontend_core PRIVATE archive) # link Qt core diff --git a/src/core/GpgCoreInit.cpp b/src/core/GpgCoreInit.cpp index f231056f..d2e4c2ec 100644 --- a/src/core/GpgCoreInit.cpp +++ b/src/core/GpgCoreInit.cpp @@ -38,7 +38,6 @@ #include "core/function/gpg/GpgKeyGetter.h" #include "core/module/ModuleManager.h" #include "core/thread/Task.h" -#include "core/thread/TaskRunner.h" #include "core/thread/TaskRunnerGetter.h" #include "core/utils/CommonUtils.h" #include "core/utils/GpgUtils.h" @@ -77,7 +76,7 @@ auto SearchKeyDatabasePath(const QList<QString>& candidate_paths) -> QString { return {}; } -auto InitGpgME(const QString& gnupg_path) -> bool { +auto InitGpgME(const QString& gpgconf_path, const QString& gnupg_path) -> bool { // init gpgme subsystem and get gpgme library version Module::UpsertRTValue("core", "gpgme.version", QString(gpgme_check_version(nullptr))); @@ -88,8 +87,11 @@ auto InitGpgME(const QString& gnupg_path) -> bool { #endif if (!gnupg_path.isEmpty()) { - GF_CORE_LOG_DEBUG("gpgme set engine info, gnupg path: {}", gnupg_path); - CheckGpgError(gpgme_set_engine_info(GPGME_PROTOCOL_OPENPGP, + GF_CORE_LOG_DEBUG("gpgme set engine info, gpgconf path: {}, gnupg path: {}", + gpgconf_path, gnupg_path); + CheckGpgError(gpgme_set_engine_info(GPGME_PROTOCOL_GPGCONF, + gpgconf_path.toUtf8(), nullptr)); + CheckGpgError(gpgme_set_engine_info(GPGME_PROTOCOL_OpenPGP, gnupg_path.toUtf8(), nullptr)); } @@ -218,13 +220,12 @@ auto GetGnuPGPathByGpgConf(const QString& gnupg_install_fs_path) -> QString { } return ""; } - -auto DetectGnuPGPath() -> QString { +auto DetectGpgConfPath() -> QString { auto settings = GlobalSettingStation::GetInstance().GetSettings(); auto use_custom_gnupg_install_path = - settings.value("basic/use_custom_gnupg_install_path", false).toBool(); + settings.value("gnupg/use_custom_gnupg_install_path", false).toBool(); auto custom_gnupg_install_path = - settings.value("basic/custom_gnupg_install_path", QString{}).toString(); + settings.value("gnupg/custom_gnupg_install_path", QString{}).toString(); QString gnupg_install_fs_path; // user defined @@ -262,12 +263,15 @@ auto DetectGnuPGPath() -> QString { } if (!gnupg_install_fs_path.isEmpty()) { - return GetGnuPGPathByGpgConf( - QFileInfo(gnupg_install_fs_path).absoluteFilePath()); + return QFileInfo(gnupg_install_fs_path).absoluteFilePath(); } return ""; } +auto DetectGnuPGPath(QString gpgconf_path) -> QString { + return GetGnuPGPathByGpgConf(gpgconf_path); +} + void InitGpgFrontendCore(CoreInitArgs args) { // initialize global register table Module::UpsertRTValue("core", "env.state.gpgme", 0); @@ -279,13 +283,15 @@ void InitGpgFrontendCore(CoreInitArgs args) { // initialize locale environment GF_CORE_LOG_DEBUG("locale: {}", setlocale(LC_CTYPE, nullptr)); - auto gnupg_install_fs_path = DetectGnuPGPath(); + auto gpgconf_install_fs_path = DetectGpgConfPath(); + auto gnupg_install_fs_path = DetectGnuPGPath(gpgconf_install_fs_path); + GF_CORE_LOG_INFO("detected gpgconf path: {}", gpgconf_install_fs_path); GF_CORE_LOG_INFO("detected gnupg path: {}", gnupg_install_fs_path); // initialize library gpgme - if (!InitGpgME(gnupg_install_fs_path)) { + if (!InitGpgME(gpgconf_install_fs_path, gnupg_install_fs_path)) { CoreSignalStation::GetInstance()->SignalBadGnupgEnv( - QObject::tr("GpgME inilization failed")); + QCoreApplication::tr("GpgME initiation failed")); return; } @@ -301,19 +307,19 @@ void InitGpgFrontendCore(CoreInitArgs args) { settings.value("network/auto_import_missing_key", false).toBool(); auto use_custom_key_database_path = - settings.value("basic/use_custom_key_database_path", false) + settings.value("gnupg/use_custom_key_database_path", false) .toBool(); auto custom_key_database_path = - settings.value("basic/custom_key_database_path", QString{}) + settings.value("gnupg/custom_key_database_path", QString{}) .toString(); auto custom_gnupg_install_path = - settings.value("basic/custom_gnupg_install_path", QString{}) + settings.value("gnupg/custom_gnupg_install_path", QString{}) .toString(); auto use_pinentry_as_password_input_dialog = - settings.value("basic/use_pinentry_as_password_input_dialog", false) + settings.value("gnupg/use_pinentry_as_password_input_dialog", false) .toBool(); GF_CORE_LOG_DEBUG("core loaded if use custom key databse path: {}", @@ -388,7 +394,7 @@ void InitGpgFrontendCore(CoreInitArgs args) { if (!ctx.Good()) { GF_CORE_LOG_ERROR("default gnupg context init error, abort"); CoreSignalStation::GetInstance()->SignalBadGnupgEnv( - QObject::tr("GpgME Context inilization failed")); + QCoreApplication::tr("GpgME Context initiation failed")); return -1; } Module::UpsertRTValue("core", "env.state.ctx", 1); @@ -397,7 +403,7 @@ void InitGpgFrontendCore(CoreInitArgs args) { if (args.load_default_gpg_context) { if (!GpgKeyGetter::GetInstance().FlushKeyCache()) { CoreSignalStation::GetInstance()->SignalBadGnupgEnv( - QObject::tr("Gpg Key Detabase inilization failed")); + QCoreApplication::tr("Gpg Key Detabase initiation failed")); }; } GF_CORE_LOG_DEBUG( @@ -432,7 +438,15 @@ void InitGpgFrontendCore(CoreInitArgs args) { "received callback from gnupg-info-gathering "); // try to restart all components - GpgFrontend::GpgAdvancedOperator::RestartGpgComponents(); + auto settings = + GlobalSettingStation::GetInstance().GetSettings(); + auto restart_all_gnupg_components_on_start = + settings.value("gnupg/restart_gpg_agent_on_start", false) + .toBool(); + + if (restart_all_gnupg_components_on_start) { + GpgAdvancedOperator::RestartGpgComponents(); + } Module::UpsertRTValue("core", "env.state.gnupg", 1); // announce that all checkings were finished diff --git a/src/core/function/ArchiveFileOperator.cpp b/src/core/function/ArchiveFileOperator.cpp index f1345f87..2b76e4ac 100644 --- a/src/core/function/ArchiveFileOperator.cpp +++ b/src/core/function/ArchiveFileOperator.cpp @@ -89,13 +89,13 @@ void ArchiveFileOperator::NewArchive2DataExchanger( const OperationCallback &cb) { RunIOOperaAsync( [=](const DataObjectPtr &data_object) -> GFError { - std::array<char, 1024> buff{}; auto ret = 0; const auto base_path = QDir(QDir(target_directory).absolutePath()); auto *archive = archive_write_new(); archive_write_add_filter_none(archive); archive_write_set_format_pax_restricted(archive); + archive_write_set_format_option(archive, "pax", "hdrcharset", "BINARY"); archive_write_open(archive, exchanger.get(), nullptr, ArchiveWriteCallback, ArchiveCloseWriteCallback); @@ -104,8 +104,10 @@ void ArchiveFileOperator::NewArchive2DataExchanger( archive_read_disk_set_standard_lookup(disk); #ifdef WINDOWS - auto r = archive_read_disk_open_w( - disk, target_directory.toStdWString().c_str()); + auto target_directory_utf16_wstr = std::wstring( + reinterpret_cast<const wchar_t *>((target_directory).utf16())); + auto r = + archive_read_disk_open_w(disk, target_directory_utf16_wstr.c_str()); #else auto r = archive_read_disk_open(disk, target_directory.toUtf8()); #endif @@ -132,38 +134,56 @@ void ArchiveFileOperator::NewArchive2DataExchanger( archive_read_disk_descend(disk); - // turn absolute path to relative path - archive_entry_set_pathname( - entry, - base_path.relativeFilePath(QString(archive_entry_pathname(entry))) - .toUtf8()); +#ifdef WINDOWS + auto source_path = + QString::fromUtf16(reinterpret_cast<const char16_t *>( + archive_entry_pathname_w(entry))); +#else + auto source_path = QString::fromUtf8(archive_entry_pathname(entry)); +#endif - r = archive_write_header(archive, entry); - if (r < ARCHIVE_OK) { - GF_CORE_LOG_ERROR( - "archive_write_header() failed, ret: {}, explain: {} ", r, - archive_error_string(archive)); - continue; - } + QFile file(source_path); + if (file.open(QIODeviceBase::ReadOnly)) { + // turn absolute path to relative path + auto relativ_path_name = base_path.relativeFilePath(source_path); + archive_entry_set_pathname(entry, relativ_path_name.toUtf8()); - if (r == ARCHIVE_FATAL) { - GF_CORE_LOG_ERROR( - "archive_write_header() failed, ret: {}, explain: {}, " - "abort ...", - r, archive_error_string(archive)); - ret = -1; - break; - } +#ifdef WINDOWS + auto source_path_utf16_wstr = std::wstring( + reinterpret_cast<const wchar_t *>(source_path.utf16())); + archive_entry_copy_sourcepath_w(entry, + source_path_utf16_wstr.c_str()); +#else - if (r > ARCHIVE_FAILED) { - auto fd = open(archive_entry_sourcepath(entry), O_RDONLY); - auto len = read(fd, buff.data(), buff.size()); - while (len > 0) { - archive_write_data(archive, buff.data(), len); - len = read(fd, buff.data(), buff.size()); + archive_entry_copy_sourcepath(entry, source_path.toUtf8()); +#endif + + r = archive_write_header(archive, entry); + if (r < ARCHIVE_OK) { + GF_CORE_LOG_ERROR( + "archive_write_header() failed, ret: {}, explain: {} ", r, + archive_error_string(archive)); + continue; + } + + if (r == ARCHIVE_FATAL) { + GF_CORE_LOG_ERROR( + "archive_write_header() failed, ret: {}, explain: {}, " + "abort ...", + r, archive_error_string(archive)); + ret = -1; + break; + } + + if (r > ARCHIVE_FAILED) { + auto buffer = file.read(1024); + while (!buffer.isEmpty()) { + archive_write_data(archive, buffer.data(), buffer.size()); + buffer = file.read(1024); + } } - close(fd); } + archive_write_finish_entry(archive); archive_entry_free(entry); } @@ -204,6 +224,7 @@ void ArchiveFileOperator::ExtractArchiveFromDataExchanger( r = archive_read_open(archive, &rdata, nullptr, ArchiveReadCallback, nullptr); + if (r != ARCHIVE_OK) { GF_CORE_LOG_ERROR("archive_read_open(), ret: {}, reason: {}", r, archive_error_string(archive)); @@ -228,9 +249,17 @@ void ArchiveFileOperator::ExtractArchiveFromDataExchanger( break; } - archive_entry_set_pathname( - entry, - (target_path + "/" + archive_entry_pathname(entry)).toUtf8()); + auto path_name = QString::fromUtf8(archive_entry_pathname(entry)); + auto target_path_name = target_path + "/" + path_name; + +#ifdef WINDOWS + auto target_path_utf16_wstr = std::wstring( + reinterpret_cast<const wchar_t *>((target_path_name).utf16())); + archive_entry_copy_pathname_w(entry, target_path_utf16_wstr.c_str()); +#else + + archive_entry_set_pathname(entry, target_path_name.toUtf8()); +#endif r = archive_write_header(ext, entry); if (r != ARCHIVE_OK) { diff --git a/src/core/function/GlobalSettingStation.cpp b/src/core/function/GlobalSettingStation.cpp index 6969c15a..594b6661 100644 --- a/src/core/function/GlobalSettingStation.cpp +++ b/src/core/function/GlobalSettingStation.cpp @@ -59,10 +59,6 @@ class GlobalSettingStation::Impl { GF_CORE_LOG_INFO("app data path: {}", app_data_path_); GF_CORE_LOG_INFO("app log path: {}", app_log_path_); - GF_CORE_LOG_DEBUG("app log files total size: {}", GetLogFilesSize()); - GF_CORE_LOG_DEBUG("app data objects files total size: {}", - GetDataObjectsFilesSize()); - if (!QDir(app_data_path_).exists()) QDir(app_data_path_).mkpath("."); if (!QDir(app_log_path_).exists()) QDir(app_log_path_).mkpath("."); } diff --git a/src/core/function/SecureMemoryAllocator.cpp b/src/core/function/SecureMemoryAllocator.cpp index 692c36c5..fccd09fe 100644 --- a/src/core/function/SecureMemoryAllocator.cpp +++ b/src/core/function/SecureMemoryAllocator.cpp @@ -28,14 +28,14 @@ #include "SecureMemoryAllocator.h" -#ifndef MACOS +#if !defined(MACOS) && defined(DEBUG) #include <mimalloc.h> #endif namespace GpgFrontend { auto SecureMemoryAllocator::Allocate(std::size_t size) -> void* { -#ifndef MACOS +#if !defined(MACOS) && defined(DEBUG) auto* addr = mi_malloc(size); #else auto* addr = malloc(size); @@ -44,7 +44,7 @@ auto SecureMemoryAllocator::Allocate(std::size_t size) -> void* { } auto SecureMemoryAllocator::Reallocate(void* ptr, std::size_t size) -> void* { -#ifndef MACOS +#if !defined(MACOS) && defined(DEBUG) auto* addr = mi_realloc(ptr, size); #else auto* addr = realloc(ptr, size); @@ -53,7 +53,7 @@ auto SecureMemoryAllocator::Reallocate(void* ptr, std::size_t size) -> void* { } void SecureMemoryAllocator::Deallocate(void* p) { -#ifndef MACOS +#if !defined(MACOS) && defined(DEBUG) mi_free(p); #else free(p); diff --git a/src/core/function/gpg/GpgFileOpera.cpp b/src/core/function/gpg/GpgFileOpera.cpp index 94a08c76..ad506c4a 100644 --- a/src/core/function/gpg/GpgFileOpera.cpp +++ b/src/core/function/gpg/GpgFileOpera.cpp @@ -99,6 +99,7 @@ void GpgFileOpera::EncryptDirectory(const KeyArgsList& keys, const QString& out_path, const GpgOperationCallback& cb) { auto ex = std::make_shared<GFDataExchanger>(kDataExchangerSize); + auto w_ex = std::weak_ptr<GFDataExchanger>(ex); RunGpgOperaAsync( [=](const DataObjectPtr& data_object) -> GpgError { @@ -127,6 +128,9 @@ void GpgFileOpera::EncryptDirectory(const KeyArgsList& keys, in_path, ex, [=](GFError err, const DataObjectPtr&) { GF_CORE_LOG_DEBUG("new archive 2 data exchanger operation, err: {}", err); + if (decltype(ex) p_ex = w_ex.lock(); err < 0 && p_ex != nullptr) { + ex->CloseWrite(); + } }); } @@ -365,6 +369,7 @@ void GpgFileOpera::EncryptSignDirectory(const KeyArgsList& keys, const QString& out_path, const GpgOperationCallback& cb) { auto ex = std::make_shared<GFDataExchanger>(kDataExchangerSize); + auto w_ex = std::weak_ptr<GFDataExchanger>(ex); RunGpgOperaAsync( [=](const DataObjectPtr& data_object) -> GpgError { @@ -395,6 +400,9 @@ void GpgFileOpera::EncryptSignDirectory(const KeyArgsList& keys, ArchiveFileOperator::NewArchive2DataExchanger( in_path, ex, [=](GFError err, const DataObjectPtr&) { GF_CORE_LOG_DEBUG("new archive 2 fd operation, err: {}", err); + if (decltype(ex) p_ex = w_ex.lock(); err < 0 && p_ex != nullptr) { + ex->CloseWrite(); + } }); } diff --git a/src/core/function/gpg/GpgKeyOpera.cpp b/src/core/function/gpg/GpgKeyOpera.cpp index 118f4784..e0ecb3ce 100644 --- a/src/core/function/gpg/GpgKeyOpera.cpp +++ b/src/core/function/gpg/GpgKeyOpera.cpp @@ -30,8 +30,6 @@ #include <gpg-error.h> -#include <memory> - #include "core/GpgModel.h" #include "core/function/gpg/GpgCommandExecutor.h" #include "core/function/gpg/GpgKeyGetter.h" @@ -53,7 +51,7 @@ GpgKeyOpera::GpgKeyOpera(int channel) * Delete keys * @param uidList key ids */ -void GpgKeyOpera::DeleteKeys(GpgFrontend::KeyIdArgsListPtr key_ids) { +void GpgKeyOpera::DeleteKeys(KeyIdArgsListPtr key_ids) { GpgError err; for (const auto& tmp : *key_ids) { auto key = GpgKeyGetter::GetInstance().GetKey(tmp); @@ -130,7 +128,7 @@ void GpgKeyOpera::GenerateRevokeCert(const GpgKey& key, // Code From Gpg4Win while (proc->canReadLine()) { const QString line = QString::fromUtf8(proc->readLine()).trimmed(); - GF_CORE_LOG_DEBUG("line: {}", line.toStdString()); + GF_CORE_LOG_DEBUG("line: {}", line); if (line == QLatin1String("[GNUPG:] GET_BOOL gen_revoke.okay")) { proc->write("y\n"); } else if (line == QLatin1String("[GNUPG:] GET_LINE " @@ -514,7 +512,7 @@ auto GpgKeyOpera::ModifyTOFUPolicy(const GpgKey& key, return CheckGpgError(err); } -void GpgKeyOpera::DeleteKey(const GpgFrontend::KeyId& key_id) { +void GpgKeyOpera::DeleteKey(const KeyId& key_id) { auto keys = std::make_unique<KeyIdArgsList>(); keys->push_back(key_id); DeleteKeys(std::move(keys)); diff --git a/src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp b/src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp index 5d0ce920..f364423d 100644 --- a/src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp +++ b/src/core/function/result_analyse/GpgDecryptResultAnalyse.cpp @@ -56,7 +56,7 @@ void GpgFrontend::GpgDecryptResultAnalyse::doAnalyse() { if (result != nullptr && result->recipients != nullptr) { stream_ << Qt::endl; - stream_ << "## " << tr("Gernal State") << ": " << Qt::endl; + stream_ << "## " << tr("General State") << ": " << Qt::endl; if (result->file_name != nullptr) { stream_ << "- " << tr("File Name") << ": " << result->file_name diff --git a/src/core/function/result_analyse/GpgSignResultAnalyse.cpp b/src/core/function/result_analyse/GpgSignResultAnalyse.cpp index bf429f38..3f3040b8 100644 --- a/src/core/function/result_analyse/GpgSignResultAnalyse.cpp +++ b/src/core/function/result_analyse/GpgSignResultAnalyse.cpp @@ -71,23 +71,42 @@ void GpgSignResultAnalyse::doAnalyse() { stream_ << Qt::endl; - auto singer_key = GpgKeyGetter::GetInstance().GetKey(new_sign->fpr); + QString fpr = new_sign->fpr == nullptr ? "" : new_sign->fpr; + auto singer_key = GpgKeyGetter::GetInstance().GetKey(fpr); if (singer_key.IsGood()) { - stream_ << "- " << tr("Signer") << ": " + stream_ << "- " << tr("Signed By") << ": " << singer_key.GetUIDs()->front().GetUID() << Qt::endl; + + auto subkeys = singer_key.GetSubKeys(); + auto it = std::find_if( + subkeys->begin(), subkeys->end(), + [fpr](const GpgSubKey &k) { return k.GetFingerprint() == fpr; }); + + if (it != subkeys->end()) { + auto &subkey = *it; + if (subkey.GetFingerprint() != singer_key.GetFingerprint()) { + stream_ << "- " << tr("Key ID") << ": " << singer_key.GetId() + << " (" << tr("Subkey") << ")" << Qt::endl; + } else { + stream_ << "- " << tr("Key ID") << ": " << singer_key.GetId() + << " (" << tr("Primary Key") << ")" << Qt::endl; + } + stream_ << "- " << tr("Key Create Date") << ": " + << QLocale().toString(subkey.GetCreateTime()) << Qt::endl; + } } else { - stream_ << "- " << tr("Signer") << ": " - << "<unknown>" << Qt::endl; + stream_ << "- " << tr("Signed By") << "(" << tr("Fingerprint") << ")" + << ": " << (fpr.isEmpty() ? tr("<unknown>") : fpr) << Qt::endl; } stream_ << "- " << tr("Public Key Algo") << ": " << gpgme_pubkey_algo_name(new_sign->pubkey_algo) << Qt::endl; stream_ << "- " << tr("Hash Algo") << ": " << gpgme_hash_algo_name(new_sign->hash_algo) << Qt::endl; - stream_ << "- " << tr("Date") << "(" << tr("UTC") << ")" + stream_ << "- " << tr("Sign Date") << "(" << tr("UTC") << ")" << ": " << QDateTime::fromSecsSinceEpoch(new_sign->timestamp).toString() << Qt::endl; - stream_ << "- " << tr("Date") << "(" << tr("Localized") << ")" + stream_ << "- " << tr("Sign Date") << "(" << tr("Localized") << ")" << ": " << GetFormatedDateByTimestamp(new_sign->timestamp) << Qt::endl; diff --git a/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp b/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp index 618275f9..df6b58b0 100644 --- a/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp +++ b/src/core/function/result_analyse/GpgVerifyResultAnalyse.cpp @@ -28,7 +28,6 @@ #include "GpgVerifyResultAnalyse.h" -#include "GpgFrontend.h" #include "core/GpgModel.h" #include "core/function/gpg/GpgKeyGetter.h" #include "core/utils/CommonUtils.h" @@ -74,7 +73,7 @@ void GpgFrontend::GpgVerifyResultAnalyse::doAnalyse() { switch (gpg_err_code(sign->status)) { case GPG_ERR_BAD_SIGNATURE: stream_ << tr("A Bad Signature.") << Qt::endl; - print_signer(stream_, sign); + print_signer(stream_, GpgSignature(sign)); stream_ << tr("This Signature is invalid.") << Qt::endl; can_continue = false; setStatus(-1); @@ -107,12 +106,13 @@ void GpgFrontend::GpgVerifyResultAnalyse::doAnalyse() { stream_ << tr("Signature Fully Valid.") << Qt::endl; } else { stream_ << tr("Signature Not Fully Valid.") << Qt::endl; - stream_ << tr("(Adjust Trust Level to make it Fully Vaild)") + stream_ << "- " << tr("Tips") << ": " + << tr("Adjust Trust Level to make it Fully Vaild") << Qt::endl; } if ((sign->status & GPGME_SIGSUM_KEY_MISSING) == 0U) { - if (!print_signer(stream_, sign)) setStatus(0); + if (!print_signer(stream_, GpgSignature(sign))) setStatus(0); } else { stream_ << tr("Key is NOT present with ID 0x") << sign->fpr << Qt::endl; @@ -126,19 +126,20 @@ void GpgFrontend::GpgVerifyResultAnalyse::doAnalyse() { << tr("A signature could NOT be verified due to a Missing Key") << Qt::endl; setStatus(-2); + print_signer_without_key(stream_, GpgSignature(sign)); break; case GPG_ERR_CERT_REVOKED: stream_ << tr("A signature is valid but the key used to verify the " "signature has been revoked") << Qt::endl; - if (!print_signer(stream_, sign)) { + if (!print_signer(stream_, GpgSignature(sign))) { setStatus(0); } setStatus(-1); break; case GPG_ERR_SIG_EXPIRED: stream_ << tr("A signature is valid but expired") << Qt::endl; - if (!print_signer(stream_, sign)) { + if (!print_signer(stream_, GpgSignature(sign))) { setStatus(0); } setStatus(-1); @@ -147,7 +148,7 @@ void GpgFrontend::GpgVerifyResultAnalyse::doAnalyse() { stream_ << tr("A signature is valid but the key used to " "verify the signature has expired.") << Qt::endl; - if (!print_signer(stream_, sign)) { + if (!print_signer(stream_, GpgSignature(sign))) { setStatus(0); } break; @@ -178,39 +179,67 @@ void GpgFrontend::GpgVerifyResultAnalyse::doAnalyse() { } } +auto GpgFrontend::GpgVerifyResultAnalyse::print_signer_without_key( + QTextStream &stream, GpgSignature sign) -> bool { + stream_ << "- " << tr("Signed By") << "(" << tr("Fingerprint") << ")" + << ": " + << (sign.GetFingerprint().isEmpty() ? tr("<unknown>") + : sign.GetFingerprint()) + << Qt::endl; + stream << "- " << tr("Public Key Algo") << ": " << sign.GetPubkeyAlgo() + << Qt::endl; + stream << "- " << tr("Hash Algo") << ": " << sign.GetHashAlgo() << Qt::endl; + stream << "- " << tr("Sign Date") << "(" << tr("UTC") << ")" + << ": " << sign.GetCreateTime().toString() << Qt::endl; + stream << "- " << tr("Sign Date") << "(" << tr("Localized") << ")" + << ": " << QLocale().toString(sign.GetCreateTime()) << Qt::endl; + return true; +} + auto GpgFrontend::GpgVerifyResultAnalyse::print_signer(QTextStream &stream, - gpgme_signature_t sign) + GpgSignature sign) -> bool { - bool key_found = true; - auto key = GpgFrontend::GpgKeyGetter::GetInstance().GetKey(sign->fpr); - - if (!key.IsGood()) { - stream << "- " << tr("Signed By") << ": " - << "<" << tr("Unknown") << ">" << Qt::endl; - setStatus(0); - key_found = false; - } else { + auto fingerprint = sign.GetFingerprint(); + auto key = GpgFrontend::GpgKeyGetter::GetInstance().GetKey(fingerprint); + if (key.IsGood()) { stream << "- " << tr("Signed By") << ": " << key.GetUIDs()->front().GetUID() << Qt::endl; - } - if (sign->pubkey_algo != 0U) { - stream << "- " << tr("Public Key Algo") << ": " - << gpgme_pubkey_algo_name(sign->pubkey_algo) << Qt::endl; - } - if (sign->hash_algo != 0U) { - stream << "- " << tr("Hash Algo") << ": " - << gpgme_hash_algo_name(sign->hash_algo) << Qt::endl; - } - if (sign->timestamp != 0U) { - stream << "- " << tr("Date") << "(" << tr("UTC") << ")" - << ": " << QDateTime::fromSecsSinceEpoch(sign->timestamp).toString() - << Qt::endl; - stream << "- " << tr("Date") << "(" << tr("Localized") << ")" - << ": " << GetFormatedDateByTimestamp(sign->timestamp) << Qt::endl; + auto subkeys = key.GetSubKeys(); + auto it = std::find_if(subkeys->begin(), subkeys->end(), + [fingerprint](const GpgSubKey &k) { + return k.GetFingerprint() == fingerprint; + }); + + if (it != subkeys->end()) { + auto &subkey = *it; + if (subkey.GetFingerprint() != key.GetFingerprint()) { + stream << "- " << tr("Key ID") << ": " << key.GetId() << " (" + << tr("Subkey") << ")" << Qt::endl; + } else { + stream << "- " << tr("Key ID") << ": " << key.GetId() << " (" + << tr("Primary Key") << ")" << Qt::endl; + } + stream << "- " << tr("Key Create Date") << ": " + << QLocale().toString(subkey.GetCreateTime()) << Qt::endl; + } + + } else { + stream_ << "- " << tr("Signed By") << "(" << tr("Fingerprint") << ")" + << ": " << (fingerprint.isEmpty() ? tr("<unknown>") : fingerprint) + << Qt::endl; + setStatus(0); } + + stream << "- " << tr("Public Key Algo") << ": " << sign.GetPubkeyAlgo() + << Qt::endl; + stream << "- " << tr("Hash Algo") << ": " << sign.GetHashAlgo() << Qt::endl; + stream << "- " << tr("Sign Date") << "(" << tr("UTC") << ")" + << ": " << sign.GetCreateTime().toString() << Qt::endl; + stream << "- " << tr("Sign Date") << "(" << tr("Localized") << ")" + << ": " << QLocale().toString(sign.GetCreateTime()) << Qt::endl; stream << Qt::endl; - return key_found; + return key.IsGood(); } auto GpgFrontend::GpgVerifyResultAnalyse::GetSignatures() const diff --git a/src/core/function/result_analyse/GpgVerifyResultAnalyse.h b/src/core/function/result_analyse/GpgVerifyResultAnalyse.h index 8aa2e41f..7b846f5e 100644 --- a/src/core/function/result_analyse/GpgVerifyResultAnalyse.h +++ b/src/core/function/result_analyse/GpgVerifyResultAnalyse.h @@ -77,7 +77,17 @@ class GPGFRONTEND_CORE_EXPORT GpgVerifyResultAnalyse : public GpgResultAnalyse { * @return true * @return false */ - auto print_signer(QTextStream &stream, gpgme_signature_t sign) -> bool; + auto print_signer(QTextStream &stream, GpgSignature sign) -> bool; + + /** + * @brief + * + * @param stream + * @param sign + * @return true + * @return false + */ + auto print_signer_without_key(QTextStream &stream, GpgSignature sign) -> bool; GpgError error_; ///< GpgVerifyResult result_; ///< diff --git a/src/core/model/GpgSignature.cpp b/src/core/model/GpgSignature.cpp index e2cb7e4b..e2671165 100644 --- a/src/core/model/GpgSignature.cpp +++ b/src/core/model/GpgSignature.cpp @@ -121,7 +121,7 @@ auto GpgSignature::GetExpireTime() const -> QDateTime { * @return QString */ auto GpgSignature::GetFingerprint() const -> QString { - return signature_ref_->fpr; + return signature_ref_->fpr != nullptr ? signature_ref_->fpr : ""; } /** diff --git a/src/core/utils/GpgUtils.cpp b/src/core/utils/GpgUtils.cpp index db3513eb..0d00b13e 100644 --- a/src/core/utils/GpgUtils.cpp +++ b/src/core/utils/GpgUtils.cpp @@ -99,8 +99,9 @@ auto TextIsSigned(QString text) -> int { auto SetExtensionOfOutputFile(const QString& path, GpgOperation opera, bool ascii) -> QString { + auto file_info = QFileInfo(path); QString new_extension; - QString current_extension = QFileInfo(path).suffix(); + QString current_extension = file_info.suffix(); if (ascii) { switch (opera) { @@ -127,23 +128,24 @@ auto SetExtensionOfOutputFile(const QString& path, GpgOperation opera, } if (!new_extension.isEmpty()) { - return QFileInfo(path).path() + "/" + QFileInfo(path).completeBaseName() + - "." + new_extension; + return file_info.absolutePath() + "/" + file_info.completeBaseName() + "." + + new_extension; } - - return path; + return file_info.absolutePath() + "/" + file_info.completeBaseName(); } auto SetExtensionOfOutputFileForArchive(const QString& path, GpgOperation opera, bool ascii) -> QString { QString extension; + auto file_info = QFileInfo(path); if (ascii) { switch (opera) { case kENCRYPT: case kENCRYPT_SIGN: - extension = ".tar.asc"; - return path + extension; + if (file_info.completeSuffix() != "tar") extension += ".tar"; + extension += ".asc"; + return QFileInfo(path).absoluteFilePath() + extension; break; default: break; @@ -152,15 +154,15 @@ auto SetExtensionOfOutputFileForArchive(const QString& path, GpgOperation opera, switch (opera) { case kENCRYPT: case kENCRYPT_SIGN: - extension = ".tar.gpg"; - return path + extension; + if (file_info.completeSuffix() != "tar") extension += ".tar"; + extension += ".gpg"; + return QFileInfo(path).absoluteFilePath() + extension; break; default: break; } } - auto file_info = QFileInfo(path); return file_info.absolutePath() + "/" + file_info.baseName(); } diff --git a/src/core/utils/IOUtils.cpp b/src/core/utils/IOUtils.cpp index 1541d726..1002badd 100644 --- a/src/core/utils/IOUtils.cpp +++ b/src/core/utils/IOUtils.cpp @@ -86,40 +86,43 @@ auto CalculateHash(const QString& file_path) -> QString { QTextStream ss(&buffer); if (info.isFile() && info.isReadable()) { - ss << "# " << QObject::tr("File Hash Information") << Qt::endl; - ss << "- " << QObject::tr("Filename") << QObject::tr(": ") + ss << "# " << QCoreApplication::tr("File Hash Information") << Qt::endl; + ss << "- " << QCoreApplication::tr("Filename") << QCoreApplication::tr(": ") << info.fileName() << Qt::endl; // read all data - ss << "- " << QObject::tr("File Size (bytes)") << QObject::tr(": ") - << QString::number(info.size()) << Qt::endl; + ss << "- " << QCoreApplication::tr("File Size") << "(bytes)" + << QCoreApplication::tr(": ") << QString::number(info.size()) + << Qt::endl; - ss << "- " << QObject::tr("File Size") << QObject::tr(": ") - << GetHumanFriendlyFileSize(info.size()) << Qt::endl; + ss << "- " << QCoreApplication::tr("File Size") + << QCoreApplication::tr(": ") << GetHumanFriendlyFileSize(info.size()) + << Qt::endl; // md5 ss << "- " - << "MD5" << QObject::tr(": ") + << "MD5" << QCoreApplication::tr(": ") << GetFileChecksum(file_path, QCryptographicHash::Md5).toHex() << Qt::endl; // sha1 ss << "- " - << "SHA1" << QObject::tr(": ") + << "SHA1" << QCoreApplication::tr(": ") << GetFileChecksum(file_path, QCryptographicHash::Sha1).toHex() << Qt::endl; // sha1 ss << "- " - << "SHA256" << QObject::tr(": ") + << "SHA256" << QCoreApplication::tr(": ") << GetFileChecksum(file_path, QCryptographicHash::Sha256).toHex() << Qt::endl; ss << Qt::endl; } else { - ss << "# " << QObject::tr("Error: cannot read target file") << Qt::endl; - ss << "- " << QObject::tr("Filename") << QObject::tr(": ") + ss << "# " << QCoreApplication::tr("Error: cannot read target file") + << Qt::endl; + ss << "- " << QCoreApplication::tr("Filename") << QCoreApplication::tr(": ") << info.fileName() << Qt::endl; } @@ -150,20 +153,22 @@ auto TargetFilePreCheck(const QString& path, bool read) if (read) { if (!file_info.exists()) { - return {false, QObject::tr("target path doesn't exists")}; + return {false, QCoreApplication::tr("target path doesn't exists")}; } } else { QFileInfo const path_info(file_info.absolutePath()); if (!path_info.isWritable()) { - return {false, QObject::tr("do NOT have permission to write path")}; + return {false, + QCoreApplication::tr("do NOT have permission to write path")}; } } if (read ? !file_info.isReadable() : false) { - return {false, QObject::tr("do NOT have permission to read/write file")}; + return {false, + QCoreApplication::tr("do NOT have permission to read/write file")}; } - return {true, QObject::tr("Success")}; + return {true, QCoreApplication::tr("Success")}; } auto GetFullExtension(const QString& path) -> QString { diff --git a/src/init.cpp b/src/init.cpp index f9a1dabd..76c1fd4c 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -30,6 +30,7 @@ #include "core/GpgCoreInit.h" #include "core/function/GlobalSettingStation.h" +#include "core/function/gpg/GpgAdvancedOperator.h" #include "core/thread/TaskRunnerGetter.h" #include "core/utils/LogUtils.h" #include "module/GpgFrontendModuleInit.h" @@ -54,11 +55,19 @@ int setenv(const char *name, const char *value, int overwrite) { #endif void InitLoggingSystem(const GFCxtSPtr &ctx) { +#ifdef DEBUG RegisterSyncLogger("core", ctx->log_level); RegisterSyncLogger("main", ctx->log_level); RegisterSyncLogger("module", ctx->log_level); RegisterSyncLogger("ui", ctx->log_level); RegisterSyncLogger("test", ctx->log_level); +#else + RegisterAsyncLogger("core", ctx->log_level); + RegisterAsyncLogger("main", ctx->log_level); + RegisterAsyncLogger("module", ctx->log_level); + RegisterAsyncLogger("ui", ctx->log_level); + RegisterAsyncLogger("test", ctx->log_level); +#endif } void InitGlobalPathEnv() { @@ -66,13 +75,13 @@ void InitGlobalPathEnv() { bool use_custom_gnupg_install_path = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/use_custom_gnupg_install_path", false) + .value("gnupg/use_custom_gnupg_install_path", false) .toBool(); QString custom_gnupg_install_path = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/custom_gnupg_install_path") + .value("gnupg/custom_gnupg_install_path") .toString(); // add custom gnupg install path into env $PATH @@ -86,6 +95,15 @@ void InitGlobalPathEnv() { QString modified_path_value = getenv("PATH"); GF_MAIN_LOG_DEBUG("Modified System PATH: {}", modified_path_value); } + + if (GlobalSettingStation::GetInstance() + .GetSettings() + .value("gnupg/enable_gpgme_debug_log", false) + .toBool()) { + qputenv("GPGME_DEBUG", + QString("9:%1").arg(QDir::currentPath() + "/gpgme.log").toUtf8()); + GF_CORE_LOG_DEBUG("GPGME_DEBUG ENV: {}", qgetenv("GPGME_DEBUG")); + } } void InitGlobalBasicalEnv(const GFCxtWPtr &p_ctx, bool gui_mode) { @@ -94,6 +112,9 @@ void InitGlobalBasicalEnv(const GFCxtWPtr &p_ctx, bool gui_mode) { return; } + // init default locale of application + InitLocale(); + // initialize logging system SetDefaultLogLevel(ctx->log_level); InitLoggingSystem(ctx); @@ -120,12 +141,40 @@ void InitGlobalBasicalEnv(const GFCxtWPtr &p_ctx, bool gui_mode) { InitGpgFrontendCore(core_init_args); } +/** + * @brief setup the locale and load the translations + * + */ +void InitLocale() { + // get the instance of the GlobalSettingStation + auto settings = + GpgFrontend::GlobalSettingStation::GetInstance().GetSettings(); + + // read from settings file + auto lang = settings.value("basic/lang").toString(); + GF_UI_LOG_INFO("current system default locale: {}", QLocale().name()); + GF_UI_LOG_INFO("locale settings from config: {}", lang); + + auto target_locale = + lang.trimmed().isEmpty() ? QLocale::system() : QLocale(lang); + GF_UI_LOG_INFO("application's target locale: {}", target_locale.name()); + QLocale::setDefault(target_locale); +} + void ShutdownGlobalBasicalEnv(const GFCxtWPtr &p_ctx) { GFCxtSPtr ctx = p_ctx.lock(); if (ctx == nullptr) { return; } + // clear password cache + if (GlobalSettingStation::GetInstance() + .GetSettings() + .value("basic/clear_gpg_password_cache", false) + .toBool()) { + GpgAdvancedOperator::ClearGpgPasswordCache([](int, DataObjectPtr) {}); + } + Thread::TaskRunnerGetter::GetInstance().StopAllTeakRunner(); DestroyGpgFrontendCore(); @@ -48,6 +48,12 @@ void InitGlobalPathEnv(); /** * @brief * + */ +void InitLocale(); + +/** + * @brief + * * @param args */ void InitGlobalBasicalEnv(const GFCxtWPtr &, bool); diff --git a/src/module/integrated/version_checking_module/VersionCheckTask.cpp b/src/module/integrated/version_checking_module/VersionCheckTask.cpp index 34827838..83844af8 100644 --- a/src/module/integrated/version_checking_module/VersionCheckTask.cpp +++ b/src/module/integrated/version_checking_module/VersionCheckTask.cpp @@ -59,38 +59,44 @@ auto VersionCheckTask::Run() -> int { } void VersionCheckTask::slot_parse_latest_version_info() { - version_.current_version = current_version_; - - if (latest_reply_ == nullptr || - latest_reply_->error() != QNetworkReply::NoError) { - MODULE_LOG_ERROR("latest version request error"); + if (latest_reply_ == nullptr) { + version_.latest_version = current_version_; + version_.loading_done = false; + } else if (latest_reply_->error() != QNetworkReply::NoError) { + MODULE_LOG_ERROR("latest version request error: ", + latest_reply_->errorString()); version_.latest_version = current_version_; } else { latest_reply_bytes_ = latest_reply_->readAll(); auto latest_reply_json = QJsonDocument::fromJson(latest_reply_bytes_); - QString latest_version = latest_reply_json["tag_name"].toString(); - MODULE_LOG_INFO("latest version from Github: {}", latest_version); - - QRegularExpression re(R"(^[vV](\d+\.)?(\d+\.)?(\*|\d+))"); - auto version_match = re.match(latest_version); - if (version_match.hasMatch()) { - latest_version = version_match.captured(0); - MODULE_LOG_DEBUG("latest version matched: {}", latest_version); + if (latest_reply_json.isObject()) { + QString latest_version = latest_reply_json["tag_name"].toString(); + + QRegularExpression re(R"(^[vV](\d+\.)?(\d+\.)?(\*|\d+))"); + auto version_match = re.match(latest_version); + if (version_match.hasMatch()) { + latest_version = version_match.captured(0); + MODULE_LOG_INFO("latest version from github: {}", latest_version); + } else { + latest_version = current_version_; + MODULE_LOG_WARN("latest version unknown, set to current version: {}", + current_version_); + } + + bool prerelease = latest_reply_json["prerelease"].toBool(); + bool draft = latest_reply_json["draft"].toBool(); + auto publish_date = latest_reply_json["published_at"].toString(); + auto release_note = latest_reply_json["body"].toString(); + version_.latest_version = latest_version; + version_.latest_prerelease_version_from_remote = prerelease; + version_.latest_draft_from_remote = draft; + version_.publish_date = publish_date; + version_.release_note = release_note; } else { - latest_version = current_version_; - MODULE_LOG_WARN("latest version unknown"); + MODULE_LOG_WARN("cannot parse data got from github: {}", + latest_reply_bytes_); } - - bool prerelease = latest_reply_json["prerelease"].toBool(); - bool draft = latest_reply_json["draft"].toBool(); - auto publish_date = latest_reply_json["published_at"].toString(); - auto release_note = latest_reply_json["body"].toString(); - version_.latest_version = latest_version; - version_.latest_prerelease_version_from_remote = prerelease; - version_.latest_draft_from_remote = draft; - version_.publish_date = publish_date; - version_.release_note = release_note; } if (latest_reply_ != nullptr) { @@ -116,20 +122,17 @@ void VersionCheckTask::slot_parse_latest_version_info() { } void VersionCheckTask::slot_parse_current_version_info() { - if (current_reply_ == nullptr || - current_reply_->error() != QNetworkReply::NoError) { - if (current_reply_ != nullptr) { - MODULE_LOG_ERROR("current version request network error: {}", - current_reply_->errorString().toStdString()); - } else { - MODULE_LOG_ERROR( - "current version request network error, null reply object"); - } + if (current_reply_ == nullptr) { + // loading done + version_.loading_done = false; - version_.current_version_publish_in_remote = false; + } else if (current_reply_->error() != QNetworkReply::NoError) { + MODULE_LOG_ERROR("current version request network error: {}", + current_reply_->errorString()); // loading done version_.loading_done = true; + version_.current_version_publish_in_remote = false; } else { version_.current_version_publish_in_remote = true; current_reply_bytes_ = current_reply_->readAll(); @@ -143,7 +146,8 @@ void VersionCheckTask::slot_parse_current_version_info() { // loading done version_.loading_done = true; } else { - MODULE_LOG_WARN("cannot parse data got from github"); + MODULE_LOG_WARN("cannot parse data got from github: {}", + current_reply_bytes_); } } diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 6a1ab570..f23cc928 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -47,4 +47,12 @@ if (XCODE_BUILD) XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}") endif () +if(MINGW) + set_target_properties(gtest + PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" + ) +endif() + add_test(AllTestsInGpgFrontend gpgfrontend_test) diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp index eca77b76..148402d4 100644 --- a/src/ui/GpgFrontendUIInit.cpp +++ b/src/ui/GpgFrontendUIInit.cpp @@ -40,7 +40,7 @@ namespace GpgFrontend::UI { -extern void InitLocale(); +extern void InitUITranslations(); void WaitEnvCheckingProcess() { GF_UI_LOG_DEBUG("need to waiting for env checking process"); @@ -50,11 +50,12 @@ void WaitEnvCheckingProcess() { waiting_dialog->setMaximum(0); waiting_dialog->setMinimum(0); auto* waiting_dialog_label = new QLabel( - QObject::tr("Loading Gnupg Info...") + "<br /><br />" + - QObject::tr("If this process is too slow, please set the key " - "server address appropriately in the gnupg configuration " - "file (depending " - "on the network situation in your country or region).")); + QCoreApplication::tr("Loading Gnupg Info...") + "<br /><br />" + + QCoreApplication::tr( + "If this process is too slow, please set the key " + "server address appropriately in the gnupg configuration " + "file (depending " + "on the network situation in your country or region).")); waiting_dialog_label->setWordWrap(true); waiting_dialog->setLabel(waiting_dialog_label); waiting_dialog->resize(420, 120); @@ -104,7 +105,16 @@ void PreInitGpgFrontendUI() { CommonUtils::GetInstance(); } void InitGpgFrontendUI(QApplication* /*app*/) { // init locale - InitLocale(); + InitUITranslations(); + +#ifdef WINDOWS + // support dark mode on windows + QApplication::setStyle("fusion"); +#endif + + // register meta types + qRegisterMetaType<QSharedPointer<GpgPassphraseContext> >( + "QSharedPointer<GpgPassphraseContext>"); // init signal station UISignalStation::GetInstance(); @@ -172,9 +182,6 @@ void InitGpgFrontendUI(QApplication* /*app*/) { 0) { WaitEnvCheckingProcess(); } - - qRegisterMetaType<QSharedPointer<GpgPassphraseContext> >( - "QSharedPointer<GpgPassphraseContext>"); } auto RunGpgFrontendUI(QApplication* app) -> int { @@ -204,26 +211,33 @@ void GPGFRONTEND_UI_EXPORT DestroyGpgFrontendUI() {} * @brief setup the locale and load the translations * */ -void InitLocale() { - // get the instance of the GlobalSettingStation - auto settings = - GpgFrontend::GlobalSettingStation::GetInstance().GetSettings(); - - // read from settings file - auto lang = settings.value("basic/lang").toString(); - GF_UI_LOG_INFO("current system default locale: {}", QLocale().name()); - - auto target_locale = lang.isEmpty() ? QLocale() : QLocale(lang); - QLocale::setDefault(target_locale); - GF_UI_LOG_INFO("target locale settings: {}", target_locale.name()); - +void InitUITranslations() { auto* translator = new QTranslator(QCoreApplication::instance()); - if (translator->load(target_locale, QLatin1String(PROJECT_NAME), + if (translator->load(QLocale(), QLatin1String(PROJECT_NAME), QLatin1String("."), QLatin1String(":/i18n"), QLatin1String(".qm"))) { - GF_UI_LOG_DEBUG("load target translation file done"); + GF_UI_LOG_DEBUG("load target translation file done, locale: {}", + QLocale().name()); QCoreApplication::installTranslator(translator); } + + auto* base_translation = new QTranslator(QCoreApplication::instance()); + if (base_translation->load(QLocale(), QLatin1String("qt"), QLatin1String("_"), + QLatin1String(":/i18n_qt"), + QLatin1String(".qm"))) { + GF_UI_LOG_DEBUG("load qt translation file done, locale: {}", + QLocale().name()); + QCoreApplication::installTranslator(base_translation); + } + + base_translation = new QTranslator(QCoreApplication::instance()); + if (base_translation->load(QLocale(), QLatin1String("qtbase"), + QLatin1String("_"), QLatin1String(":/i18n_qt"), + QLatin1String(".qm"))) { + GF_UI_LOG_DEBUG("load qtbase translation file done, locale: {}", + QLocale().name()); + QCoreApplication::installTranslator(base_translation); + } } } // namespace GpgFrontend::UI diff --git a/src/ui/UISignalStation.h b/src/ui/UISignalStation.h index aee61300..7358f854 100644 --- a/src/ui/UISignalStation.h +++ b/src/ui/UISignalStation.h @@ -74,6 +74,24 @@ class UISignalStation : public QObject { /** * @brief * + */ + void SignalMainWindowlUpdateBasicalOperaMenu(unsigned int); + + /** + * @brief + * + */ + void SignalMainWindowOpenFile(QString); + + /** + * @brief + * + */ + void SignalKeyRevoked(QString); + + /** + * @brief + * * @param text * @param verify_label_status */ diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp index 9e1d906f..ab8aeac9 100644 --- a/src/ui/UserInterfaceUtils.cpp +++ b/src/ui/UserInterfaceUtils.cpp @@ -28,6 +28,8 @@ #include "UserInterfaceUtils.h" +#include <cstddef> + #include "core/GpgConstants.h" #include "core/function/CoreSignalStation.h" #include "core/function/gpg/GpgKeyGetter.h" @@ -57,17 +59,17 @@ void show_verify_details(QWidget *parent, InfoBoardWidget *info_board, GpgError error, const GpgVerifyResult &verify_result) { // take out result info_board->ResetOptionActionsMenu(); - info_board->AddOptionalAction(QObject::tr("Show Verify Details"), [=]() { - VerifyDetailsDialog(parent, error, verify_result); - }); + info_board->AddOptionalAction( + QCoreApplication::tr("Show Verify Details"), + [=]() { VerifyDetailsDialog(parent, error, verify_result); }); } void import_unknown_key_from_keyserver( QWidget *parent, const GpgVerifyResultAnalyse &verify_res) { QMessageBox::StandardButton reply; reply = QMessageBox::question( - parent, QObject::tr("Public key not found locally"), - QObject::tr( + parent, QCoreApplication::tr("Public key not found locally"), + QCoreApplication::tr( "There is no target public key content in local for GpgFrontend to " "gather enough information about this Signature. Do you want to " "import the public key from Keyserver now?"), @@ -273,19 +275,34 @@ void CommonUtils::SlotImportKeys(QWidget *parent, const QString &in_buffer) { } void CommonUtils::SlotImportKeyFromFile(QWidget *parent) { - auto file_name = QFileDialog::getOpenFileName(this, tr("Open Key"), QString(), - tr("Key Files")) + - " (*.asc *.txt);;" + tr("Keyring files") + - " (*.gpg);;All Files (*)"; - if (!file_name.isNull()) { - QByteArray key_buffer; - if (!ReadFile(file_name, key_buffer)) { - QMessageBox::critical(nullptr, tr("File Open Failed"), - tr("Failed to open file: ") + file_name); - return; - } - SlotImportKeys(parent, key_buffer); + auto file_name = + QFileDialog::getOpenFileName(parent, tr("Open Key"), QString(), + tr("Keyring files") + " (*.asc *.gpg)"); + if (file_name.isEmpty()) return; + + QFileInfo file_info(file_name); + + if (!file_info.isFile() || !file_info.isReadable()) { + QMessageBox::critical( + parent, tr("Error"), + tr("Cannot open this file. Please make sure that this " + "is a regular file and it's readable.")); + return; + } + + if (file_info.size() > static_cast<qint64>(1024 * 1024)) { + QMessageBox::critical(parent, tr("Error"), + tr("The target file is too large for a keyring.")); + return; + } + + QByteArray key_buffer; + if (!ReadFile(file_name, key_buffer)) { + QMessageBox::critical(nullptr, tr("File Open Failed"), + tr("Failed to open file: ") + file_name); + return; } + SlotImportKeys(parent, key_buffer); } void CommonUtils::SlotImportKeyFromKeyServer(QWidget *parent) { @@ -334,7 +351,7 @@ void CommonUtils::SlotExecuteGpgCommand( const QStringList &arguments, const std::function<void(QProcess *)> &interact_func) { QEventLoop looper; - auto dialog = new WaitingDialog(tr("Processing"), nullptr); + auto *dialog = new WaitingDialog(tr("Processing"), nullptr); dialog->show(); auto *gpg_process = new QProcess(&looper); gpg_process->setProcessChannelMode(QProcess::MergedChannels); @@ -408,7 +425,7 @@ void CommonUtils::SlotImportKeyFromKeyServer( target_keyserver_url.host() + "/pks/lookup?op=get&search=0x" + key_id + "&options=mr"); - GF_UI_LOG_DEBUG("request url: {}", req_url.toString().toStdString()); + GF_UI_LOG_DEBUG("request url: {}", req_url.toString()); // Waiting for reply QNetworkReply *reply = network_manager->get(QNetworkRequest(req_url)); @@ -498,7 +515,7 @@ void CommonUtils::SlotRestartApplication(int code) { } } -bool CommonUtils::isApplicationNeedRestart() { +auto CommonUtils::isApplicationNeedRestart() -> bool { return application_need_to_restart_at_once_; } diff --git a/src/ui/dialog/Wizard.cpp b/src/ui/dialog/Wizard.cpp index 89ebee27..b6fa53f3 100644 --- a/src/ui/dialog/Wizard.cpp +++ b/src/ui/dialog/Wizard.cpp @@ -218,20 +218,20 @@ ConclusionPage::ConclusionPage(QWidget* parent) : QWizardPage(parent) { setTitle(tr("Ready.")); setSubTitle(tr("Have fun with GpgFrontend!")); - auto* bottomLabel = new QLabel( + auto* bottom_label = new QLabel( tr("You are ready to use GpgFrontend now.<br><br>") + "<a " - "href=\"https://saturneric.github.io/GpgFrontend/index.html#/" + "href=\"https://gpgfrontend.bktus.com/manual/understand-interface" "overview\">" + tr("The Online Document") + "</a>" + tr(" will get you started with GpgFrontend. Anytime you encounter " "problems, please try to find help from the documentation") + "<br>"); - bottomLabel->setTextFormat(Qt::RichText); - bottomLabel->setTextInteractionFlags(Qt::TextBrowserInteraction); - bottomLabel->setOpenExternalLinks(true); - bottomLabel->setWordWrap(true); + bottom_label->setTextFormat(Qt::RichText); + bottom_label->setTextInteractionFlags(Qt::TextBrowserInteraction); + bottom_label->setOpenExternalLinks(true); + bottom_label->setWordWrap(true); open_help_check_box_ = new QCheckBox(tr("Open offline help.")); open_help_check_box_->setChecked(true); @@ -243,7 +243,7 @@ ConclusionPage::ConclusionPage(QWidget* parent) : QWizardPage(parent) { // registerField("openHelp", openHelpCheckBox); auto* layout = new QVBoxLayout; - layout->addWidget(bottomLabel); + layout->addWidget(bottom_label); // layout->addWidget(openHelpCheckBox); layout->addWidget(dont_show_wizard_checkbox_); setLayout(layout); diff --git a/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp b/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp index 9e3573f5..ffe8d3af 100644 --- a/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp +++ b/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp @@ -46,15 +46,18 @@ GnuPGControllerDialog::GnuPGControllerDialog(QWidget* parent) ui_->keyDatabaseGroupBox->setTitle(tr("Key Database")); ui_->advanceGroupBox->setTitle(tr("Advanced")); - ui_->asciiModeCheckBox->setText(tr("No ASCII Mode")); + ui_->asciiModeCheckBox->setText(tr("Use Binary Mode for File Operations")); ui_->usePinentryAsPasswordInputDialogCheckBox->setText( tr("Use Pinentry as Password Input Dialog")); + ui_->gpgmeDebugLogCheckBox->setText(tr("Enable GpgME Debug Log")); ui_->useCustomGnuPGInstallPathCheckBox->setText(tr("Use Custom GnuPG")); ui_->useCustomGnuPGInstallPathButton->setText(tr("Select GnuPG Path")); ui_->keyDatabseUseCustomCheckBox->setText( tr("Use Custom GnuPG Key Database Path")); ui_->customKeyDatabasePathSelectButton->setText( tr("Select Key Database Path")); + ui_->restartGpgAgentOnStartCheckBox->setText( + tr("Restart Gpg Agent on start")); // tips ui_->customGnuPGPathTipsLabel->setText( @@ -98,18 +101,7 @@ GnuPGControllerDialog::GnuPGControllerDialog(QWidget* parent) GF_UI_LOG_DEBUG("key databse path selected: {}", selected_custom_key_database_path); - if (!check_custom_gnupg_key_database_path( - selected_custom_key_database_path)) { - return; - } - - auto settings = GlobalSettingStation::GetInstance().GetSettings(); - - // update settings - if (!settings.contains("basic/custom_key_database_path")) { - settings.setValue("basic/custom_key_database_path", - selected_custom_key_database_path); - } + custom_key_database_path_ = selected_custom_key_database_path; // announce the restart this->slot_set_restart_needed(kDeepRestartCode); @@ -129,16 +121,7 @@ GnuPGControllerDialog::GnuPGControllerDialog(QWidget* parent) GF_UI_LOG_DEBUG("gnupg install path selected: {}", selected_custom_gnupg_install_path); - // notify the user and precheck - if (!check_custom_gnupg_path(selected_custom_gnupg_install_path)) { - return; - } - - auto settings = GlobalSettingStation::GetInstance().GetSettings(); - if (!settings.contains("basic/custom_gnupg_install_path")) { - settings.setValue("basic/custom_gnupg_install_path", - selected_custom_gnupg_install_path); - } + custom_gnupg_path_ = selected_custom_gnupg_install_path; // announce the restart this->slot_set_restart_needed(kDeepRestartCode); @@ -149,7 +132,23 @@ GnuPGControllerDialog::GnuPGControllerDialog(QWidget* parent) }); connect(ui_->usePinentryAsPasswordInputDialogCheckBox, - &QCheckBox::stateChanged, this, [=](int state) { + &QCheckBox::stateChanged, this, [=](int) { + // announce the restart + this->slot_set_restart_needed(kDeepRestartCode); + }); + + connect(ui_->gpgmeDebugLogCheckBox, &QCheckBox::stateChanged, this, [=](int) { + // announce the restart + this->slot_set_restart_needed(kDeepRestartCode); + }); + + connect(ui_->asciiModeCheckBox, &QCheckBox::stateChanged, this, [=](int) { + // announce the restart + this->slot_set_restart_needed(kDeepRestartCode); + }); + + connect(ui_->restartGpgAgentOnStartCheckBox, &QCheckBox::stateChanged, this, + [=](int) { // announce the restart this->slot_set_restart_needed(kDeepRestartCode); }); @@ -189,37 +188,39 @@ void GnuPGControllerDialog::slot_update_custom_key_database_path_label( // announce the restart this->slot_set_restart_needed(kDeepRestartCode); - const auto database_path = Module::RetrieveRTValueTypedOrDefault<>( - "core", "gpgme.ctx.database_path", QString{}); - GF_UI_LOG_DEBUG("got gpgme.ctx.database_path from rt: {}", database_path); - - if (state != Qt::CheckState::Checked) { - ui_->currentKeyDatabasePathLabel->setText(database_path); - - // hide label (not necessary to show the default path) - this->ui_->currentKeyDatabasePathLabel->setHidden(true); - } else { - // read from settings file - QString custom_key_database_path = - GlobalSettingStation::GetInstance() - .GetSettings() - .value("basic/custom_key_database_path") - .toString(); - - GF_UI_LOG_DEBUG("selected_custom_key_database_path from settings: {}", - custom_key_database_path); + // hide label (not necessary to show the default path) + this->ui_->currentKeyDatabasePathLabel->setHidden(state != + Qt::CheckState::Checked); + if (state == Qt::CheckState::Checked) { + if (custom_key_database_path_.isEmpty()) { + // read from settings file + QString custom_key_database_path = + GlobalSettingStation::GetInstance() + .GetSettings() + .value("gnupg/custom_key_database_path") + .toString(); + GF_UI_LOG_DEBUG("selected_custom_key_database_path from settings: {}", + custom_key_database_path); + custom_key_database_path_ = custom_key_database_path; + } // notify the user - check_custom_gnupg_key_database_path(custom_key_database_path); + if (!check_custom_gnupg_key_database_path(custom_key_database_path_)) { + return; + }; // set label value - if (!custom_key_database_path.isEmpty()) { - ui_->currentKeyDatabasePathLabel->setText(custom_key_database_path); - this->ui_->currentKeyDatabasePathLabel->setHidden(false); - } else { - this->ui_->currentKeyDatabasePathLabel->setHidden(true); + if (!custom_key_database_path_.isEmpty()) { + ui_->currentKeyDatabasePathLabel->setText(custom_key_database_path_); } } + + if (ui_->currentKeyDatabasePathLabel->text().isEmpty()) { + const auto database_path = Module::RetrieveRTValueTypedOrDefault<>( + "core", "gpgme.ctx.database_path", QString{}); + GF_UI_LOG_DEBUG("got gpgme.ctx.database_path from rt: {}", database_path); + ui_->currentKeyDatabasePathLabel->setText(database_path); + } } void GnuPGControllerDialog::slot_update_custom_gnupg_install_path_label( @@ -227,95 +228,115 @@ void GnuPGControllerDialog::slot_update_custom_gnupg_install_path_label( // announce the restart this->slot_set_restart_needed(kDeepRestartCode); - const auto home_path = Module::RetrieveRTValueTypedOrDefault<>( - "com.bktus.gpgfrontend.module.integrated.gnupg-info-gathering", - "gnupg.home_path", QString{}); - GF_UI_LOG_DEBUG("got gnupg home path from rt: {}", home_path); - - if (state != Qt::CheckState::Checked) { - ui_->currentCustomGnuPGInstallPathLabel->setText(home_path); - - // hide label (not necessary to show the default path) - this->ui_->currentCustomGnuPGInstallPathLabel->setHidden(true); - } else { - // read from settings file - QString custom_gnupg_install_path = - GlobalSettingStation::GetInstance() - .GetSettings() - .value("basic/custom_gnupg_install_path") - .toString(); - - GF_UI_LOG_DEBUG("custom_gnupg_install_path from settings: {}", - custom_gnupg_install_path); - - // notify the user - check_custom_gnupg_path(custom_gnupg_install_path); - - // set label value - if (!custom_gnupg_install_path.isEmpty()) { - ui_->currentCustomGnuPGInstallPathLabel->setText( - custom_gnupg_install_path); - this->ui_->currentCustomGnuPGInstallPathLabel->setHidden(false); - } else { - this->ui_->currentCustomGnuPGInstallPathLabel->setHidden(true); + // hide label (not necessary to show the default path) + this->ui_->currentCustomGnuPGInstallPathLabel->setHidden( + state != Qt::CheckState::Checked); + do { + if (state == Qt::CheckState::Checked) { + if (custom_gnupg_path_.isEmpty()) { + // read from settings file + QString custom_gnupg_install_path = + GlobalSettingStation::GetInstance() + .GetSettings() + .value("gnupg/custom_gnupg_install_path") + .toString(); + GF_UI_LOG_DEBUG("custom_gnupg_install_path from settings: {}", + custom_gnupg_install_path); + custom_gnupg_path_ = custom_gnupg_install_path; + } + + // notify the user + if (!check_custom_gnupg_path(custom_gnupg_path_)) { + break; + } + + // set label value + if (!custom_gnupg_path_.isEmpty()) { + ui_->currentCustomGnuPGInstallPathLabel->setText(custom_gnupg_path_); + } } + } while (false); + + if (ui_->currentCustomGnuPGInstallPathLabel->text().isEmpty()) { + const auto gnupg_path = Module::RetrieveRTValueTypedOrDefault<>( + "core", "gpgme.ctx.app_path", QString{}); + GF_UI_LOG_DEBUG("got gnupg home path from rt: {}", gnupg_path); + auto dir = QFileInfo(gnupg_path).path(); + ui_->currentCustomGnuPGInstallPathLabel->setText(dir); } } void GnuPGControllerDialog::set_settings() { - auto& settings_station = GlobalSettingStation::GetInstance(); + auto settings = GlobalSettingStation::GetInstance().GetSettings(); - bool non_ascii_when_export = settings_station.GetSettings() - .value("basic/non_ascii_when_export", true) - .toBool(); - GF_UI_LOG_DEBUG("non_ascii_when_export: {}", non_ascii_when_export); - if (non_ascii_when_export) ui_->asciiModeCheckBox->setCheckState(Qt::Checked); + bool non_ascii_at_file_operation = + settings.value("gnupg/non_ascii_at_file_operation", true).toBool(); + if (non_ascii_at_file_operation) + ui_->asciiModeCheckBox->setCheckState(Qt::Checked); bool const use_custom_key_database_path = - settings_station.GetSettings() - .value("basic/use_custom_key_database_path", false) - .toBool(); + settings.value("gnupg/use_custom_key_database_path", false).toBool(); if (use_custom_key_database_path) { ui_->keyDatabseUseCustomCheckBox->setCheckState(Qt::Checked); } + bool const enable_gpgme_debug_log = + settings.value("gnupg/enable_gpgme_debug_log", false).toBool(); + if (enable_gpgme_debug_log) { + ui_->gpgmeDebugLogCheckBox->setCheckState(Qt::Checked); + } + this->slot_update_custom_key_database_path_label( ui_->keyDatabseUseCustomCheckBox->checkState()); bool const use_custom_gnupg_install_path = - settings_station.GetSettings() - .value("basic/use_custom_gnupg_install_path", false) - .toBool(); + settings.value("gnupg/use_custom_gnupg_install_path", false).toBool(); if (use_custom_gnupg_install_path) { ui_->useCustomGnuPGInstallPathCheckBox->setCheckState(Qt::Checked); } bool const use_pinentry_as_password_input_dialog = - settings_station.GetSettings() - .value("basic/use_pinentry_as_password_input_dialog", false) + settings.value("gnupg/use_pinentry_as_password_input_dialog", false) .toBool(); if (use_pinentry_as_password_input_dialog) { ui_->usePinentryAsPasswordInputDialogCheckBox->setCheckState(Qt::Checked); } - this->slot_update_custom_gnupg_install_path_label( - ui_->useCustomGnuPGInstallPathCheckBox->checkState()); + bool const restart_gpg_agent_on_start = + settings.value("gnupg/restart_gpg_agent_on_start", false).toBool(); + if (restart_gpg_agent_on_start) { + ui_->restartGpgAgentOnStartCheckBox->setCheckState(Qt::Checked); + } this->slot_set_restart_needed(false); + + this->slot_update_custom_key_database_path_label( + use_custom_key_database_path ? Qt::Checked : Qt::Unchecked); + + this->slot_update_custom_gnupg_install_path_label( + use_custom_gnupg_install_path ? Qt::Checked : Qt::Unchecked); } void GnuPGControllerDialog::apply_settings() { auto settings = GpgFrontend::GlobalSettingStation::GetInstance().GetSettings(); - settings.setValue("basic/non_ascii_when_export", + settings.setValue("gnupg/non_ascii_at_file_operation", ui_->asciiModeCheckBox->isChecked()); - settings.setValue("basic/use_custom_key_database_path", + settings.setValue("gnupg/use_custom_key_database_path", ui_->keyDatabseUseCustomCheckBox->isChecked()); - settings.setValue("basic/use_custom_gnupg_install_path", + settings.setValue("gnupg/use_custom_gnupg_install_path", ui_->useCustomGnuPGInstallPathCheckBox->isChecked()); - settings.setValue("basic/use_pinentry_as_password_input_dialog", + settings.setValue("gnupg/use_pinentry_as_password_input_dialog", ui_->usePinentryAsPasswordInputDialogCheckBox->isChecked()); + settings.setValue("gnupg/enable_gpgme_debug_log", + ui_->gpgmeDebugLogCheckBox->isChecked()); + settings.setValue("gnupg/custom_key_database_path", + ui_->currentKeyDatabasePathLabel->text()); + settings.setValue("gnupg/custom_gnupg_install_path", + ui_->currentCustomGnuPGInstallPathLabel->text()); + settings.setValue("gnupg/restart_gpg_agent_on_start", + ui_->restartGpgAgentOnStartCheckBox->isChecked()); } int GnuPGControllerDialog::get_restart_needed() const { diff --git a/src/ui/dialog/gnupg/GnuPGControllerDialog.h b/src/ui/dialog/gnupg/GnuPGControllerDialog.h index 201801dc..6e8ef797 100644 --- a/src/ui/dialog/gnupg/GnuPGControllerDialog.h +++ b/src/ui/dialog/gnupg/GnuPGControllerDialog.h @@ -84,6 +84,8 @@ class GnuPGControllerDialog : public GeneralDialog { private: std::shared_ptr<Ui_GnuPGControllerDialog> ui_; ///< int restart_needed_{0}; ///< + QString custom_key_database_path_; + QString custom_gnupg_path_; /** * @brief Get the Restart Needed object diff --git a/src/ui/dialog/import_export/KeyImportDetailDialog.cpp b/src/ui/dialog/import_export/KeyImportDetailDialog.cpp index 40a8ec80..5b71c0f6 100644 --- a/src/ui/dialog/import_export/KeyImportDetailDialog.cpp +++ b/src/ui/dialog/import_export/KeyImportDetailDialog.cpp @@ -118,6 +118,13 @@ void KeyImportDetailDialog::create_general_info_box() { general_info_box_layout->addWidget( new QLabel(QString::number(m_result_->secret_unchanged)), row, 1); } + + if (m_result_->new_revocations != 0) { + general_info_box_layout->addWidget(new QLabel(tr("New Revocations") + ": "), + row, 0); + general_info_box_layout->addWidget( + new QLabel(QString::number(m_result_->new_revocations)), row, 1); + } } void KeyImportDetailDialog::create_keys_table() { diff --git a/src/ui/dialog/import_export/KeyServerImportDialog.cpp b/src/ui/dialog/import_export/KeyServerImportDialog.cpp index 599d512d..296df539 100644 --- a/src/ui/dialog/import_export/KeyServerImportDialog.cpp +++ b/src/ui/dialog/import_export/KeyServerImportDialog.cpp @@ -411,7 +411,7 @@ void KeyServerImportDialog::slot_import_finished( set_loading(false); if (!success) { - GF_UI_LOG_ERROR("Error From Reply", buffer.toStdString()); + GF_UI_LOG_ERROR("error from reply: {}", buffer); set_message(err_msg, true); return; } diff --git a/src/ui/dialog/import_export/KeyUploadDialog.cpp b/src/ui/dialog/import_export/KeyUploadDialog.cpp index 903b2e14..f59f9daa 100644 --- a/src/ui/dialog/import_export/KeyUploadDialog.cpp +++ b/src/ui/dialog/import_export/KeyUploadDialog.cpp @@ -136,11 +136,11 @@ void KeyUploadDialog::slot_upload_finished() { this->close(); QByteArray response = reply->readAll(); - GF_UI_LOG_DEBUG("response: {}", response.toStdString()); + GF_UI_LOG_DEBUG("upload response: {}", response); auto error = reply->error(); if (error != QNetworkReply::NoError) { - GF_UI_LOG_DEBUG("error from reply: {}", reply->errorString().toStdString()); + GF_UI_LOG_DEBUG("error from reply: {}", reply->errorString()); QString message; switch (error) { case QNetworkReply::ContentNotFoundError: diff --git a/src/ui/dialog/key_generate/KeygenDialog.cpp b/src/ui/dialog/key_generate/KeygenDialog.cpp index 08816f98..50e28adf 100644 --- a/src/ui/dialog/key_generate/KeygenDialog.cpp +++ b/src/ui/dialog/key_generate/KeygenDialog.cpp @@ -141,7 +141,7 @@ void KeyGenDialog::slot_key_gen_accept() { if (!GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/use_pinentry_as_password_input_dialog", false) + .value("gnupg/use_pinentry_as_password_input_dialog", false) .toBool() && !no_pass_phrase_check_box_->isChecked()) { SetCacheValue("PinentryContext", "NEW_PASSPHRASE"); diff --git a/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp b/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp index 6908592b..9545405b 100644 --- a/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp +++ b/src/ui/dialog/keypair_details/KeyDetailsDialog.cpp @@ -29,6 +29,7 @@ #include "KeyDetailsDialog.h" #include "core/GpgModel.h" +#include "ui/UISignalStation.h" #include "ui/dialog/keypair_details/KeyPairDetailTab.h" #include "ui/dialog/keypair_details/KeyPairOperaTab.h" #include "ui/dialog/keypair_details/KeyPairSubkeyTab.h" @@ -40,11 +41,22 @@ KeyDetailsDialog::KeyDetailsDialog(const GpgKey& key, QWidget* parent) tab_widget_ = new QTabWidget(); tab_widget_->addTab(new KeyPairDetailTab(key.GetId(), tab_widget_), tr("KeyPair")); - tab_widget_->addTab(new KeyPairUIDTab(key.GetId(), tab_widget_), tr("UIDs")); - tab_widget_->addTab(new KeyPairSubkeyTab(key.GetId(), tab_widget_), - tr("Subkeys")); - tab_widget_->addTab(new KeyPairOperaTab(key.GetId(), tab_widget_), - tr("Operations")); + + if (!key.IsRevoked()) { + tab_widget_->addTab(new KeyPairUIDTab(key.GetId(), tab_widget_), + tr("UIDs")); + + tab_widget_->addTab(new KeyPairSubkeyTab(key.GetId(), tab_widget_), + tr("Subkeys")); + tab_widget_->addTab(new KeyPairOperaTab(key.GetId(), tab_widget_), + tr("Operations")); + } + + QString m_key_id = key.GetId(); + connect(UISignalStation::GetInstance(), &UISignalStation::SignalKeyRevoked, + this, [this, m_key_id](const QString& key_id) { + if (key_id == m_key_id) this->close(); + }); auto* main_layout = new QVBoxLayout; main_layout->addWidget(tab_widget_); diff --git a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp index 7756ac37..6e4a1df0 100644 --- a/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp +++ b/src/ui/dialog/keypair_details/KeyPairOperaTab.cpp @@ -83,8 +83,7 @@ KeyPairOperaTab::KeyPairOperaTab(const QString& key_id, QWidget* parent) auto* advance_h_box_layout = new QHBoxLayout(); - auto settings = - GpgFrontend::GlobalSettingStation::GetInstance().GetSettings(); + auto settings = GlobalSettingStation::GetInstance().GetSettings(); // read settings bool forbid_all_gnupg_connection = @@ -98,11 +97,11 @@ KeyPairOperaTab::KeyPairOperaTab(const QString& key_id, QWidget* parent) advance_h_box_layout->addWidget(key_server_opera_button); if (m_key_.IsPrivateKey() && m_key_.IsHasMasterKey()) { - auto* revoke_cert_gen_button = - new QPushButton(tr("Generate Revoke Certificate")); - connect(revoke_cert_gen_button, &QPushButton::clicked, this, - &KeyPairOperaTab::slot_gen_revoke_cert); - advance_h_box_layout->addWidget(revoke_cert_gen_button); + auto* revoke_cert_opera_button = + new QPushButton(tr("Revoke Certificate Operation")); + revoke_cert_opera_button->setStyleSheet("text-align:center;"); + revoke_cert_opera_button->setMenu(rev_cert_opera_menu_); + advance_h_box_layout->addWidget(revoke_cert_opera_button); } auto* modify_tofu_button = new QPushButton(tr("Modify TOFU Policy")); @@ -171,6 +170,21 @@ void KeyPairOperaTab::CreateOperaMenu() { secret_key_export_opera_menu_->addAction(export_full_secret_key); secret_key_export_opera_menu_->addAction(export_shortest_secret_key); + + rev_cert_opera_menu_ = new QMenu(this); + + auto* rev_cert_gen_action = + new QAction(tr("Generate Revoke Certificate"), this); + connect(rev_cert_gen_action, &QAction::triggered, this, + &KeyPairOperaTab::slot_gen_revoke_cert); + + auto* revoke_cert_import_action = + new QAction(tr("Import Revoke Certificate")); + connect(revoke_cert_import_action, &QAction::triggered, this, + &KeyPairOperaTab::slot_import_revoke_cert); + + rev_cert_opera_menu_->addAction(revoke_cert_import_action); + rev_cert_opera_menu_->addAction(rev_cert_gen_action); } void KeyPairOperaTab::slot_export_public_key() { @@ -352,7 +366,7 @@ void KeyPairOperaTab::slot_modify_tofu_policy() { this, tr("Modify TOFU Policy(Default is Auto)"), tr("Policy for the Key Pair:"), items, 0, false, &ok); if (ok && !item.isEmpty()) { - GF_UI_LOG_DEBUG("selected policy: {}", item.toStdString()); + GF_UI_LOG_DEBUG("selected policy: {}", item); gpgme_tofu_policy_t tofu_policy = GPGME_TOFU_POLICY_AUTO; if (item == tr("Policy Auto")) { tofu_policy = GPGME_TOFU_POLICY_AUTO; @@ -379,4 +393,54 @@ void KeyPairOperaTab::slot_set_owner_trust_level() { function->deleteLater(); } +void KeyPairOperaTab::slot_import_revoke_cert() { + // Show a information box with explanation about private key + int ret = QMessageBox::information( + this, tr("Import Key Revocation Certificate"), + "<h3>" + tr("You are about to import the") + "<font color=\"red\">" + + " " + tr("REVOCATION CERTIFICATE") + " " + "</font>!</h3>\n" + + tr("A successful import will result in the key being irreversibly " + "revoked.") + + "<br />" + tr("Do you REALLY want to execute this operation?"), + QMessageBox::Cancel | QMessageBox::Ok); + + // export key, if ok was clicked + if (ret != QMessageBox::Ok) return; + + auto rev_file_name = QFileDialog::getOpenFileName( + this, tr("Import Key Revocation Certificate"), {}, + tr("Revocation Certificates") + " (*.rev)"); + + if (rev_file_name.isEmpty()) return; + + QFileInfo rev_file_info(rev_file_name); + + if (!rev_file_info.isFile() || !rev_file_info.isReadable()) { + QMessageBox::critical( + this, tr("Error"), + tr("Cannot open this file. Please make sure that this " + "is a regular file and it's readable.")); + return; + } + + // max file size is 1 mb + if (rev_file_info.size() > static_cast<qint64>(1024 * 1024)) { + QMessageBox::critical( + this, tr("Error"), + tr("The target file is too large for a key revocation certificate.")); + return; + } + + QFile rev_file(rev_file_info.absoluteFilePath()); + if (!rev_file.open(QIODeviceBase::ReadOnly)) { + QMessageBox::critical( + this, tr("Error"), + tr("Cannot open this file. Please make sure that this " + "is a regular file and it's readable.")); + return; + } + + emit UISignalStation::GetInstance()->SignalKeyRevoked(m_key_.GetId()); + CommonUtils::GetInstance()->SlotImportKeys(nullptr, rev_file.readAll()); +} } // namespace GpgFrontend::UI diff --git a/src/ui/dialog/keypair_details/KeyPairOperaTab.h b/src/ui/dialog/keypair_details/KeyPairOperaTab.h index bb20d067..22c94957 100644 --- a/src/ui/dialog/keypair_details/KeyPairOperaTab.h +++ b/src/ui/dialog/keypair_details/KeyPairOperaTab.h @@ -120,9 +120,16 @@ class KeyPairOperaTab : public QWidget { */ void slot_set_owner_trust_level(); + /** + * @brief + * + */ + void slot_import_revoke_cert(); + private: - GpgKey m_key_; ///< - QMenu* key_server_opera_menu_{}; ///< + GpgKey m_key_; ///< + QMenu* key_server_opera_menu_{}; ///< + QMenu* rev_cert_opera_menu_{}; QMenu* secret_key_export_opera_menu_{}; ///< }; } // namespace GpgFrontend::UI diff --git a/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp b/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp index 22d1db2a..43fb6f3b 100644 --- a/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp +++ b/src/ui/dialog/keypair_details/KeySetExpireDateDialog.cpp @@ -58,9 +58,9 @@ KeySetExpireDateDialog::KeySetExpireDateDialog(const KeyId& key_id, } void KeySetExpireDateDialog::slot_confirm() { - GF_UI_LOG_DEBUG("called: {} {}", - ui_->dateEdit->date().toString().toStdString(), - ui_->timeEdit->time().toString().toStdString()); + GF_UI_LOG_DEBUG("confirm called, date: {}, time: {}", + ui_->dateEdit->date().toString(), + ui_->timeEdit->time().toString()); auto datetime = QDateTime(ui_->dateEdit->date(), ui_->timeEdit->time()); std::unique_ptr<QDateTime> expires = nullptr; if (ui_->noExpirationCheckBox->checkState() == Qt::Unchecked) { @@ -99,7 +99,7 @@ void KeySetExpireDateDialog::init() { auto settings = GpgFrontend::GlobalSettingStation::GetInstance().GetSettings(); - bool longer_expiration_date = longer_expiration_date = + bool longer_expiration_date = settings.value("basic/longer_expiration_date").toBool(); auto max_date_time = diff --git a/src/ui/dialog/settings/SettingsDialog.cpp b/src/ui/dialog/settings/SettingsDialog.cpp index 2af56906..a26ddf0b 100644 --- a/src/ui/dialog/settings/SettingsDialog.cpp +++ b/src/ui/dialog/settings/SettingsDialog.cpp @@ -129,7 +129,7 @@ auto SettingsDialog::ListLanguages() -> QHash<QString, QString> { QStringList filenames = QDir(QLatin1String(":/i18n")).entryList(); for (const auto& file : filenames) { - GF_UI_LOG_DEBUG("get locale from locale directory: {}", file.toStdString()); + GF_UI_LOG_DEBUG("get locale from locale directory: {}", file); auto start = file.indexOf('.') + 1; auto end = file.lastIndexOf('.'); diff --git a/src/ui/dialog/settings/SettingsGeneral.cpp b/src/ui/dialog/settings/SettingsGeneral.cpp index 44c66e10..bcf42867 100644 --- a/src/ui/dialog/settings/SettingsGeneral.cpp +++ b/src/ui/dialog/settings/SettingsGeneral.cpp @@ -66,6 +66,8 @@ GeneralTab::GeneralTab(QWidget* parent) tr("Clear All Data Objects (Total Size: %1)") .arg(GlobalSettingStation::GetInstance().GetDataObjectsFilesSize())); + ui_->revealInFileExplorerButton->setText(tr("Reveal in File Explorer")); + lang_ = SettingsDialog::ListLanguages(); for (const auto& l : lang_) { ui_->langSelectBox->addItem(l); @@ -96,6 +98,11 @@ GeneralTab::GeneralTab(QWidget* parent) } }); + connect(ui_->revealInFileExplorerButton, &QPushButton::clicked, this, [=]() { + QDesktopServices::openUrl(QUrl::fromLocalFile( + GlobalSettingStation::GetInstance().GetAppDataPath())); + }); + SetSettings(); } @@ -124,7 +131,7 @@ void GeneralTab::SetSettings() { QString lang_key = settings.value("basic/lang").toString(); QString lang_value = lang_.value(lang_key); - GF_UI_LOG_DEBUG("lang settings current: {}", lang_value.toStdString()); + GF_UI_LOG_DEBUG("lang settings current: {}", lang_value); if (!lang_.empty()) { ui_->langSelectBox->setCurrentIndex( ui_->langSelectBox->findText(lang_value)); diff --git a/src/ui/function/GenerateRevokeCertification.cpp b/src/ui/function/GenerateRevokeCertification.cpp index b4a6c934..9f8afcff 100644 --- a/src/ui/function/GenerateRevokeCertification.cpp +++ b/src/ui/function/GenerateRevokeCertification.cpp @@ -63,7 +63,7 @@ auto GenerateRevokeCertification::Exec(const GpgKey& key, // Code From Gpg4Win while (proc->canReadLine()) { const QString line = QString::fromUtf8(proc->readLine()).trimmed(); - GF_UI_LOG_DEBUG("line: {}", line.toStdString()); + GF_UI_LOG_DEBUG("line: {}", line); if (line == QLatin1String("[GNUPG:] GET_BOOL gen_revoke.okay")) { proc->write("y\n"); } else if (line == QLatin1String("[GNUPG:] GET_LINE " diff --git a/src/ui/function/RaisePinentry.cpp b/src/ui/function/RaisePinentry.cpp index 64e10c48..216712e8 100644 --- a/src/ui/function/RaisePinentry.cpp +++ b/src/ui/function/RaisePinentry.cpp @@ -55,8 +55,8 @@ auto RaisePinentry::Exec() -> int { GF_UI_LOG_DEBUG( "setting pinetry's arguments, context uids: {}, passphrase info: {}, " "prev_was_bad: {}", - context_->GetUidsInfo().toStdString(), - context_->GetPassphraseInfo().toStdString(), context_->IsPreWasBad()); + context_->GetUidsInfo(), context_->GetPassphraseInfo(), + context_->IsPreWasBad()); bool ask_for_new = context_->IsAskForNew() && context_->GetPassphraseInfo().isEmpty() && @@ -88,7 +88,7 @@ auto RaisePinentry::Exec() -> int { pinentry->setFormattedPassphrase({false, QString()}); pinentry->setConstraintsOptions({false, QString(), QString(), QString()}); - pinentry->setWindowTitle(tr("Buddled Pinentry")); + pinentry->setWindowTitle(tr("Bundled Pinentry")); /* If we reuse the same dialog window. */ pinentry->setPin(QString()); diff --git a/src/ui/function/SetOwnerTrustLevel.cpp b/src/ui/function/SetOwnerTrustLevel.cpp index 360abfce..87f4cb61 100644 --- a/src/ui/function/SetOwnerTrustLevel.cpp +++ b/src/ui/function/SetOwnerTrustLevel.cpp @@ -54,7 +54,7 @@ auto SetOwnerTrustLevel::Exec(const QString& key_id) -> bool { key.GetOwnerTrustLevel(), false, &ok); if (ok && !item.isEmpty()) { - GF_UI_LOG_DEBUG("selected owner trust policy: {}", item.toStdString()); + GF_UI_LOG_DEBUG("selected owner trust policy: {}", item); int trust_level = 0; // Unknown Level if (item == tr("Ultimate")) { trust_level = 5; diff --git a/src/ui/main_window/GeneralMainWindow.cpp b/src/ui/main_window/GeneralMainWindow.cpp index 2eb9f2a4..e3577199 100644 --- a/src/ui/main_window/GeneralMainWindow.cpp +++ b/src/ui/main_window/GeneralMainWindow.cpp @@ -102,6 +102,9 @@ void GpgFrontend::UI::GeneralMainWindow::slot_restore_settings() noexcept { } } + if (size_.width() < 600) size_.setWidth(600); + if (size_.height() < 400) size_.setHeight(400); + this->move(pos_); this->resize(size_); } diff --git a/src/ui/main_window/KeyMgmt.cpp b/src/ui/main_window/KeyMgmt.cpp index 29d26613..96df89d1 100644 --- a/src/ui/main_window/KeyMgmt.cpp +++ b/src/ui/main_window/KeyMgmt.cpp @@ -303,7 +303,7 @@ void KeyMgmt::create_tool_bars() { export_tool_button->setMenu(export_key_menu_); export_tool_button->setPopupMode(QToolButton::InstantPopup); export_tool_button->setIcon(QIcon(":/icons/key_export.png")); - export_tool_button->setToolTip(tr("Export key")); + export_tool_button->setToolTip(tr("Export Key")); export_tool_button->setText(tr("Export Key")); export_tool_button->setToolButtonStyle(icon_style_); key_tool_bar->addWidget(export_tool_button); @@ -529,14 +529,51 @@ void KeyMgmt::SlotExportAsOpenSSHFormat() { void KeyMgmt::SlotImportKeyPackage() { auto key_package_file_name = QFileDialog::getOpenFileName( - this, tr("Import Key Package"), {}, - tr("Key Package") + " (*.gfepack);;All Files (*)"); + this, tr("Import Key Package"), {}, tr("Key Package") + " (*.gfepack)"); + + if (key_package_file_name.isEmpty()) return; + + // max file size is 32 mb + QFileInfo key_package_file_info(key_package_file_name); + + if (!key_package_file_info.isFile() || !key_package_file_info.isReadable()) { + QMessageBox::critical( + this, tr("Error"), + tr("Cannot open this file. Please make sure that this " + "is a regular file and it's readable.")); + return; + } + + if (key_package_file_info.size() > static_cast<qint64>(32 * 1024 * 1024)) { + QMessageBox::critical( + this, tr("Error"), + tr("The target file is too large for a key package.")); + return; + } auto key_file_name = QFileDialog::getOpenFileName( this, tr("Import Key Package Passphrase File"), {}, - tr("Key Package Passphrase File") + " (*.key);;All Files (*)"); + tr("Key Package Passphrase File") + " (*.key)"); - if (key_package_file_name.isEmpty() || key_file_name.isEmpty()) return; + if (key_file_name.isEmpty()) return; + + // max file size is 1 mb + QFileInfo key_file_info(key_file_name); + + if (!key_file_info.isFile() || !key_file_info.isReadable()) { + QMessageBox::critical( + this, tr("Error"), + tr("Cannot open this file. Please make sure that this " + "is a regular file and it's readable.")); + return; + } + + if (key_file_info.size() > static_cast<qint64>(1024 * 1024)) { + QMessageBox::critical( + this, tr("Error"), + tr("The target file is too large for a key package passphrase.")); + return; + } GF_UI_LOG_INFO("importing key package: {}", key_package_file_name); CommonUtils::WaitForOpera( diff --git a/src/ui/main_window/MainWindow.cpp b/src/ui/main_window/MainWindow.cpp index ef7910ab..27634570 100644 --- a/src/ui/main_window/MainWindow.cpp +++ b/src/ui/main_window/MainWindow.cpp @@ -103,6 +103,12 @@ void MainWindow::Init() noexcept { [=](const QString &message, int timeout) { statusBar()->showMessage(message, timeout); }); + connect(UISignalStation::GetInstance(), + &UISignalStation::SignalMainWindowlUpdateBasicalOperaMenu, this, + &MainWindow::SlotUpdateCryptoMenuStatus); + connect(UISignalStation::GetInstance(), + &UISignalStation::SignalMainWindowOpenFile, this, + &MainWindow::SlotOpenFile); m_key_list_->AddMenuAction(append_selected_keys_act_); m_key_list_->AddMenuAction(append_key_create_date_to_editor_act_); @@ -123,21 +129,6 @@ void MainWindow::Init() noexcept { edit_->CurTextPage()->setFocus(); - // before application exit - connect(qApp, &QCoreApplication::aboutToQuit, this, []() { - GF_UI_LOG_DEBUG("about to quit process started"); - - if (GlobalSettingStation::GetInstance() - .GetSettings() - .value("basic/clear_gpg_password_cache", false) - .toBool()) { - GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache( - [](int, DataObjectPtr) { - - }); - } - }); - Module::ListenRTPublishEvent( this, "com.bktus.gpgfrontend.module.integrated.version-checking", "version.loading_done", @@ -178,8 +169,8 @@ void MainWindow::restore_settings() { if (key_server.default_server < 0) key_server.default_server = 0; auto settings = GlobalSettingStation::GetInstance().GetSettings(); - if (!settings.contains("basic/non_ascii_when_export")) { - settings.setValue("basic/non_ascii_when_export", true); + if (!settings.contains("gnupg/non_ascii_at_file_operation")) { + settings.setValue("gnupg/non_ascii_at_file_operation", true); } // set appearance diff --git a/src/ui/main_window/MainWindow.h b/src/ui/main_window/MainWindow.h index 34166444..523c14f0 100644 --- a/src/ui/main_window/MainWindow.h +++ b/src/ui/main_window/MainWindow.h @@ -74,11 +74,6 @@ class MainWindow : public GeneralMainWindow { */ void Init() noexcept; - /** - * @details refresh and enable specify crypto-menu actions. - */ - void SetCryptoMenuStatus(CryptoMenu::OperationType type); - signals: /** @@ -119,6 +114,11 @@ class MainWindow : public GeneralMainWindow { public slots: /** + * @details refresh and enable specify crypto-menu actions. + */ + void SlotUpdateCryptoMenuStatus(unsigned int type); + + /** * @details Open a new tab for path */ void SlotOpenFile(const QString& path); diff --git a/src/ui/main_window/MainWindowFileSlotFunction.cpp b/src/ui/main_window/MainWindowFileSlotFunction.cpp index c2465d86..6f550c09 100644 --- a/src/ui/main_window/MainWindowFileSlotFunction.cpp +++ b/src/ui/main_window/MainWindowFileSlotFunction.cpp @@ -51,13 +51,13 @@ void MainWindow::SlotFileEncrypt(const QString& path) { return; } - bool const non_ascii_when_export = + bool const non_ascii_at_file_operation = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/non_ascii_when_export", true) + .value("gnupg/non_ascii_at_file_operation", true) .toBool(); auto out_path = - SetExtensionOfOutputFile(path, kENCRYPT, !non_ascii_when_export); + SetExtensionOfOutputFile(path, kENCRYPT, !non_ascii_at_file_operation); if (QFile::exists(out_path)) { auto out_file_name = tr("The target file %1 already exists, " @@ -90,7 +90,7 @@ void MainWindow::SlotFileEncrypt(const QString& path) { CommonUtils::WaitForOpera( this, tr("Symmetrically Encrypting"), [=](const OperaWaitingHd& op_hd) { GpgFileOpera::GetInstance().EncryptFileSymmetric( - path, !non_ascii_when_export, out_path, + path, !non_ascii_at_file_operation, out_path, [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); @@ -134,8 +134,9 @@ void MainWindow::SlotFileEncrypt(const QString& path) { CommonUtils::WaitForOpera( this, tr("Encrypting"), [=](const OperaWaitingHd& op_hd) { GpgFileOpera::GetInstance().EncryptFile( - {p_keys->begin(), p_keys->end()}, path, !non_ascii_when_export, - out_path, [=](GpgError err, const DataObjectPtr& data_obj) { + {p_keys->begin(), p_keys->end()}, path, + !non_ascii_at_file_operation, out_path, + [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); @@ -165,13 +166,13 @@ void MainWindow::SlotDirectoryEncrypt(const QString& path) { return; } - bool const non_ascii_when_export = + bool const non_ascii_at_file_operation = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/non_ascii_when_export", true) + .value("gnupg/non_ascii_at_file_operation", true) .toBool(); - auto out_path = SetExtensionOfOutputFileForArchive(path, kENCRYPT, - !non_ascii_when_export); + auto out_path = SetExtensionOfOutputFileForArchive( + path, kENCRYPT, !non_ascii_at_file_operation); if (QFile::exists(out_path)) { auto out_file_name = tr("The target file %1 already exists, " @@ -205,7 +206,7 @@ void MainWindow::SlotDirectoryEncrypt(const QString& path) { this, tr("Archiving & Symmetrically Encrypting"), [=](const OperaWaitingHd& op_hd) { GpgFileOpera::GetInstance().EncryptDerectorySymmetric( - path, !non_ascii_when_export, out_path, + path, !non_ascii_at_file_operation, out_path, [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); @@ -248,8 +249,9 @@ void MainWindow::SlotDirectoryEncrypt(const QString& path) { CommonUtils::WaitForOpera( this, tr("Archiving & Encrypting"), [=](const OperaWaitingHd& op_hd) { GpgFileOpera::GetInstance().EncryptDirectory( - {p_keys->begin(), p_keys->end()}, path, !non_ascii_when_export, - out_path, [=](GpgError err, const DataObjectPtr& data_obj) { + {p_keys->begin(), p_keys->end()}, path, + !non_ascii_at_file_operation, out_path, + [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); @@ -280,6 +282,7 @@ void MainWindow::SlotFileDecrypt(const QString& path) { } auto out_path = SetExtensionOfOutputFile(path, kDECRYPT, true); + GF_UI_LOG_DEBUG("file decrypt target output path: {}", out_path); if (QFileInfo(out_path).exists()) { auto ret = QMessageBox::warning( this, tr("Warning"), @@ -329,6 +332,7 @@ void MainWindow::SlotArchiveDecrypt(const QString& path) { } auto out_path = SetExtensionOfOutputFileForArchive(path, kDECRYPT, true); + GF_UI_LOG_DEBUG("archive decrypt target output path: {}", out_path); if (QFileInfo(out_path).exists()) { auto ret = QMessageBox::warning( this, tr("Warning"), @@ -400,13 +404,13 @@ void MainWindow::SlotFileSign(const QString& path) { } } - bool const non_ascii_when_export = + bool const non_ascii_at_file_operation = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/non_ascii_when_export", true) + .value("gnupg/non_ascii_at_file_operation", true) .toBool(); auto sig_file_path = - SetExtensionOfOutputFile(path, kSIGN, !non_ascii_when_export); + SetExtensionOfOutputFile(path, kSIGN, !non_ascii_at_file_operation); if (QFileInfo(sig_file_path).exists()) { auto ret = QMessageBox::warning(this, tr("Warning"), @@ -421,7 +425,7 @@ void MainWindow::SlotFileSign(const QString& path) { CommonUtils::WaitForOpera( this, tr("Signing"), [=](const OperaWaitingHd& op_hd) { GpgFileOpera::GetInstance().SignFile( - {keys->begin(), keys->end()}, path, !non_ascii_when_export, + {keys->begin(), keys->end()}, path, !non_ascii_at_file_operation, sig_file_path, [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); @@ -559,13 +563,13 @@ void MainWindow::SlotFileEncryptSign(const QString& path) { } } - bool const non_ascii_when_export = + bool const non_ascii_at_file_operation = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/non_ascii_when_export", true) + .value("gnupg/non_ascii_at_file_operation", true) .toBool(); - auto out_path = - SetExtensionOfOutputFile(path, kENCRYPT_SIGN, !non_ascii_when_export); + auto out_path = SetExtensionOfOutputFile(path, kENCRYPT_SIGN, + !non_ascii_at_file_operation); check_result = TargetFilePreCheck(out_path, false); if (!std::get<0>(check_result)) { @@ -599,7 +603,7 @@ void MainWindow::SlotFileEncryptSign(const QString& path) { GpgFileOpera::GetInstance().EncryptSignFile( {p_keys->begin(), p_keys->end()}, {p_signer_keys->begin(), p_signer_keys->end()}, path, - !non_ascii_when_export, out_path, + !non_ascii_at_file_operation, out_path, [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); @@ -662,13 +666,13 @@ void MainWindow::SlotDirectoryEncryptSign(const QString& path) { } } - bool const non_ascii_when_export = + bool const non_ascii_at_file_operation = GlobalSettingStation::GetInstance() .GetSettings() - .value("basic/non_ascii_when_export", true) + .value("gnupg/non_ascii_at_file_operation", true) .toBool(); - auto out_path = SetExtensionOfOutputFileForArchive(path, kENCRYPT_SIGN, - !non_ascii_when_export); + auto out_path = SetExtensionOfOutputFileForArchive( + path, kENCRYPT_SIGN, !non_ascii_at_file_operation); check_result = TargetFilePreCheck(out_path, false); if (!std::get<0>(check_result)) { @@ -703,7 +707,7 @@ void MainWindow::SlotDirectoryEncryptSign(const QString& path) { GpgFileOpera::GetInstance().EncryptSignDirectory( {p_keys->begin(), p_keys->end()}, {p_signer_keys->begin(), p_signer_keys->end()}, path, - !non_ascii_when_export, out_path, + !non_ascii_at_file_operation, out_path, [=](GpgError err, const DataObjectPtr& data_obj) { // stop waiting op_hd(); diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp index 2ee7470c..6f0a99fb 100644 --- a/src/ui/main_window/MainWindowSlotFunction.cpp +++ b/src/ui/main_window/MainWindowSlotFunction.cpp @@ -50,10 +50,10 @@ void MainWindow::slot_find() { } // At first close verifynotification, if existing - edit_->SlotCurPageTextEdit()->CloseNoteByClass("findwidget"); + edit_->SlotCurPageTextEdit()->CloseNoteByClass("FindWidget"); auto* fw = new FindWidget(this, edit_->CurTextPage()); - edit_->SlotCurPageTextEdit()->ShowNotificationWidget(fw, "findWidget"); + edit_->SlotCurPageTextEdit()->ShowNotificationWidget(fw, "FindWidget"); } /* @@ -122,7 +122,8 @@ void MainWindow::slot_append_keys_expire_datetime() { } auto expire_datetime_format_str_local = - QLocale().toString(key.GetCreateTime()) + tr(" (Local Time) ") + "\n"; + QLocale().toString(key.GetCreateTime()) + " (" + tr("Local Time") + ") " + + "\n"; auto expire_datetime_format_str = key.GetCreateTime().toString(Qt::ISODate) + " (UTC) " + "\n"; diff --git a/src/ui/main_window/MainWindowSlotUI.cpp b/src/ui/main_window/MainWindowSlotUI.cpp index 74091c63..99a26626 100644 --- a/src/ui/main_window/MainWindowSlotUI.cpp +++ b/src/ui/main_window/MainWindowSlotUI.cpp @@ -65,13 +65,8 @@ void MainWindow::slot_open_key_management() { void MainWindow::slot_open_file_tab() { edit_->SlotNewFileTab(); } void MainWindow::slot_disable_tab_actions(int number) { - bool disable; - - disable = number == -1; - - if (edit_->CurFilePage() != nullptr) { - disable = true; - } + auto disable = number == -1; + if (edit_->CurFilePage() != nullptr) disable = true; print_act_->setDisabled(disable); save_act_->setDisabled(disable); @@ -100,6 +95,12 @@ void MainWindow::slot_disable_tab_actions(int number) { cut_pgp_header_act_->setDisabled(disable); add_pgp_header_act_->setDisabled(disable); + + if (edit_->CurFilePage() != nullptr) { + GF_UI_LOG_DEBUG("edit current page is file page"); + auto* file_page = edit_->CurFilePage(); + emit file_page->SignalCurrentTabChanged(); + } } void MainWindow::slot_open_settings_dialog() { @@ -184,9 +185,9 @@ void MainWindow::SlotSetRestartNeeded(int mode) { int MainWindow::get_restart_needed() const { return this->restart_needed_; } -void MainWindow::SetCryptoMenuStatus( - MainWindow::CryptoMenu::OperationType type) { - GF_UI_LOG_DEBUG("type: {}", type); +void MainWindow::SlotUpdateCryptoMenuStatus(unsigned int type) { + MainWindow::CryptoMenu::OperationType opera_type = type; + GF_UI_LOG_DEBUG("update crypto menu status, type: {}", opera_type); // refresh status to disable all verify_act_->setDisabled(true); @@ -197,22 +198,22 @@ void MainWindow::SetCryptoMenuStatus( decrypt_verify_act_->setDisabled(true); // enable according to type - if (type & MainWindow::CryptoMenu::Verify) { + if ((opera_type & MainWindow::CryptoMenu::Verify) != 0U) { verify_act_->setDisabled(false); } - if (type & MainWindow::CryptoMenu::Sign) { + if ((opera_type & MainWindow::CryptoMenu::Sign) != 0U) { sign_act_->setDisabled(false); } - if (type & MainWindow::CryptoMenu::Encrypt) { + if ((opera_type & MainWindow::CryptoMenu::Encrypt) != 0U) { encrypt_act_->setDisabled(false); } - if (type & MainWindow::CryptoMenu::EncryptAndSign) { + if ((opera_type & MainWindow::CryptoMenu::EncryptAndSign) != 0U) { encrypt_sign_act_->setDisabled(false); } - if (type & MainWindow::CryptoMenu::Decrypt) { + if ((opera_type & MainWindow::CryptoMenu::Decrypt) != 0U) { decrypt_act_->setDisabled(false); } - if (type & MainWindow::CryptoMenu::DecryptAndVerify) { + if ((opera_type & MainWindow::CryptoMenu::DecryptAndVerify) != 0U) { decrypt_verify_act_->setDisabled(false); } } diff --git a/src/ui/main_window/MainWindowUI.cpp b/src/ui/main_window/MainWindowUI.cpp index c193e4d1..8b6fc74c 100644 --- a/src/ui/main_window/MainWindowUI.cpp +++ b/src/ui/main_window/MainWindowUI.cpp @@ -147,6 +147,7 @@ void MainWindow::create_actions() { &TextEdit::SlotSelectAll); find_act_ = new QAction(tr("Find"), this); + find_act_->setIcon(QIcon(":/icons/search.png")); find_act_->setShortcut(QKeySequence::Find); find_act_->setToolTip(tr("Find a word")); connect(find_act_, &QAction::triggered, this, &MainWindow::slot_find); @@ -330,7 +331,7 @@ void MainWindow::create_actions() { }); import_key_from_edit_act_ = new QAction(tr("Editor"), this); - import_key_from_edit_act_->setIcon(QIcon(":/icons/txt.png")); + import_key_from_edit_act_->setIcon(QIcon(":/icons/editor.png")); import_key_from_edit_act_->setToolTip(tr("Import New Key From Editor")); connect(import_key_from_edit_act_, &QAction::triggered, this, &MainWindow::slot_import_key_from_edit); diff --git a/src/ui/thread/ListedKeyServerTestTask.cpp b/src/ui/thread/ListedKeyServerTestTask.cpp index 4ab7ba5f..f50a66ab 100644 --- a/src/ui/thread/ListedKeyServerTestTask.cpp +++ b/src/ui/thread/ListedKeyServerTestTask.cpp @@ -47,20 +47,19 @@ auto GpgFrontend::UI::ListedKeyServerTestTask::Run() -> int { size_t index = 0; for (const auto& url : urls_) { auto key_url = QUrl{url}; - GF_UI_LOG_DEBUG("key server request: {}", key_url.host().toStdString()); + GF_UI_LOG_DEBUG("key server request: {}", key_url.host()); auto* network_reply = network_manager_->get(QNetworkRequest{key_url}); auto* timer = new QTimer(this); connect(network_reply, &QNetworkReply::finished, this, [this, index, network_reply]() { - GF_UI_LOG_DEBUG("key server domain reply: {}", - urls_[index].toStdString()); + GF_UI_LOG_DEBUG("key server domain reply: {}", urls_[index]); this->slot_process_network_reply(index, network_reply); }); connect(timer, &QTimer::timeout, this, [this, index, network_reply]() { - GF_UI_LOG_DEBUG("timeout for key server: {}", urls_[index].toStdString()); + GF_UI_LOG_DEBUG("timeout for key server: {}", urls_[index]); if (network_reply->isRunning()) { network_reply->abort(); this->slot_process_network_reply(index, network_reply); diff --git a/src/ui/thread/ProxyConnectionTestTask.cpp b/src/ui/thread/ProxyConnectionTestTask.cpp index 6b0993fe..b681ca6d 100644 --- a/src/ui/thread/ProxyConnectionTestTask.cpp +++ b/src/ui/thread/ProxyConnectionTestTask.cpp @@ -45,13 +45,12 @@ auto GpgFrontend::UI::ProxyConnectionTestTask::Run() -> int { connect(network_reply, &QNetworkReply::finished, this, [this, network_reply]() { - GF_UI_LOG_DEBUG("key server domain reply: {} received", - url_.toStdString()); + GF_UI_LOG_DEBUG("key server domain reply: {} received", url_); this->slot_process_network_reply(network_reply); }); connect(timer, &QTimer::timeout, this, [this, network_reply]() { - GF_UI_LOG_DEBUG("timeout for key server: {}", url_.toStdString()); + GF_UI_LOG_DEBUG("timeout for key server: {}", url_); if (network_reply->isRunning()) { network_reply->abort(); this->slot_process_network_reply(network_reply); @@ -65,8 +64,8 @@ auto GpgFrontend::UI::ProxyConnectionTestTask::Run() -> int { void GpgFrontend::UI::ProxyConnectionTestTask::slot_process_network_reply( QNetworkReply* reply) { auto buffer = reply->readAll(); - GF_UI_LOG_DEBUG("key server domain reply: {}, buffer size: {}", - url_.toStdString(), buffer.size()); + GF_UI_LOG_DEBUG("key server domain reply: {}, buffer size: {}", url_, + buffer.size()); if (reply->error() == QNetworkReply::NoError && !buffer.isEmpty()) { result_ = "Reachable"; diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp index c6260003..d99bfc53 100644 --- a/src/ui/widgets/FilePage.cpp +++ b/src/ui/widgets/FilePage.cpp @@ -96,56 +96,16 @@ FilePage::FilePage(QWidget* parent, const QString& target_path) [this](const QString& path) { this->ui_->pathEdit->setText(path); }); connect(file_tree_view_, &FileTreeView::SignalPathChanged, this, &FilePage::SignalPathChanged); - - auto* main_window = qobject_cast<MainWindow*>(this->parent()); - if (main_window != nullptr) { - connect(file_tree_view_, &FileTreeView::SignalOpenFile, main_window, - &MainWindow::SlotOpenFile); - - connect(file_tree_view_, &FileTreeView::SignalSelectedChanged, this, - [main_window](const QString& selected_path) { - MainWindow::CryptoMenu::OperationType operation_type = - MainWindow::CryptoMenu::None; - - // abort... - if (selected_path.isEmpty()) return; - - QFileInfo const info(selected_path); - - if ((info.isDir() || info.isFile()) && - (info.suffix() != "gpg" && info.suffix() != "pgp" && - info.suffix() != "sig" && info.suffix() != "asc")) { - operation_type |= MainWindow::CryptoMenu::Encrypt; - } - - if ((info.isDir() || info.isFile()) && - (info.suffix() != "gpg" && info.suffix() != "pgp" && - info.suffix() != "sig" && info.suffix() != "asc")) { - operation_type |= MainWindow::CryptoMenu::EncryptAndSign; - } - - if (info.isFile() && - (info.suffix() == "gpg" || info.suffix() == "pgp" || - info.suffix() == "asc")) { - operation_type |= MainWindow::CryptoMenu::Decrypt; - operation_type |= MainWindow::CryptoMenu::DecryptAndVerify; - } - - if (info.isFile() && - (info.suffix() != "gpg" && info.suffix() != "pgp" && - info.suffix() != "sig" && info.suffix() != "asc")) { - operation_type |= MainWindow::CryptoMenu::Sign; - } - - if (info.isFile() && - (info.suffix() == "sig" || info.suffix() == "gpg" || - info.suffix() == "pgp" || info.suffix() == "asc")) { - operation_type |= MainWindow::CryptoMenu::Verify; - } - - main_window->SetCryptoMenuStatus(operation_type); - }); - } + connect(file_tree_view_, &FileTreeView::SignalOpenFile, + UISignalStation::GetInstance(), + &UISignalStation::SignalMainWindowOpenFile); + connect(file_tree_view_, &FileTreeView::SignalSelectedChanged, this, + &FilePage::update_main_basical_opera_menu); + connect(this, &FilePage::SignalCurrentTabChanged, this, + [this]() { update_main_basical_opera_menu(GetSelected()); }); + connect(this, &FilePage::SignalMainWindowlUpdateBasicalOperaMenu, + UISignalStation::GetInstance(), + &UISignalStation::SignalMainWindowlUpdateBasicalOperaMenu); } auto FilePage::GetSelected() const -> QString { @@ -164,4 +124,43 @@ void FilePage::keyPressEvent(QKeyEvent* event) { } } +void FilePage::update_main_basical_opera_menu(const QString& selected_path) { + MainWindow::CryptoMenu::OperationType operation_type = + MainWindow::CryptoMenu::None; + + // abort... + if (selected_path.isEmpty()) return; + + QFileInfo const info(selected_path); + + if ((info.isDir() || info.isFile()) && + (info.suffix() != "gpg" && info.suffix() != "pgp" && + info.suffix() != "sig" && info.suffix() != "asc")) { + operation_type |= MainWindow::CryptoMenu::Encrypt; + } + + if ((info.isDir() || info.isFile()) && + (info.suffix() != "gpg" && info.suffix() != "pgp" && + info.suffix() != "sig" && info.suffix() != "asc")) { + operation_type |= MainWindow::CryptoMenu::EncryptAndSign; + } + + if (info.isFile() && (info.suffix() == "gpg" || info.suffix() == "pgp" || + info.suffix() == "asc")) { + operation_type |= MainWindow::CryptoMenu::Decrypt; + operation_type |= MainWindow::CryptoMenu::DecryptAndVerify; + } + + if (info.isFile() && (info.suffix() != "gpg" && info.suffix() != "pgp" && + info.suffix() != "sig" && info.suffix() != "asc")) { + operation_type |= MainWindow::CryptoMenu::Sign; + } + + if (info.isFile() && (info.suffix() == "sig" || info.suffix() == "gpg" || + info.suffix() == "pgp" || info.suffix() == "asc")) { + operation_type |= MainWindow::CryptoMenu::Verify; + } + + emit SignalMainWindowlUpdateBasicalOperaMenu(operation_type); +} } // namespace GpgFrontend::UI diff --git a/src/ui/widgets/FilePage.h b/src/ui/widgets/FilePage.h index da5370a2..7f05e405 100644 --- a/src/ui/widgets/FilePage.h +++ b/src/ui/widgets/FilePage.h @@ -71,7 +71,7 @@ class FilePage : public QWidget { * * @param path */ - void SignalPathChanged(const QString& path); + void SignalPathChanged(const QString&); /** * @brief @@ -79,8 +79,20 @@ class FilePage : public QWidget { * @param text * @param verify_label_status */ - void SignalRefreshInfoBoard(const QString& text, - InfoBoardStatus verify_label_status); + void SignalRefreshInfoBoard(const QString&, InfoBoardStatus); + + /** + * @brief + * + */ + void SignalCurrentTabChanged(); + + /** + * @brief + * + * @param int + */ + void SignalMainWindowlUpdateBasicalOperaMenu(unsigned int); protected: /** @@ -99,6 +111,14 @@ class FilePage : public QWidget { QMenu* popup_menu_{}; ///< QMenu* option_popup_menu_{}; ///< FileTreeView* file_tree_view_; + + private slots: + + /** + * @brief + * + */ + void update_main_basical_opera_menu(const QString&); }; } // namespace GpgFrontend::UI diff --git a/src/ui/widgets/FileTreeView.cpp b/src/ui/widgets/FileTreeView.cpp index 0c299a97..b0241b63 100644 --- a/src/ui/widgets/FileTreeView.cpp +++ b/src/ui/widgets/FileTreeView.cpp @@ -49,6 +49,7 @@ FileTreeView::FileTreeView(QWidget* parent, const QString& target_path) slot_create_popup_menu(); this->setContextMenuPolicy(Qt::CustomContextMenu); + connect(this, &QWidget::customContextMenuRequested, this, &FileTreeView::slot_show_custom_context_menu); connect(this, &QTreeView::doubleClicked, this, @@ -159,7 +160,7 @@ auto FileTreeView::SlotDeleteSelectedItem() -> void { if (ret == QMessageBox::Cancel) return; - GF_UI_LOG_DEBUG("delete item: {}", data.toString().toStdString()); + GF_UI_LOG_DEBUG("delete item: {}", data.toString()); if (!dir_model_->remove(index)) { QMessageBox::critical(this, tr("Error"), @@ -194,25 +195,19 @@ void FileTreeView::SlotMkdirBelowAtSelectedItem() { } void FileTreeView::SlotTouch() { -#ifdef WINDOWS - auto root_path_str = dir_model_->rootPath().toStdU16String(); -#else - auto root_path_str = dir_model_->rootPath().toStdString(); -#endif - std::filesystem::path root_path(root_path_str); + auto root_path = dir_model_->rootPath(); QString new_file_name; bool ok; + new_file_name = QInputDialog::getText( this, tr("Create Empty File"), tr("Filename (you can given extension)"), QLineEdit::Normal, new_file_name, &ok); if (ok && !new_file_name.isEmpty()) { -#ifdef WINDOWS - auto file_path = root_path / new_file_name.toStdU16String(); -#else - auto file_path = root_path / new_file_name.toStdString(); -#endif - QFile new_file(file_path.u8string().c_str()); + auto file_path = root_path + "/" + new_file_name; + GF_UI_LOG_DEBUG("new file path: {}", file_path); + + QFile new_file(file_path); if (!new_file.open(QIODevice::WriteOnly | QIODevice::NewOnly)) { QMessageBox::critical(this, tr("Error"), tr("Unable to create the file.")); @@ -223,6 +218,7 @@ void FileTreeView::SlotTouch() { void FileTreeView::SlotTouchBelowAtSelectedItem() { auto root_path(selected_path_); + if (root_path.isEmpty()) root_path = dir_model_->rootPath(); QString new_file_name; bool ok; @@ -231,6 +227,7 @@ void FileTreeView::SlotTouchBelowAtSelectedItem() { QLineEdit::Normal, new_file_name, &ok); if (ok && !new_file_name.isEmpty()) { auto file_path = root_path + "/" + new_file_name; + GF_UI_LOG_DEBUG("new file path: {}", file_path); QFile new_file(file_path); if (!new_file.open(QIODevice::WriteOnly | QIODevice::NewOnly)) { @@ -257,7 +254,7 @@ void FileTreeView::keyPressEvent(QKeyEvent* event) { void FileTreeView::SlotOpenSelectedItemBySystemApplication() { QFileInfo const info(selected_path_); if (info.isDir()) { - const auto file_path = info.filePath().toUtf8().toStdString(); + const auto file_path = info.filePath().toUtf8(); QDesktopServices::openUrl(QUrl::fromLocalFile(selected_path_)); } else { @@ -274,7 +271,7 @@ void FileTreeView::SlotRenameSelectedItem() { auto file_info = QFileInfo(selected_path_); auto new_name_path = file_info.absolutePath() + "/" + text; GF_UI_LOG_DEBUG("new filename path: {}", new_name_path); - if (QDir().rename(file_info.absoluteFilePath(), new_name_path)) { + if (!QDir().rename(file_info.absoluteFilePath(), new_name_path)) { QMessageBox::critical(this, tr("Error"), tr("Unable to rename the file or folder.")); return; @@ -334,16 +331,16 @@ void FileTreeView::slot_create_popup_menu() { connect(action_open_with_system_default_application, &QAction::triggered, this, &FileTreeView::SlotOpenSelectedItemBySystemApplication); - auto* new_item_action_menu = new QMenu(this); - new_item_action_menu->setTitle(tr("New")); - new_item_action_menu->addAction(action_create_empty_file_); - new_item_action_menu->addAction(action_make_directory_); + new_item_action_menu_ = new QMenu(this); + new_item_action_menu_->setTitle(tr("New")); + new_item_action_menu_->addAction(action_create_empty_file_); + new_item_action_menu_->addAction(action_make_directory_); popup_menu_->addAction(action_open_file_); popup_menu_->addAction(action_open_with_system_default_application); popup_menu_->addSeparator(); - popup_menu_->addMenu(new_item_action_menu); + popup_menu_->addMenu(new_item_action_menu_); popup_menu_->addSeparator(); popup_menu_->addAction(action_rename_file_); @@ -354,22 +351,40 @@ void FileTreeView::slot_create_popup_menu() { void FileTreeView::slot_show_custom_context_menu(const QPoint& point) { auto target_path = this->GetPathByClickPoint(point); + auto select_path = GetSelectedPath(); + + GF_UI_LOG_DEBUG("file tree view, target path: {}, select path: {}", + target_path, select_path); + if (target_path.isEmpty() && !select_path.isEmpty()) { + target_path = select_path; + } - if (!target_path.isEmpty()) { - action_open_file_->setEnabled(true); + QFileInfo file_info(target_path); + + action_open_file_->setEnabled(false); + action_rename_file_->setEnabled(false); + action_delete_file_->setEnabled(false); + action_calculate_hash_->setEnabled(false); + action_make_directory_->setEnabled(false); + action_create_empty_file_->setEnabled(false); + action_calculate_hash_->setEnabled(false); + + if (file_info.exists()) { + action_open_file_->setEnabled(file_info.isFile() && file_info.isReadable()); action_rename_file_->setEnabled(true); action_delete_file_->setEnabled(true); - QFileInfo const info(this->GetSelectedPath()); - action_calculate_hash_->setEnabled(info.isFile() && info.isReadable()); - + action_make_directory_->setEnabled(file_info.isDir() && + file_info.isWritable()); + action_create_empty_file_->setEnabled(file_info.isDir() && + file_info.isWritable()); + action_calculate_hash_->setEnabled(file_info.isFile() && + file_info.isReadable()); } else { - action_open_file_->setEnabled(false); - action_rename_file_->setEnabled(false); - action_delete_file_->setEnabled(false); - - action_calculate_hash_->setEnabled(false); + action_create_empty_file_->setEnabled(true); + action_make_directory_->setEnabled(true); } + popup_menu_->exec(this->GetMousePointGlobal(point)); } @@ -377,11 +392,11 @@ void FileTreeView::slot_calculate_hash() { CommonUtils::WaitForOpera( this->parentWidget(), tr("Calculating"), [=](const OperaWaitingHd& hd) { RunOperaAsync( - [=](DataObjectPtr data_object) { + [=](const DataObjectPtr& data_object) { data_object->Swap({CalculateHash(this->GetSelectedPath())}); return 0; }, - [hd](int rtn, DataObjectPtr data_object) { + [hd](int rtn, const DataObjectPtr& data_object) { hd(); if (rtn < 0 || !data_object->Check<QString>()) { return; @@ -402,4 +417,8 @@ void FileTreeView::paintEvent(QPaintEvent* event) { this->resizeColumnToContents(i); } } + +void FileTreeView::mousePressEvent(QMouseEvent* event) { + QTreeView::mousePressEvent(event); +} } // namespace GpgFrontend::UI diff --git a/src/ui/widgets/FileTreeView.h b/src/ui/widgets/FileTreeView.h index 9e9b03dd..cd3b1cb8 100644 --- a/src/ui/widgets/FileTreeView.h +++ b/src/ui/widgets/FileTreeView.h @@ -38,14 +38,14 @@ class FileTreeView : public QTreeView { /** * @brief Get the Current Path object * - * @return std::filesystem::path + * @return QString */ auto GetCurrentPath() -> QString; /** * @brief Get the Selected Path object * - * @return std::filesystem::path + * @return QString */ auto GetSelectedPath() -> QString; @@ -53,7 +53,7 @@ class FileTreeView : public QTreeView { * @brief Get the Path By Click Point object * * @param point - * @return std::filesystem::path + * @return QString */ auto GetPathByClickPoint(const QPoint& point) -> QString; @@ -88,6 +88,13 @@ class FileTreeView : public QTreeView { */ void paintEvent(QPaintEvent* event) override; + /** + * @brief + * + * @param event + */ + void mousePressEvent(QMouseEvent* event) override; + signals: /** @@ -218,6 +225,7 @@ class FileTreeView : public QTreeView { QString selected_path_; ///< QMenu* popup_menu_; + QMenu* new_item_action_menu_; QAction* action_open_file_; QAction* action_rename_file_; QAction* action_delete_file_; diff --git a/src/ui/widgets/FindWidget.cpp b/src/ui/widgets/FindWidget.cpp index 7cc569e4..6b5b386c 100644 --- a/src/ui/widgets/FindWidget.cpp +++ b/src/ui/widgets/FindWidget.cpp @@ -33,9 +33,8 @@ namespace GpgFrontend::UI { FindWidget::FindWidget(QWidget* parent, PlainTextEditorPage* edit) : QWidget(parent), m_text_page_(edit) { find_edit_ = new QLineEdit(this); - auto* close_button = new QPushButton( - this->style()->standardIcon(QStyle::SP_TitleBarCloseButton), QString(), - this); + auto* close_button = + new QPushButton(QIcon(":/icons/close.png"), QString(), this); auto* next_button = new QPushButton(QIcon(":/icons/button_next.png"), QString()); auto* previous_button = @@ -60,24 +59,10 @@ FindWidget::FindWidget(QWidget* parent, PlainTextEditorPage* edit) connect(close_button, &QPushButton::clicked, this, &FindWidget::slot_close); // The timer is necessary for setting the focus - QTimer::singleShot(0, find_edit_, SLOT(setFocus())); + QTimer::singleShot(32, find_edit_, SLOT(setFocus())); } -void FindWidget::set_background() { - // auto cursor = m_text_page_->GetTextPage()->textCursor(); - // if match is found set background of QLineEdit to white, otherwise to red - QPalette bg_palette(find_edit_->palette()); - - if (!find_edit_->text().isEmpty() && m_text_page_->GetTextPage() - ->document() - ->find(find_edit_->text()) - .position() < 0) { - bg_palette.setColor(QPalette::Base, "#ececba"); - } else { - bg_palette.setColor(QPalette::Base, Qt::white); - } - find_edit_->setPalette(bg_palette); -} +void FindWidget::set_background() {} void FindWidget::slot_find_next() { QTextCursor cursor = m_text_page_->GetTextPage()->textCursor(); diff --git a/src/ui/widgets/InfoBoardWidget.cpp b/src/ui/widgets/InfoBoardWidget.cpp index fdec1e50..d1a006c5 100644 --- a/src/ui/widgets/InfoBoardWidget.cpp +++ b/src/ui/widgets/InfoBoardWidget.cpp @@ -115,7 +115,7 @@ void InfoBoardWidget::AssociateTabWidget(QTabWidget* tab) { void InfoBoardWidget::AddOptionalAction(const QString& name, const std::function<void()>& action) { - GF_UI_LOG_DEBUG("add option: {}", name.toStdString()); + GF_UI_LOG_DEBUG("add option action: {}", name); auto* action_button = new QPushButton(name); auto* layout = new QHBoxLayout(); layout->setContentsMargins(5, 0, 5, 0); @@ -165,7 +165,7 @@ void InfoBoardWidget::slot_copy() { void InfoBoardWidget::slot_save() { auto file_path = QFileDialog::getSaveFileName( this, tr("Save Information Board's Content"), {}, tr("Text (*.txt)")); - GF_UI_LOG_DEBUG("file path: {}", file_path.toStdString()); + GF_UI_LOG_DEBUG("file path: {}", file_path); if (file_path.isEmpty()) return; QFile file(file_path); diff --git a/src/ui/widgets/KeyList.cpp b/src/ui/widgets/KeyList.cpp index 58e53ae0..48c99269 100644 --- a/src/ui/widgets/KeyList.cpp +++ b/src/ui/widgets/KeyList.cpp @@ -115,7 +115,7 @@ void KeyList::AddListGroupTab(const QString& name, const QString& id, KeyListRow::KeyType selectType, KeyListColumn::InfoType infoType, const KeyTable::KeyTableFilter filter) { - GF_UI_LOG_DEBUG("add tab: {}", name.toStdString()); + GF_UI_LOG_DEBUG("add list group tab: {}", name); auto* key_list = new QTableWidget(this); if (m_key_list_ == nullptr) { @@ -126,7 +126,7 @@ void KeyList::AddListGroupTab(const QString& name, const QString& id, m_key_tables_.emplace_back(key_list, selectType, infoType, filter); m_key_tables_.back().SetMenuAbility(menu_ability_); - key_list->setColumnCount(7); + key_list->setColumnCount(8); key_list->horizontalHeader()->setSectionResizeMode( QHeaderView::ResizeToContents); key_list->verticalHeader()->hide(); @@ -159,13 +159,16 @@ void KeyList::AddListGroupTab(const QString& name, const QString& id, if ((infoType & KeyListColumn::Validity) == 0U) { key_list->setColumnHidden(5, true); } - if ((infoType & KeyListColumn::FingerPrint) == 0U) { + if ((infoType & KeyListColumn::KeyID) == 0U) { key_list->setColumnHidden(6, true); } + if ((infoType & KeyListColumn::FingerPrint) == 0U) { + key_list->setColumnHidden(7, true); + } QStringList labels; labels << tr("Select") << tr("Type") << tr("Name") << tr("Email Address") - << tr("Usage") << tr("Trust") << tr("Finger Print"); + << tr("Usage") << tr("Trust") << tr("Key ID") << tr("Finger Print"); key_list->setHorizontalHeaderLabels(labels); key_list->horizontalHeader()->setStretchLastSection(false); @@ -190,7 +193,7 @@ void KeyList::SlotRefreshUI() { this->slot_refresh_ui(); } -KeyIdArgsListPtr KeyList::GetChecked(const KeyTable& key_table) { +auto KeyList::GetChecked(const KeyTable& key_table) -> KeyIdArgsListPtr { auto ret = std::make_unique<KeyIdArgsList>(); for (int i = 0; i < key_table.key_list_->rowCount(); i++) { if (key_table.key_list_->item(i, 0)->checkState() == Qt::Checked) { @@ -200,7 +203,7 @@ KeyIdArgsListPtr KeyList::GetChecked(const KeyTable& key_table) { return ret; } -KeyIdArgsListPtr KeyList::GetChecked() { +auto KeyList::GetChecked() -> KeyIdArgsListPtr { auto* key_list = qobject_cast<QTableWidget*>(ui_->keyGroupTab->currentWidget()); const auto& buffered_keys = @@ -214,7 +217,7 @@ KeyIdArgsListPtr KeyList::GetChecked() { return ret; } -KeyIdArgsListPtr KeyList::GetAllPrivateKeys() { +auto KeyList::GetAllPrivateKeys() -> KeyIdArgsListPtr { auto* key_list = qobject_cast<QTableWidget*>(ui_->keyGroupTab->currentWidget()); const auto& buffered_keys = @@ -228,7 +231,7 @@ KeyIdArgsListPtr KeyList::GetAllPrivateKeys() { return ret; } -KeyIdArgsListPtr KeyList::GetPrivateChecked() { +auto KeyList::GetPrivateChecked() -> KeyIdArgsListPtr { auto ret = std::make_unique<KeyIdArgsList>(); if (ui_->keyGroupTab->size().isEmpty()) return ret; @@ -289,7 +292,7 @@ KeyIdArgsListPtr KeyList::GetSelected() { return ret; } -[[maybe_unused]] bool KeyList::ContainsPrivateKeys() { +[[maybe_unused]] auto KeyList::ContainsPrivateKeys() -> bool { if (ui_->keyGroupTab->size().isEmpty()) return false; m_key_list_ = qobject_cast<QTableWidget*>(ui_->keyGroupTab->currentWidget()); @@ -315,7 +318,7 @@ void KeyList::contextMenuEvent(QContextMenuEvent* event) { QString current_tab_widget_obj_name = ui_->keyGroupTab->widget(ui_->keyGroupTab->currentIndex())->objectName(); GF_UI_LOG_DEBUG("current tab widget object name: {}", - current_tab_widget_obj_name.toStdString()); + current_tab_widget_obj_name); if (current_tab_widget_obj_name == "favourite") { QList<QAction*> actions = popup_menu_->actions(); for (QAction* action : actions) { @@ -388,7 +391,7 @@ void KeyList::dropEvent(QDropEvent* event) { QFile file; file.setFileName(tmp.toLocalFile()); if (!file.open(QIODevice::ReadOnly)) { - GF_UI_LOG_ERROR("couldn't open file: {}", tmp.toString().toStdString()); + GF_UI_LOG_ERROR("couldn't open file: {}", tmp.toString()); } QByteArray in_buffer = file.readAll(); this->import_keys(in_buffer); @@ -426,7 +429,7 @@ void KeyList::SetDoubleClickedAction( this->m_action_ = std::move(action); } -QString KeyList::GetSelectedKey() { +auto KeyList::GetSelectedKey() -> QString { if (ui_->keyGroupTab->size().isEmpty()) return {}; const auto& buffered_keys = m_key_tables_[ui_->keyGroupTab->currentIndex()].buffered_keys_; @@ -576,12 +579,16 @@ void KeyTable::Refresh(KeyLinkListPtr m_keys) { while (it != keys->end()) { // filter by search bar's keyword if (ability_ & KeyMenuAbility::SEARCH_BAR && !keyword_.isEmpty()) { - auto name = it->GetName().toLower(); - auto email = it->GetEmail().toLower(); - auto comment = it->GetComment().toLower(); + QStringList infos; + infos << it->GetName().toLower() << it->GetEmail().toLower() + << it->GetComment().toLower() << it->GetFingerprint().toLower(); + + auto subkeys = it->GetSubKeys(); + for (const auto& subkey : *subkeys) { + infos << subkey.GetFingerprint().toLower() << subkey.GetID().toLower(); + } - if (!name.contains(keyword_) && !email.contains(keyword_) && - !comment.contains(keyword_)) { + if (infos.filter(keyword_.toLower()).isEmpty()) { it = keys->erase(it); continue; } @@ -657,22 +664,28 @@ void KeyTable::Refresh(KeyLinkListPtr m_keys) { temp_validity->setTextAlignment(Qt::AlignCenter); key_list_->setItem(row_index, 5, temp_validity); + auto* temp_id = new QTableWidgetItem(it->GetId()); + temp_id->setTextAlignment(Qt::AlignCenter); + key_list_->setItem(row_index, 6, temp_id); + auto* temp_fpr = new QTableWidgetItem(it->GetFingerprint()); temp_fpr->setTextAlignment(Qt::AlignCenter); - key_list_->setItem(row_index, 6, temp_fpr); + key_list_->setItem(row_index, 7, temp_fpr); + + QFont font = tmp2->font(); // strike out expired keys - if (it->IsExpired() || it->IsRevoked()) { - QFont strike = tmp2->font(); - strike.setStrikeOut(true); - tmp0->setFont(strike); - temp_usage->setFont(strike); - temp_fpr->setFont(strike); - temp_validity->setFont(strike); - tmp1->setFont(strike); - tmp2->setFont(strike); - tmp3->setFont(strike); - } + if (it->IsExpired() || it->IsRevoked()) font.setStrikeOut(true); + if (it->IsPrivateKey()) font.setBold(true); + + tmp0->setFont(font); + temp_usage->setFont(font); + temp_fpr->setFont(font); + temp_validity->setFont(font); + tmp1->setFont(font); + tmp2->setFont(font); + tmp3->setFont(font); + temp_id->setFont(font); // move to buffered keys buffered_keys_.emplace_back(std::move(*it)); diff --git a/src/ui/widgets/KeyList.h b/src/ui/widgets/KeyList.h index cfefe043..25180496 100644 --- a/src/ui/widgets/KeyList.h +++ b/src/ui/widgets/KeyList.h @@ -59,6 +59,7 @@ struct KeyListColumn { static constexpr InfoType Usage = 1 << 3; ///< static constexpr InfoType Validity = 1 << 4; ///< static constexpr InfoType FingerPrint = 1 << 5; ///< + static constexpr InfoType KeyID = 1 << 6; ///< }; /** diff --git a/src/ui/widgets/PlainTextEditorPage.cpp b/src/ui/widgets/PlainTextEditorPage.cpp index 7d951006..8f4890cc 100644 --- a/src/ui/widgets/PlainTextEditorPage.cpp +++ b/src/ui/widgets/PlainTextEditorPage.cpp @@ -110,11 +110,11 @@ void PlainTextEditorPage::slot_format_gpg_header() { QString content = ui_->textPage->toPlainText(); // Get positions of the gpg-headers, if they exist - int start = content.indexOf(GpgFrontend::PGP_SIGNED_BEGIN); - int startSig = content.indexOf(GpgFrontend::PGP_SIGNATURE_BEGIN); - int endSig = content.indexOf(GpgFrontend::PGP_SIGNATURE_END); + auto start = content.indexOf(GpgFrontend::PGP_SIGNED_BEGIN); + auto start_sig = content.indexOf(GpgFrontend::PGP_SIGNATURE_BEGIN); + auto end_sig = content.indexOf(GpgFrontend::PGP_SIGNATURE_END); - if (start < 0 || startSig < 0 || endSig < 0 || sign_marked_) { + if (start < 0 || start_sig < 0 || end_sig < 0 || sign_marked_) { return; } @@ -127,8 +127,8 @@ void PlainTextEditorPage::slot_format_gpg_header() { // set font style for the signature QTextCursor cursor(ui_->textPage->document()); - cursor.setPosition(startSig, QTextCursor::MoveAnchor); - cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, endSig); + cursor.setPosition(start_sig, QTextCursor::MoveAnchor); + cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, end_sig); cursor.setCharFormat(signFormat); // set the font style for the header @@ -141,14 +141,13 @@ void PlainTextEditorPage::slot_format_gpg_header() { void PlainTextEditorPage::ReadFile() { read_done_ = false; read_bytes_ = 0; - ui_->textPage->setEnabled(false); - ui_->textPage->setReadOnly(true); - ui_->textPage->blockSignals(true); - ui_->loadingLabel->setHidden(false); - ui_->textPage->document()->blockSignals(true); auto *text_page = this->GetTextPage(); + text_page->setEnabled(false); text_page->setReadOnly(true); + text_page->blockSignals(true); + text_page->document()->blockSignals(true); + ui_->loadingLabel->setHidden(false); const auto target_path = this->full_file_path_; @@ -161,17 +160,17 @@ void PlainTextEditorPage::ReadFile() { connect(this, &PlainTextEditorPage::SignalUIBytesDisplayed, read_task, &FileReadTask::SignalFileBytesReadNext, Qt::QueuedConnection); - connect(read_task, &FileReadTask::SignalTaskShouldEnd, this, - []() { GF_UI_LOG_DEBUG("read thread closed"); }); connect(this, &PlainTextEditorPage::close, read_task, - [=]() { read_task->SignalTaskShouldEnd(0); }); + [=]() { emit read_task->SignalTaskShouldEnd(0); }); connect(read_task, &FileReadTask::SignalFileBytesReadEnd, this, [=]() { // set the UI + GF_UI_LOG_DEBUG("signal file bytes read end rised"); this->read_done_ = true; - this->ui_->textPage->setEnabled(true); + text_page->setEnabled(true); text_page->document()->setModified(false); - this->ui_->textPage->blockSignals(false); - this->ui_->textPage->document()->blockSignals(false); + text_page->blockSignals(false); + text_page->document()->blockSignals(false); + text_page->setReadOnly(false); this->ui_->loadingLabel->setHidden(true); }); @@ -193,10 +192,8 @@ void PlainTextEditorPage::slot_insert_text(QByteArray bytes_data) { // insert the text to the text page this->GetTextPage()->insertPlainText(bytes_data); - - auto text = this->GetTextPage()->toPlainText(); - auto str = tr("%1 character(s)").arg(text.size()); - this->ui_->characterLabel->setText(str); + this->ui_->characterLabel->setText( + tr("%1 character(s)").arg(this->GetTextPage()->toPlainText().size())); QTimer::singleShot(25, this, &PlainTextEditorPage::SignalUIBytesDisplayed); } diff --git a/src/ui/widgets/TextEdit.cpp b/src/ui/widgets/TextEdit.cpp index 59890465..1373c5d9 100644 --- a/src/ui/widgets/TextEdit.cpp +++ b/src/ui/widgets/TextEdit.cpp @@ -33,8 +33,8 @@ #include <vector> #include "core/GpgModel.h" -#include "core/function/CacheManager.h" #include "core/function/GlobalSettingStation.h" +#include "ui/UISignalStation.h" #include "ui/struct/CacheObject.h" namespace GpgFrontend::UI { @@ -120,8 +120,7 @@ void TextEdit::SlotNewFileTab() { void TextEdit::SlotOpenFile(const QString& path) { QFile file(path); - GF_UI_LOG_DEBUG("main window editor is opening file at path: {}", - path.toStdString()); + GF_UI_LOG_DEBUG("main window editor is opening file at path: {}", path); auto result = file.open(QIODevice::ReadOnly | QIODevice::Text); if (result) { auto* page = new PlainTextEditorPage(path); @@ -511,7 +510,7 @@ QHash<int, QString> TextEdit::UnsavedDocuments() const { if (ep != nullptr && ep->ReadDone() && ep->GetTextPage()->document()->isModified()) { QString doc_name = tab_widget_->tabText(i); - GF_UI_LOG_DEBUG("unsaved: {}", doc_name.toStdString()); + GF_UI_LOG_DEBUG("unsaved: {}", doc_name); // remove * before name of modified doc doc_name.remove(0, 2); @@ -601,6 +600,9 @@ void TextEdit::slot_file_page_path_changed(const QString& path) const { m_path = t_path; } tab_widget_->setTabText(index, m_path); + + emit UISignalStation::GetInstance()->SignalMainWindowlUpdateBasicalOperaMenu( + 0); } void TextEdit::slot_save_status_to_cache_for_revovery() { diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index dbee3026..534d71da 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -29,8 +29,12 @@ set(JSON_BuildTests OFF CACHE INTERNAL "") add_subdirectory(spdlog EXCLUDE_FROM_ALL) +if (MINGW) + add_subdirectory(libarchive EXCLUDE_FROM_ALL) +endif() + # not working at macOS -if(NOT APPLE) +if (NOT APPLE) set(MI_SECURE ON) if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") # set(MI_TRACK_VALGRIND ON) @@ -39,7 +43,5 @@ if(NOT APPLE) add_subdirectory(mimalloc EXCLUDE_FROM_ALL) endif() - - set(INSTALL_GTEST OFF) add_subdirectory(googletest EXCLUDE_FROM_ALL)
\ No newline at end of file diff --git a/third_party/libarchive b/third_party/libarchive new file mode 160000 +Subproject 60f086b37fc40952530d385e9f7a05ebec3dd9a diff --git a/third_party/qttranslations b/third_party/qttranslations new file mode 160000 +Subproject c4da2d3ed4511af796f88d0718aa9258908cc82 diff --git a/ui/GeneralSettings.ui b/ui/GeneralSettings.ui index 958b956a..a19626f5 100644 --- a/ui/GeneralSettings.ui +++ b/ui/GeneralSettings.ui @@ -106,6 +106,13 @@ <item row="0" column="0"> <layout class="QVBoxLayout" name="verticalLayout_7"> <item> + <widget class="QPushButton" name="revealInFileExplorerButton"> + <property name="text"> + <string>Reveal in File Explorer</string> + </property> + </widget> + </item> + <item> <widget class="QPushButton" name="clearAllLogFilesButton"> <property name="text"> <string>Clear All Log Files</string> diff --git a/ui/GnuPGControllerDialog.ui b/ui/GnuPGControllerDialog.ui index 968aba70..e79fc041 100644 --- a/ui/GnuPGControllerDialog.ui +++ b/ui/GnuPGControllerDialog.ui @@ -27,7 +27,7 @@ <item> <widget class="QCheckBox" name="asciiModeCheckBox"> <property name="text"> - <string>No ASCII Mode</string> + <string>Use Binary Mode for File Operations</string> </property> </widget> </item> @@ -38,6 +38,20 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="gpgmeDebugLogCheckBox"> + <property name="text"> + <string>Enable GpgME Debug Log</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="restartGpgAgentOnStartCheckBox"> + <property name="text"> + <string>Restart Gpg Agent on start</string> + </property> + </widget> + </item> </layout> </item> </layout> diff --git a/ui/InfoBoard.ui b/ui/InfoBoard.ui index 9e50505d..564ab52a 100644 --- a/ui/InfoBoard.ui +++ b/ui/InfoBoard.ui @@ -14,15 +14,48 @@ <string>Form</string> </property> <layout class="QGridLayout" name="gridLayout"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> <item row="0" column="0"> <layout class="QVBoxLayout" name="verticalLayout"> <item> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="QTextEdit" name="infoBoard"> - <property name="readOnly"> - <bool>true</bool> - </property> + <widget class="QStackedWidget" name="stackedWidget"> + <widget class="QWidget" name="page"> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QTextEdit" name="infoBoard"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="page_2"/> </widget> </item> </layout> |