aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2025-04-17 17:44:04 +0000
committersaturneric <[email protected]>2025-04-17 17:44:04 +0000
commit6f504e4f915f928e42b8574ca3f93eea5038984b (patch)
treed5542b5cfad3d597038f7621e9975447efd7d9e6
parentchore: update and check translations (diff)
downloadGpgFrontend-6f504e4f915f928e42b8574ca3f93eea5038984b.tar.gz
GpgFrontend-6f504e4f915f928e42b8574ca3f93eea5038984b.zip
feat: check scd version
-rw-r--r--TRANSLATORS4
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.de_DE.ts213
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.en_US.ts213
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.fr_FR.ts213
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.it_IT.ts213
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.zh_CN.ts213
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.zh_TW.ts213
-rw-r--r--src/core/function/gpg/GpgAssuanHelper.cpp34
-rw-r--r--src/core/function/gpg/GpgAssuanHelper.h10
-rw-r--r--src/core/function/gpg/GpgSmartCardManager.cpp12
-rw-r--r--src/core/function/gpg/GpgSmartCardManager.h8
-rw-r--r--src/ui/dialog/controller/SmartCardControllerDialog.cpp15
-rw-r--r--src/ui/dialog/controller/SmartCardControllerDialog.h1
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&apos;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&apos;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 &apos;%1&apos;</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 &apos;%1&apos;</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 &apos;%1&apos;. 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&apos;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&apos;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&apos;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&apos;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 &apos;%1&apos;</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 &apos;%1&apos;</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 &apos;%1&apos;. 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&apos;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&apos;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&apos;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&apos;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&apos;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 &apos;%1&apos;</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 &apos;%1&apos;</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 &apos;%1&apos;. 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&apos;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&apos;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&apos;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&apos;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 &apos;%1&apos;</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 &apos;%1&apos;</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 &apos;%1&apos;. 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&apos;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&apos;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&apos;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&apos;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 &apos;%1&apos;</source>
<translation>选择存储在 &apos;%1&apos; 中的性别</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 &apos;%1&apos;</source>
<translation>请输入 &apos;%1&apos; 的新值</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 &apos;%1&apos;. Reason: %2. </source>
<translation>修改属性 &apos;%1&apos; 失败。 原因: %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&apos;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&apos;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&apos;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&apos;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 &apos;%1&apos;</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 &apos;%1&apos;</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 &apos;%1&apos;. 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&apos;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&apos;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