diff options
author | saturneric <[email protected]> | 2025-04-17 17:44:04 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2025-04-17 17:44:04 +0000 |
commit | 6f504e4f915f928e42b8574ca3f93eea5038984b (patch) | |
tree | d5542b5cfad3d597038f7621e9975447efd7d9e6 | |
parent | chore: update and check translations (diff) | |
download | GpgFrontend-6f504e4f915f928e42b8574ca3f93eea5038984b.tar.gz GpgFrontend-6f504e4f915f928e42b8574ca3f93eea5038984b.zip |
feat: check scd version
-rw-r--r-- | TRANSLATORS | 4 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.de_DE.ts | 213 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.en_US.ts | 213 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.fr_FR.ts | 213 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.it_IT.ts | 213 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.zh_CN.ts | 213 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.zh_TW.ts | 213 | ||||
-rw-r--r-- | src/core/function/gpg/GpgAssuanHelper.cpp | 34 | ||||
-rw-r--r-- | src/core/function/gpg/GpgAssuanHelper.h | 10 | ||||
-rw-r--r-- | src/core/function/gpg/GpgSmartCardManager.cpp | 12 | ||||
-rw-r--r-- | src/core/function/gpg/GpgSmartCardManager.h | 8 | ||||
-rw-r--r-- | src/ui/dialog/controller/SmartCardControllerDialog.cpp | 15 | ||||
-rw-r--r-- | src/ui/dialog/controller/SmartCardControllerDialog.h | 1 |
13 files changed, 734 insertions, 628 deletions
diff --git a/TRANSLATORS b/TRANSLATORS index d3646cde..ce53a633 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -5,7 +5,5 @@ Zi Jiaxu (zh_CN) Oliver Leitner (de_DE) James (zh_TW) Salvatore Scirè (it_IT) -Google Translation Machine - -Reviewers: Saturneric (zh_CN, de_DE) +Google Translation Machine diff --git a/resource/lfs/locale/ts/GpgFrontend.de_DE.ts b/resource/lfs/locale/ts/GpgFrontend.de_DE.ts index 813bfd0d..973d3fbf 100644 --- a/resource/lfs/locale/ts/GpgFrontend.de_DE.ts +++ b/resource/lfs/locale/ts/GpgFrontend.de_DE.ts @@ -5934,460 +5934,465 @@ Wenn das Problem weiterhin besteht, wenden Sie sich an den technischen Support o <context> <name>GpgFrontend::UI::SmartCardControllerDialog</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="48"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="50"/> <source>Smart Card(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="49"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> <source>Key Stub(s) in Key Database(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> <source>Change Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="52"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> <source>Change Language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> <source>Change Gender</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> <source>Change Login Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> <source>Change Public Key URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> <source>Change PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> <source>Change Admin PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> <source>Change Reset Code</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> <source>Fetch</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> <source>Restart All Gpg-Agents</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="63"/> <source>Generate Card Keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> <source>Refresh</source> <translation type="unfinished">Aktualisierung</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="66"/> <source>Operations</source> <translation type="unfinished">Aktivieren</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="115"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="117"/> <source>Successful Operation</source> <translation type="unfinished">Erfolgreiche Durchführung</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="116"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="118"/> <source>Restart all the GnuPG's components successfully</source> <translation type="unfinished">Alle Komponenten von GnuPG erfolgreich neu gestartet</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="119"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="121"/> <source>Failed Operation</source> <translation type="unfinished">Fehlgeschlagener Vorgang</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="122"/> <source>Failed to restart all or one of the GnuPG's component(s)</source> <translation type="unfinished">Neustart aller oder einer GnuPG-Komponente(n) fehlgeschlagen</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="135"/> <source>Generate card key failed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="151"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="153"/> <source>Smart Card Controller</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="205"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> <source>OpenPGP Card Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> <source>Basic Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="208"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="210"/> <source>Reader</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> <source>Serial Number</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> <source>Card Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> <source>Card Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> <source>App Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> <source>App Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> <source>Manufacturer ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> <source>Manufacturer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> <source>Card Holder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> <source>Language</source> <translation type="unfinished">Sprache</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="229"/> <source>Sex</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="232"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> <source>Signature Counter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> <source>CHV1 Cached</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="238"/> <source>CHV Max Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="242"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="244"/> <source>CHV Retry Left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="248"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="250"/> <source>KDF Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="264"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <source>UIF</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="265"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> <source>Sign</source> <translation type="unfinished">Unterschreiben</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Disabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> <source>Encrypt</source> <translation type="unfinished">Verschlüsseln</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="271"/> <source>Authenticate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="319"/> <source>Status Indicator</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Male</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Female</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="481"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="494"/> <source>Select sex to store in '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="496"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="509"/> <source>Enter new value for attribute '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="231"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="233"/> <source>Status</source> <translation type="unfinished">Status</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="251"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="253"/> <source>Not enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="256"/> <source>Enabled (no protection)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="259"/> <source>Enabled with salt protection</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="260"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="262"/> <source>Unknown</source> <translation type="unfinished">Unbekannt</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="274"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="276"/> <source>Key Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="278"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="280"/> <source>No key information available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>No.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>Fingerprint</source> <translation type="unfinished">Fingerabdruck</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Grip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Type</source> <translation type="unfinished">Typ</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Algorithm</source> <translation type="unfinished">Algorithmus</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Usage</source> <translation type="unfinished">Verwendungszweck</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Curve</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="302"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> <source>Extended Capabilities</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> <source>Key Info (ki): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>Yes</source> <translation type="unfinished">Ja</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>No</source> <translation type="unfinished">Nein</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="307"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="309"/> <source>Additional Auth (aac): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="311"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="313"/> <source>Biometric Terminal (bt): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>KDF Supported: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="322"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="324"/> <source>Additional Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="369"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="371"/> <source>No OpenPGP Smart Card Found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="372"/> <source>No OpenPGP-compatible smart card has been detected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="374"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="376"/> <source>An OpenPGP Smart Card is a physical device that securely stores your private cryptographic keys and can be used for digital signing, encryption, and authentication. Popular examples include YubiKey, Nitrokey, and other GnuPG-compatible tokens.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="382"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="384"/> <source>Make sure your card is inserted and properly recognized by the system. You can also try reconnecting the card or restarting the application.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="387"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="390"/> + <source>Note: Smart card support of GpgFrontend requires GnuPG version 2.3.0 or later.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="394"/> <source>Read the GnuPG Smart Card HOWTO: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="480"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="495"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="493"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="508"/> <source>Modify Card Attribute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="511"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="524"/> <source>Failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="512"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="525"/> <source>Failed to set attribute '%1'. Reason: %2. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="515"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="528"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="553"/> <source>Success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="516"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> <source>Attribute operation completed successfully.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="527"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> <source>Failed to change Admin PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="542"/> <source>Failed to set the Reset Code.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="531"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="544"/> <source>Failed to change PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="534"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="547"/> <source>Reason: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="132"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="536"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="549"/> <source>Error</source> <translation type="unfinished">Fehler</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="541"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="554"/> <source>PIN operation completed successfully.</source> <translation type="unfinished"></translation> </message> @@ -7171,32 +7176,32 @@ Wenn das Problem weiterhin besteht, wenden Sie sich an den technischen Support o <context> <name>QObject</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="446"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="459"/> <source>Cardholder's Surname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="447"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="460"/> <source>Please enter your surname (e.g., Lee):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="452"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="465"/> <source>Cardholder's Given Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="453"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="466"/> <source>Please enter your given name (e.g., Chris):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="462"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="475"/> <source>Too Long</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="463"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="476"/> <source>Combined name too long (max 39 characters).</source> <translation type="unfinished"></translation> </message> diff --git a/resource/lfs/locale/ts/GpgFrontend.en_US.ts b/resource/lfs/locale/ts/GpgFrontend.en_US.ts index 5bb0aab8..fca628e4 100644 --- a/resource/lfs/locale/ts/GpgFrontend.en_US.ts +++ b/resource/lfs/locale/ts/GpgFrontend.en_US.ts @@ -5874,460 +5874,465 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>GpgFrontend::UI::SmartCardControllerDialog</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="48"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="50"/> <source>Smart Card(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="49"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> <source>Key Stub(s) in Key Database(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> <source>Change Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="52"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> <source>Change Language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> <source>Change Gender</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> <source>Change Login Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> <source>Change Public Key URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> <source>Change PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> <source>Change Admin PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> <source>Change Reset Code</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> <source>Fetch</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> <source>Restart All Gpg-Agents</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="63"/> <source>Generate Card Keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="66"/> <source>Operations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="115"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="117"/> <source>Successful Operation</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="116"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="118"/> <source>Restart all the GnuPG's components successfully</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="119"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="121"/> <source>Failed Operation</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="122"/> <source>Failed to restart all or one of the GnuPG's component(s)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="135"/> <source>Generate card key failed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="151"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="153"/> <source>Smart Card Controller</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="205"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> <source>OpenPGP Card Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> <source>Basic Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="208"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="210"/> <source>Reader</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> <source>Serial Number</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> <source>Card Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> <source>Card Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> <source>App Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> <source>App Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> <source>Manufacturer ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> <source>Manufacturer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> <source>Card Holder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> <source>Language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="229"/> <source>Sex</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="232"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> <source>Signature Counter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> <source>CHV1 Cached</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="238"/> <source>CHV Max Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="242"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="244"/> <source>CHV Retry Left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="248"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="250"/> <source>KDF Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="264"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <source>UIF</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="265"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> <source>Sign</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Disabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> <source>Encrypt</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="271"/> <source>Authenticate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="319"/> <source>Status Indicator</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Male</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Female</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="481"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="494"/> <source>Select sex to store in '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="496"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="509"/> <source>Enter new value for attribute '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="231"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="233"/> <source>Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="251"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="253"/> <source>Not enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="256"/> <source>Enabled (no protection)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="259"/> <source>Enabled with salt protection</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="260"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="262"/> <source>Unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="274"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="276"/> <source>Key Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="278"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="280"/> <source>No key information available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>No.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>Fingerprint</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Grip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Algorithm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Usage</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Curve</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="302"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> <source>Extended Capabilities</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> <source>Key Info (ki): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>Yes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>No</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="307"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="309"/> <source>Additional Auth (aac): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="311"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="313"/> <source>Biometric Terminal (bt): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>KDF Supported: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="322"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="324"/> <source>Additional Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="369"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="371"/> <source>No OpenPGP Smart Card Found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="372"/> <source>No OpenPGP-compatible smart card has been detected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="374"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="376"/> <source>An OpenPGP Smart Card is a physical device that securely stores your private cryptographic keys and can be used for digital signing, encryption, and authentication. Popular examples include YubiKey, Nitrokey, and other GnuPG-compatible tokens.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="382"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="384"/> <source>Make sure your card is inserted and properly recognized by the system. You can also try reconnecting the card or restarting the application.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="387"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="390"/> + <source>Note: Smart card support of GpgFrontend requires GnuPG version 2.3.0 or later.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="394"/> <source>Read the GnuPG Smart Card HOWTO: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="480"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="495"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="493"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="508"/> <source>Modify Card Attribute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="511"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="524"/> <source>Failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="512"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="525"/> <source>Failed to set attribute '%1'. Reason: %2. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="515"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="528"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="553"/> <source>Success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="516"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> <source>Attribute operation completed successfully.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="527"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> <source>Failed to change Admin PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="542"/> <source>Failed to set the Reset Code.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="531"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="544"/> <source>Failed to change PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="534"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="547"/> <source>Reason: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="132"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="536"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="549"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="541"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="554"/> <source>PIN operation completed successfully.</source> <translation type="unfinished"></translation> </message> @@ -7109,32 +7114,32 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>QObject</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="446"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="459"/> <source>Cardholder's Surname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="447"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="460"/> <source>Please enter your surname (e.g., Lee):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="452"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="465"/> <source>Cardholder's Given Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="453"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="466"/> <source>Please enter your given name (e.g., Chris):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="462"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="475"/> <source>Too Long</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="463"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="476"/> <source>Combined name too long (max 39 characters).</source> <translation type="unfinished"></translation> </message> diff --git a/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts b/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts index 20a458bb..6606f47b 100644 --- a/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts +++ b/resource/lfs/locale/ts/GpgFrontend.fr_FR.ts @@ -5878,460 +5878,465 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>GpgFrontend::UI::SmartCardControllerDialog</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="48"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="50"/> <source>Smart Card(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="49"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> <source>Key Stub(s) in Key Database(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> <source>Change Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="52"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> <source>Change Language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> <source>Change Gender</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> <source>Change Login Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> <source>Change Public Key URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> <source>Change PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> <source>Change Admin PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> <source>Change Reset Code</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> <source>Fetch</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> <source>Restart All Gpg-Agents</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="63"/> <source>Generate Card Keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> <source>Refresh</source> <translation type="unfinished">Rafraîchir</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="66"/> <source>Operations</source> <translation type="unfinished">Opérations</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="115"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="117"/> <source>Successful Operation</source> <translation type="unfinished">Opération réussie</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="116"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="118"/> <source>Restart all the GnuPG's components successfully</source> <translation type="unfinished">Redémarrez tous les composants de GnuPG avec succès</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="119"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="121"/> <source>Failed Operation</source> <translation type="unfinished">Échec de l'opération</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="122"/> <source>Failed to restart all or one of the GnuPG's component(s)</source> <translation type="unfinished">Échec du redémarrage de tout ou partie des composants de GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="135"/> <source>Generate card key failed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="151"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="153"/> <source>Smart Card Controller</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="205"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> <source>OpenPGP Card Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> <source>Basic Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="208"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="210"/> <source>Reader</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> <source>Serial Number</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> <source>Card Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> <source>Card Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> <source>App Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> <source>App Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> <source>Manufacturer ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> <source>Manufacturer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> <source>Card Holder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> <source>Language</source> <translation type="unfinished">Langue</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="229"/> <source>Sex</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="232"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> <source>Signature Counter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> <source>CHV1 Cached</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="238"/> <source>CHV Max Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="242"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="244"/> <source>CHV Retry Left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="248"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="250"/> <source>KDF Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="264"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <source>UIF</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="265"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> <source>Sign</source> <translation type="unfinished">Signer</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Disabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> <source>Encrypt</source> <translation type="unfinished">Chiffrer</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="271"/> <source>Authenticate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="319"/> <source>Status Indicator</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Male</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Female</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="481"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="494"/> <source>Select sex to store in '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="496"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="509"/> <source>Enter new value for attribute '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="231"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="233"/> <source>Status</source> <translation type="unfinished">Statut</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="251"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="253"/> <source>Not enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="256"/> <source>Enabled (no protection)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="259"/> <source>Enabled with salt protection</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="260"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="262"/> <source>Unknown</source> <translation type="unfinished">Inconnu</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="274"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="276"/> <source>Key Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="278"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="280"/> <source>No key information available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>No.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>Fingerprint</source> <translation type="unfinished">Empreinte digitale</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Grip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Type</source> <translation type="unfinished">Taper</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Algorithm</source> <translation type="unfinished">Algorithme</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Usage</source> <translation type="unfinished">Usage</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Curve</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="302"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> <source>Extended Capabilities</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> <source>Key Info (ki): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>Yes</source> <translation type="unfinished">Oui</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>No</source> <translation type="unfinished">Non</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="307"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="309"/> <source>Additional Auth (aac): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="311"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="313"/> <source>Biometric Terminal (bt): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>KDF Supported: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="322"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="324"/> <source>Additional Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="369"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="371"/> <source>No OpenPGP Smart Card Found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="372"/> <source>No OpenPGP-compatible smart card has been detected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="374"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="376"/> <source>An OpenPGP Smart Card is a physical device that securely stores your private cryptographic keys and can be used for digital signing, encryption, and authentication. Popular examples include YubiKey, Nitrokey, and other GnuPG-compatible tokens.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="382"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="384"/> <source>Make sure your card is inserted and properly recognized by the system. You can also try reconnecting the card or restarting the application.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="387"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="390"/> + <source>Note: Smart card support of GpgFrontend requires GnuPG version 2.3.0 or later.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="394"/> <source>Read the GnuPG Smart Card HOWTO: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="480"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="495"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="493"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="508"/> <source>Modify Card Attribute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="511"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="524"/> <source>Failed</source> <translation type="unfinished">Échoué</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="512"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="525"/> <source>Failed to set attribute '%1'. Reason: %2. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="515"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="528"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="553"/> <source>Success</source> <translation type="unfinished">Succès</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="516"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> <source>Attribute operation completed successfully.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="527"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> <source>Failed to change Admin PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="542"/> <source>Failed to set the Reset Code.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="531"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="544"/> <source>Failed to change PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="534"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="547"/> <source>Reason: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="132"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="536"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="549"/> <source>Error</source> <translation type="unfinished">Erreur</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="541"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="554"/> <source>PIN operation completed successfully.</source> <translation type="unfinished"></translation> </message> @@ -7115,32 +7120,32 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>QObject</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="446"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="459"/> <source>Cardholder's Surname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="447"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="460"/> <source>Please enter your surname (e.g., Lee):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="452"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="465"/> <source>Cardholder's Given Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="453"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="466"/> <source>Please enter your given name (e.g., Chris):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="462"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="475"/> <source>Too Long</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="463"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="476"/> <source>Combined name too long (max 39 characters).</source> <translation type="unfinished"></translation> </message> diff --git a/resource/lfs/locale/ts/GpgFrontend.it_IT.ts b/resource/lfs/locale/ts/GpgFrontend.it_IT.ts index 12258f65..5de3c858 100644 --- a/resource/lfs/locale/ts/GpgFrontend.it_IT.ts +++ b/resource/lfs/locale/ts/GpgFrontend.it_IT.ts @@ -5942,460 +5942,465 @@ Se il problema persiste, prendere in considerazione la possibilità di richieder <context> <name>GpgFrontend::UI::SmartCardControllerDialog</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="48"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="50"/> <source>Smart Card(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="49"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> <source>Key Stub(s) in Key Database(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> <source>Change Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="52"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> <source>Change Language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> <source>Change Gender</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> <source>Change Login Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> <source>Change Public Key URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> <source>Change PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> <source>Change Admin PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> <source>Change Reset Code</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> <source>Fetch</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> <source>Restart All Gpg-Agents</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="63"/> <source>Generate Card Keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> <source>Refresh</source> <translation type="unfinished">Ricaricare</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="66"/> <source>Operations</source> <translation type="unfinished">Operazioni</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="115"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="117"/> <source>Successful Operation</source> <translation type="unfinished">Operazione riuscita</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="116"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="118"/> <source>Restart all the GnuPG's components successfully</source> <translation type="unfinished">Riavvia correttamente tutti i componenti di GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="119"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="121"/> <source>Failed Operation</source> <translation type="unfinished">Operazione fallita</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="122"/> <source>Failed to restart all or one of the GnuPG's component(s)</source> <translation type="unfinished">Impossibile riavviare tutti o uno dei componenti di GnuPG</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="135"/> <source>Generate card key failed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="151"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="153"/> <source>Smart Card Controller</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="205"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> <source>OpenPGP Card Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> <source>Basic Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="208"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="210"/> <source>Reader</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> <source>Serial Number</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> <source>Card Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> <source>Card Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> <source>App Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> <source>App Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> <source>Manufacturer ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> <source>Manufacturer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> <source>Card Holder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> <source>Language</source> <translation type="unfinished">Lingua</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="229"/> <source>Sex</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="232"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> <source>Signature Counter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> <source>CHV1 Cached</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="238"/> <source>CHV Max Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="242"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="244"/> <source>CHV Retry Left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="248"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="250"/> <source>KDF Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="264"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <source>UIF</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="265"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> <source>Sign</source> <translation type="unfinished">Firma</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Disabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> <source>Encrypt</source> <translation type="unfinished">Cifra</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="271"/> <source>Authenticate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="319"/> <source>Status Indicator</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Male</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Female</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="481"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="494"/> <source>Select sex to store in '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="496"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="509"/> <source>Enter new value for attribute '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="231"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="233"/> <source>Status</source> <translation type="unfinished">Stato</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="251"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="253"/> <source>Not enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="256"/> <source>Enabled (no protection)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="259"/> <source>Enabled with salt protection</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="260"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="262"/> <source>Unknown</source> <translation type="unfinished">Sconosciuto</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="274"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="276"/> <source>Key Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="278"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="280"/> <source>No key information available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>No.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>Fingerprint</source> <translation type="unfinished">Impronta digitale</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Grip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Type</source> <translation type="unfinished">Tipo</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Algorithm</source> <translation type="unfinished">Algoritmo</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Usage</source> <translation type="unfinished">Utilizzo</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Curve</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="302"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> <source>Extended Capabilities</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> <source>Key Info (ki): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>Yes</source> <translation type="unfinished">Sì</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>No</source> <translation type="unfinished">No</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="307"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="309"/> <source>Additional Auth (aac): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="311"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="313"/> <source>Biometric Terminal (bt): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>KDF Supported: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="322"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="324"/> <source>Additional Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="369"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="371"/> <source>No OpenPGP Smart Card Found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="372"/> <source>No OpenPGP-compatible smart card has been detected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="374"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="376"/> <source>An OpenPGP Smart Card is a physical device that securely stores your private cryptographic keys and can be used for digital signing, encryption, and authentication. Popular examples include YubiKey, Nitrokey, and other GnuPG-compatible tokens.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="382"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="384"/> <source>Make sure your card is inserted and properly recognized by the system. You can also try reconnecting the card or restarting the application.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="387"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="390"/> + <source>Note: Smart card support of GpgFrontend requires GnuPG version 2.3.0 or later.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="394"/> <source>Read the GnuPG Smart Card HOWTO: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="480"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="495"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="493"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="508"/> <source>Modify Card Attribute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="511"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="524"/> <source>Failed</source> <translation type="unfinished">Fallito</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="512"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="525"/> <source>Failed to set attribute '%1'. Reason: %2. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="515"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="528"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="553"/> <source>Success</source> <translation type="unfinished">Successo</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="516"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> <source>Attribute operation completed successfully.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="527"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> <source>Failed to change Admin PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="542"/> <source>Failed to set the Reset Code.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="531"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="544"/> <source>Failed to change PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="534"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="547"/> <source>Reason: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="132"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="536"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="549"/> <source>Error</source> <translation type="unfinished">Errore</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="541"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="554"/> <source>PIN operation completed successfully.</source> <translation type="unfinished"></translation> </message> @@ -7179,32 +7184,32 @@ Se il problema persiste, prendere in considerazione la possibilità di richieder <context> <name>QObject</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="446"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="459"/> <source>Cardholder's Surname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="447"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="460"/> <source>Please enter your surname (e.g., Lee):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="452"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="465"/> <source>Cardholder's Given Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="453"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="466"/> <source>Please enter your given name (e.g., Chris):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="462"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="475"/> <source>Too Long</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="463"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="476"/> <source>Combined name too long (max 39 characters).</source> <translation type="unfinished"></translation> </message> diff --git a/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts b/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts index 8d69b915..02366ed3 100644 --- a/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts +++ b/resource/lfs/locale/ts/GpgFrontend.zh_CN.ts @@ -5939,460 +5939,465 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>GpgFrontend::UI::SmartCardControllerDialog</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="48"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="50"/> <source>Smart Card(s):</source> <translation>智能卡: </translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="49"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> <source>Key Stub(s) in Key Database(s):</source> <translation>在密钥数据库中的密钥桩: </translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> <source>Change Name</source> <translation>修改姓名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="52"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> <source>Change Language</source> <translation>修改语言</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> <source>Change Gender</source> <translation>修改性别</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> <source>Change Login Data</source> <translation>修改登录信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> <source>Change Public Key URL</source> <translation>修改公钥链接</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> <source>Change PIN</source> <translation>修改PIN</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> <source>Change Admin PIN</source> <translation>修改管理员PIN</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> <source>Change Reset Code</source> <translation>修改重置代码</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> <source>Fetch</source> <translation>同步密钥信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> <source>Restart All Gpg-Agents</source> <translation>重启所有Gpg-Agents</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="63"/> <source>Generate Card Keys</source> <translation>生成智能卡密钥</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> <source>Refresh</source> <translation>刷新</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="66"/> <source>Operations</source> <translation>操作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="115"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="117"/> <source>Successful Operation</source> <translation>操作成功</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="116"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="118"/> <source>Restart all the GnuPG's components successfully</source> <translation>成功重启所有 GnuPG 组件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="119"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="121"/> <source>Failed Operation</source> <translation>操作失败</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="122"/> <source>Failed to restart all or one of the GnuPG's component(s)</source> <translation>无法重新启动所有或其中一个 GnuPG 组件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="135"/> <source>Generate card key failed.</source> <translation>生成智能卡密钥失败。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="151"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="153"/> <source>Smart Card Controller</source> <translation>智能卡控制器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="205"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> <source>OpenPGP Card Information</source> <translation>OpenPGP智能卡信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> <source>Basic Information</source> <translation>基本信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="208"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="210"/> <source>Reader</source> <translation>读卡器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> <source>Serial Number</source> <translation>序列号</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> <source>Card Type</source> <translation>卡片类型</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> <source>Card Version</source> <translation>卡片版本</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> <source>App Type</source> <translation>应用类型</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> <source>App Version</source> <translation>应用版本</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> <source>Manufacturer ID</source> <translation>制造商ID</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> <source>Manufacturer</source> <translation>制造商</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> <source>Card Holder</source> <translation>持卡人</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> <source>Language</source> <translation>语言</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="229"/> <source>Sex</source> <translation>性别</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="232"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> <source>Signature Counter</source> <translation>签名计数器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> <source>CHV1 Cached</source> <translation>已缓存普通PIN</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="238"/> <source>CHV Max Length</source> <translation>PIN最大长度</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="242"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="244"/> <source>CHV Retry Left</source> <translation>PIN剩余重试次数</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="248"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="250"/> <source>KDF Status</source> <translation>密钥派生函数状态</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="264"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <source>UIF</source> <translation>用户交互标志</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="265"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> <source>Sign</source> <translation>签名</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Enabled</source> <translation>已启用</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Disabled</source> <translation>已禁用</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> <source>Encrypt</source> <translation>加密</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="271"/> <source>Authenticate</source> <translation>验证</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="319"/> <source>Status Indicator</source> <translation>状态指示器</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Male</source> <translation>男</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Female</source> <translation>女</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="481"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="494"/> <source>Select sex to store in '%1'</source> <translation>选择存储在 '%1' 中的性别</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="496"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="509"/> <source>Enter new value for attribute '%1'</source> <translation>请输入 '%1' 的新值</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="231"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="233"/> <source>Status</source> <translation>状态</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="251"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="253"/> <source>Not enabled</source> <translation>未启用</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="256"/> <source>Enabled (no protection)</source> <translation>启用 (无保护)</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="259"/> <source>Enabled with salt protection</source> <translation>启用并开启加盐保护</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="260"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="262"/> <source>Unknown</source> <translation>未知</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="274"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="276"/> <source>Key Information</source> <translation>密钥信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="278"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="280"/> <source>No key information available.</source> <translation>未发现可用密钥信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>No.</source> <translation>序号</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>Fingerprint</source> <translation>指纹</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Created</source> <translation>已生成</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Grip</source> <translation>Grip</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Type</source> <translation>类型</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Algorithm</source> <translation>算法</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Usage</source> <translation>用法</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Curve</source> <translation>密钥曲线</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="302"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> <source>Extended Capabilities</source> <translation>扩展能力</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> <source>Key Info (ki): %1</source> <translation>密钥信息 (ki): %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>Yes</source> <translation>是</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>No</source> <translation>否</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="307"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="309"/> <source>Additional Auth (aac): %1</source> <translation>额外验证 (aac): %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="311"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="313"/> <source>Biometric Terminal (bt): %1</source> <translation>生物终端: %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>KDF Supported: %1</source> <translation>密钥派生函数支持: %1</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="322"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="324"/> <source>Additional Info</source> <translation>额外信息</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="369"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="371"/> <source>No OpenPGP Smart Card Found</source> <translation>未发现OpenPGP智能卡</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="372"/> <source>No OpenPGP-compatible smart card has been detected.</source> <translation>未检测到兼容 OpenPGP 的智能卡。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="374"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="376"/> <source>An OpenPGP Smart Card is a physical device that securely stores your private cryptographic keys and can be used for digital signing, encryption, and authentication. Popular examples include YubiKey, Nitrokey, and other GnuPG-compatible tokens.</source> <translation>OpenPGP 智能卡是一种物理设备,可以安全地存储你的私人加密密钥,并可用于数字签名、加密和身份验证。流行的例子包括 YubiKey、Nitrokey 和其他 GnuPG 兼容令牌。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="382"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="384"/> <source>Make sure your card is inserted and properly recognized by the system. You can also try reconnecting the card or restarting the application.</source> <translation>确保您的卡已插入并被系统正确识别。您也可以尝试重新连接卡或重启应用程序。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="387"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="390"/> + <source>Note: Smart card support of GpgFrontend requires GnuPG version 2.3.0 or later.</source> + <translation>注意:GpgFrontend 的智能卡支持需要 GnuPG 2.3.0 或更高版本。</translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="394"/> <source>Read the GnuPG Smart Card HOWTO: </source> <translation>阅读 GnuPG 智能卡帮助文档</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="480"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="495"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="493"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="508"/> <source>Modify Card Attribute</source> <translation>修改智能卡属性</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="511"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="524"/> <source>Failed</source> <translation>失败</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="512"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="525"/> <source>Failed to set attribute '%1'. Reason: %2. </source> <translation>修改属性 '%1' 失败。 原因: %2。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="515"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="528"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="553"/> <source>Success</source> <translation>成功</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="516"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> <source>Attribute operation completed successfully.</source> <translation>属性操作成功完成。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="527"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> <source>Failed to change Admin PIN.</source> <translation>修改管理员PIN失败。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="542"/> <source>Failed to set the Reset Code.</source> <translation>修改重置代码失败。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="531"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="544"/> <source>Failed to change PIN.</source> <translation>修改PIN失败。</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="534"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="547"/> <source>Reason: </source> <translation>原因: </translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="132"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="536"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="549"/> <source>Error</source> <translation>错误</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="541"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="554"/> <source>PIN operation completed successfully.</source> <translation>PIN操作成功完成。</translation> </message> @@ -7176,32 +7181,32 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>QObject</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="446"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="459"/> <source>Cardholder's Surname</source> <translation>持卡人的姓氏</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="447"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="460"/> <source>Please enter your surname (e.g., Lee):</source> <translation>请输入您的姓氏 (如: 李): </translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="452"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="465"/> <source>Cardholder's Given Name</source> <translation>持卡人的名字</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="453"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="466"/> <source>Please enter your given name (e.g., Chris):</source> <translation>请输入您的名字 (如: 四): </translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="462"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="475"/> <source>Too Long</source> <translation>太长</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="463"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="476"/> <source>Combined name too long (max 39 characters).</source> <translation>姓名合并后太长 (最长39个字符)。</translation> </message> diff --git a/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts b/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts index 9a8ce2a4..1d1d0245 100644 --- a/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts +++ b/resource/lfs/locale/ts/GpgFrontend.zh_TW.ts @@ -5874,460 +5874,465 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>GpgFrontend::UI::SmartCardControllerDialog</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="48"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="50"/> <source>Smart Card(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="49"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> <source>Key Stub(s) in Key Database(s):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="51"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> <source>Change Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="52"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> <source>Change Language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="53"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> <source>Change Gender</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="54"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> <source>Change Login Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="55"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> <source>Change Public Key URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="56"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> <source>Change PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="57"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> <source>Change Admin PIN</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="58"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> <source>Change Reset Code</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="59"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> <source>Fetch</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="60"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> <source>Restart All Gpg-Agents</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="61"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="63"/> <source>Generate Card Keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="62"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> <source>Refresh</source> <translation type="unfinished">刷新</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="64"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="66"/> <source>Operations</source> <translation type="unfinished">運作中</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="115"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="117"/> <source>Successful Operation</source> <translation type="unfinished">成功運作</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="116"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="118"/> <source>Restart all the GnuPG's components successfully</source> <translation type="unfinished">成功重啟所有 GnuPG 組件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="119"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="121"/> <source>Failed Operation</source> <translation type="unfinished">操作失敗</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="120"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="122"/> <source>Failed to restart all or one of the GnuPG's component(s)</source> <translation type="unfinished">無法重新啟動所有或其中一個 GnuPG 組件</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="133"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="135"/> <source>Generate card key failed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="151"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="153"/> <source>Smart Card Controller</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="205"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> <source>OpenPGP Card Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="207"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> <source>Basic Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="208"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="210"/> <source>Reader</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="209"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> <source>Serial Number</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="211"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> <source>Card Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="213"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> <source>Card Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="215"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> <source>App Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="217"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> <source>App Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="219"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> <source>Manufacturer ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="221"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> <source>Manufacturer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="223"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> <source>Card Holder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="225"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> <source>Language</source> <translation type="unfinished">語</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="227"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="229"/> <source>Sex</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="232"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> <source>Signature Counter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="234"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> <source>CHV1 Cached</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="236"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="238"/> <source>CHV Max Length</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="242"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="244"/> <source>CHV Retry Left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="248"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="250"/> <source>KDF Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="264"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <source>UIF</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="265"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> <source>Sign</source> <translation type="unfinished">標誌</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="266"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="268"/> <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="270"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="272"/> <source>Disabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="267"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> <source>Encrypt</source> <translation type="unfinished">加密</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="269"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="271"/> <source>Authenticate</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="319"/> <source>Status Indicator</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Male</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="477"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="490"/> <source>Female</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="481"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="494"/> <source>Select sex to store in '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="496"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="509"/> <source>Enter new value for attribute '%1'</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="231"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="233"/> <source>Status</source> <translation type="unfinished">狀態</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="251"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="253"/> <source>Not enabled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="254"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="256"/> <source>Enabled (no protection)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="257"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="259"/> <source>Enabled with salt protection</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="260"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="262"/> <source>Unknown</source> <translation type="unfinished">未知</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="274"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="276"/> <source>Key Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="278"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="280"/> <source>No key information available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>No.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="281"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> <source>Fingerprint</source> <translation type="unfinished">指紋</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="282"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> <source>Grip</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Type</source> <translation type="unfinished">類型</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="283"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="285"/> <source>Algorithm</source> <translation type="unfinished">算法</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Usage</source> <translation type="unfinished">用法</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="284"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="286"/> <source>Curve</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="302"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> <source>Extended Capabilities</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> <source>Key Info (ki): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>Yes</source> <translation type="unfinished">是的</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="304"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="308"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="312"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="306"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="310"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="314"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>No</source> <translation type="unfinished">不</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="307"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="309"/> <source>Additional Auth (aac): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="311"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="313"/> <source>Biometric Terminal (bt): %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="315"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="317"/> <source>KDF Supported: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="322"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="324"/> <source>Additional Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="369"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="371"/> <source>No OpenPGP Smart Card Found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="370"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="372"/> <source>No OpenPGP-compatible smart card has been detected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="374"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="376"/> <source>An OpenPGP Smart Card is a physical device that securely stores your private cryptographic keys and can be used for digital signing, encryption, and authentication. Popular examples include YubiKey, Nitrokey, and other GnuPG-compatible tokens.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="382"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="384"/> <source>Make sure your card is inserted and properly recognized by the system. You can also try reconnecting the card or restarting the application.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="387"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="390"/> + <source>Note: Smart card support of GpgFrontend requires GnuPG version 2.3.0 or later.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="394"/> <source>Read the GnuPG Smart Card HOWTO: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="480"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="495"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="493"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="508"/> <source>Modify Card Attribute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="511"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="524"/> <source>Failed</source> <translation type="unfinished">失敗</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="512"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="525"/> <source>Failed to set attribute '%1'. Reason: %2. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="515"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="528"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="553"/> <source>Success</source> <translation type="unfinished">成功</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="516"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> <source>Attribute operation completed successfully.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="527"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="540"/> <source>Failed to change Admin PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="529"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="542"/> <source>Failed to set the Reset Code.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="531"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="544"/> <source>Failed to change PIN.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="534"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="547"/> <source>Reason: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="132"/> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="536"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="134"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="549"/> <source>Error</source> <translation type="unfinished">錯誤</translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="541"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="554"/> <source>PIN operation completed successfully.</source> <translation type="unfinished"></translation> </message> @@ -7111,32 +7116,32 @@ If the issue persists, consider seeking technical support or consulting the docu <context> <name>QObject</name> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="446"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="459"/> <source>Cardholder's Surname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="447"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="460"/> <source>Please enter your surname (e.g., Lee):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="452"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="465"/> <source>Cardholder's Given Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="453"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="466"/> <source>Please enter your given name (e.g., Chris):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="462"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="475"/> <source>Too Long</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="463"/> + <location filename="../../../../src/ui/dialog/controller/SmartCardControllerDialog.cpp" line="476"/> <source>Combined name too long (max 39 characters).</source> <translation type="unfinished"></translation> </message> diff --git a/src/core/function/gpg/GpgAssuanHelper.cpp b/src/core/function/gpg/GpgAssuanHelper.cpp index 2fa836e5..0d1b9cdc 100644 --- a/src/core/function/gpg/GpgAssuanHelper.cpp +++ b/src/core/function/gpg/GpgAssuanHelper.cpp @@ -161,6 +161,40 @@ auto GpgAssuanHelper::SendStatusCommand(GpgComponentType type, return {ret, status_lines}; } +auto GpgAssuanHelper::SendDataCommand(GpgComponentType type, + const QString& command) + -> std::tuple<bool, QStringList> { + QStringList data_lines; + GpgAssuanHelper::DataCallback d_cb = + [&](const QSharedPointer<GpgAssuanHelper::AssuanCallbackContext>& ctx) + -> gpg_error_t { + LOG_D() << "data callback of command " << command << ": " << ctx->buffer; + data_lines.push_back(QString::fromUtf8(ctx->buffer)); + return 0; + }; + + GpgAssuanHelper::InqueryCallback i_cb = + [=](const QSharedPointer<GpgAssuanHelper::AssuanCallbackContext>& ctx) + -> gpg_error_t { + LOG_D() << "inquery callback of command: " << command << ": " + << ctx->inquery; + + return 0; + }; + + GpgAssuanHelper::StatusCallback s_cb = + [&](const QSharedPointer<GpgAssuanHelper::AssuanCallbackContext>& ctx) + -> gpg_error_t { + LOG_D() << "status callback of command: " << command << ": " + << ctx->status; + + return 0; + }; + + auto ret = SendCommand(type, command, d_cb, i_cb, s_cb); + return {ret, data_lines}; +} + auto GpgAssuanHelper::default_data_callback(void* opaque, const void* buffer, size_t length) -> gpgme_error_t { auto ctx = *static_cast<QSharedPointer<AssuanCallbackContext>*>(opaque); diff --git a/src/core/function/gpg/GpgAssuanHelper.h b/src/core/function/gpg/GpgAssuanHelper.h index a0c45d7a..294d33e0 100644 --- a/src/core/function/gpg/GpgAssuanHelper.h +++ b/src/core/function/gpg/GpgAssuanHelper.h @@ -108,6 +108,16 @@ class GPGFRONTEND_CORE_EXPORT GpgAssuanHelper auto SendStatusCommand(GpgComponentType type, const QString& command) -> std::tuple<bool, QStringList>; + /** + * @brief + * + * @param type + * @param command + * @return auto + */ + auto SendDataCommand(GpgComponentType type, + const QString& command) -> std::tuple<bool, QStringList>; + private: GpgContext& ctx_ = GpgContext::GetInstance(SingletonFunctionObject::GetChannel()); diff --git a/src/core/function/gpg/GpgSmartCardManager.cpp b/src/core/function/gpg/GpgSmartCardManager.cpp index 422f0b20..cc7f8ab3 100644 --- a/src/core/function/gpg/GpgSmartCardManager.cpp +++ b/src/core/function/gpg/GpgSmartCardManager.cpp @@ -29,6 +29,7 @@ #include "GpgSmartCardManager.h" #include "core/function/gpg/GpgAutomatonHandler.h" +#include "core/utils/CommonUtils.h" namespace GpgFrontend { @@ -81,6 +82,17 @@ auto GpgSmartCardManager::Fetch(const QString& serial_number) -> bool { .DoCardInteract(serial_number, next_state_handler, action_handler); } +auto GpgSmartCardManager::IsSCDVersionSupported() -> bool { + auto [r, s] = assuan_.SendDataCommand(GpgComponentType::kGPG_AGENT, + "SCD GETINFO version"); + if (s.isEmpty()) { + LOG_D() << "invalid response of SCD GETINFO version: " << s; + return false; + } + + return GFCompareSoftwareVersion(s.front(), "2.3.0") > 0; +} + auto GpgSmartCardManager::GetSerialNumbers() -> QStringList { auto [r, s] = assuan_.SendStatusCommand(GpgComponentType::kGPG_AGENT, "SCD SERIALNO --all"); diff --git a/src/core/function/gpg/GpgSmartCardManager.h b/src/core/function/gpg/GpgSmartCardManager.h index 78c21bc0..2fe194f3 100644 --- a/src/core/function/gpg/GpgSmartCardManager.h +++ b/src/core/function/gpg/GpgSmartCardManager.h @@ -109,6 +109,14 @@ class GPGFRONTEND_CORE_EXPORT GpgSmartCardManager const QDateTime& expire, bool non_expire) -> std::tuple<bool, QString>; + /** + * @brief + * + * @return true + * @return false + */ + auto IsSCDVersionSupported() -> bool; + private: GpgContext& ctx_ = GpgContext::GetInstance(SingletonFunctionObject::GetChannel()); ///< diff --git a/src/ui/dialog/controller/SmartCardControllerDialog.cpp b/src/ui/dialog/controller/SmartCardControllerDialog.cpp index 450f1a35..254ed83c 100644 --- a/src/ui/dialog/controller/SmartCardControllerDialog.cpp +++ b/src/ui/dialog/controller/SmartCardControllerDialog.cpp @@ -42,7 +42,9 @@ namespace GpgFrontend::UI { SmartCardControllerDialog::SmartCardControllerDialog(QWidget* parent) : GeneralDialog("SmartCardControllerDialog", parent), ui_(QSharedPointer<Ui_SmartCardControllerDialog>::create()), - channel_(kGpgFrontendDefaultChannel) { + channel_(kGpgFrontendDefaultChannel), + scd_version_supported_( + GpgSmartCardManager::GetInstance(channel_).IsSCDVersionSupported()) { ui_->setupUi(this); ui_->smartCardLabel->setText(tr("Smart Card(s):")); @@ -384,6 +386,11 @@ void SmartCardControllerDialog::reset_status() { "restarting the application.") << "</p>"; + out << "<p><b>" + << tr("Note: Smart card support of GpgFrontend requires GnuPG version " + "2.3.0 or later.") + << "</b></p>"; + out << "<p>" << tr("Read the GnuPG Smart Card HOWTO: ") << "https://gnupg.org/howtos/card-howto/en/" << "</p>"; @@ -391,6 +398,12 @@ void SmartCardControllerDialog::reset_status() { } void SmartCardControllerDialog::slot_listen_smart_card_changes() { + if (!scd_version_supported_) { + LOG_D() << "scd version is not suppored"; + reset_status(); + return; + } + auto serial_numbers = GpgSmartCardManager::GetInstance(channel_).GetSerialNumbers(); diff --git a/src/ui/dialog/controller/SmartCardControllerDialog.h b/src/ui/dialog/controller/SmartCardControllerDialog.h index affe01a8..69b1d723 100644 --- a/src/ui/dialog/controller/SmartCardControllerDialog.h +++ b/src/ui/dialog/controller/SmartCardControllerDialog.h @@ -78,6 +78,7 @@ class SmartCardControllerDialog : public GeneralDialog { GpgOpenPGPCard card_info_; QString cached_status_hash_; QTimer* timer_; + bool scd_version_supported_; /** * @brief Get the smart card serial number object |