feat(biometric auth): story#18336 登录锁屏生物特征验证流程优化

This commit is contained in:
yangmin100 2024-11-13 20:03:17 +08:00
parent f6c06fd939
commit 676d614fc2
70 changed files with 1493 additions and 927 deletions

View File

@ -12,195 +12,195 @@
<context>
<name>AuthDialog</name>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation type="unfinished"></translation>
</message>
@ -438,7 +438,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
@ -559,58 +559,58 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation></translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>iris </translation>
<translation type="vanished">iris </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation>FingerVein</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation>Iris</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation></translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1 %2</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation></translation>
</message>
@ -1693,7 +1717,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation></translation>
</message>
@ -2086,53 +2110,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation></translation>
</message>
@ -2141,7 +2165,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation></translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation>Wiederholen</translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>Versuchen Sie es in %1 Minuten erneut.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>Bitte versuchen Sie es in %1 Sekunden erneut.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation>Das Konto wurde dauerhaft gesperrt.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Überprüfen Sie die Gesichtserkennung oder geben Sie das Passwort ein, um zu entsperren</translation>
<translation type="vanished">Überprüfen Sie die Gesichtserkennung oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Drücken Sie den Fingerabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
<translation type="vanished">Drücken Sie den Fingerabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Überprüfen Sie den Stimmabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
<translation type="vanished">Überprüfen Sie den Stimmabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Überprüfen Sie die Fingervene oder geben Sie das Passwort ein, um zu entsperren</translation>
<translation type="vanished">Überprüfen Sie die Fingervene oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>Überprüfen Sie die Iris oder geben Sie das Passwort ein, um zu entsperren</translation>
<translation type="vanished">Überprüfen Sie die Iris oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation>Passwort eingeben</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished">Nutzername</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1 konnte nicht verifiziert werden, bitte geben Sie das Kennwort zum Entsperren ein</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1 kann nicht verifiziert werden, bitte geben Sie das Kennwort zum Entsperren ein</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation>Ungewöhnliches Netzwerk</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation type="unfinished"></translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation>Das Kennwort darf nicht leer sein.</translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1 konnte nicht verifiziert werden, Sie haben immer noch %2 Überprüfungsmöglichkeiten</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation>Authentifizierungsfehler, Bitte versuchen Sie es erneut</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Verwenden Sie den gebundenen Wechat-Scan-Code oder geben Sie das Passwort zum Entsperren ein</translation>
<translation type="vanished">Verwenden Sie den gebundenen Wechat-Scan-Code oder geben Sie das Passwort zum Entsperren ein</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished">Passwort </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation>Einloggen</translation>
</message>
@ -1704,7 +1728,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation>OKAY</translation>
</message>
@ -2090,53 +2114,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation>Login-Optionen</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation>Andere</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@ -2145,7 +2169,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>Gerät identifizieren entfernt!</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation>Reintentar</translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>Inténtelo de nuevo en %1 minutos.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>Inténtelo de nuevo en %1 segundos.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation>Cuenta bloqueada permanentemente.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Verifique el reconocimiento facial o ingrese la contraseña para desbloquear</translation>
<translation type="vanished">Verifique el reconocimiento facial o ingrese la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Presione la huella dactilar o ingrese la contraseña para desbloquear</translation>
<translation type="vanished">Presione la huella dactilar o ingrese la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Verifica la huella de voz o ingresa la contraseña para desbloquear</translation>
<translation type="vanished">Verifica la huella de voz o ingresa la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Verifique la vena del dedo o ingrese la contraseña para desbloquear</translation>
<translation type="vanished">Verifique la vena del dedo o ingrese la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>Verifique el iris o ingrese la contraseña para desbloquear</translation>
<translation type="vanished">Verifique el iris o ingrese la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation>Contraseña de entrada</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished">Nombre de usuario</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>No se pudo verificar %1, ingrese la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>No se puede verificar %1, ingrese la contraseña para desbloquear</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation>Red anormal</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation type="unfinished"></translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation>La contraseña no puede estar vacía</translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>No se pudo verificar %1, todavía tiene %2 oportunidades de verificación</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation>Error de autenticación, inténtelo de nuevo</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Use el código de escaneo de wechat vinculado o ingrese la contraseña para desbloquear</translation>
<translation type="vanished">Use el código de escaneo de wechat vinculado o ingrese la contraseña para desbloquear</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished">Contraseña </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation>Iniciar sesión</translation>
</message>
@ -1704,7 +1728,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation>De acuerdo</translation>
</message>
@ -2094,53 +2118,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation>Opciones de inicio de sesión</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation>Otro</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@ -2149,7 +2173,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>¡Identifique el dispositivo eliminado!</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation>Réessayer</translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>Veuillez réessayer dans %1 minutes.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>Veuillez réessayer dans %1 secondes.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation>Compte verrouillé définitivement.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Vérifier la reconnaissance faciale ou saisir le mot de passe pour déverrouiller</translation>
<translation type="vanished">Vérifier la reconnaissance faciale ou saisir le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Appuyez sur lempreinte digitale ou entrez le mot de passe pour déverrouiller</translation>
<translation type="vanished">Appuyez sur lempreinte digitale ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Vérifier lempreinte vocale ou saisir le mot de passe pour déverrouiller</translation>
<translation type="vanished">Vérifier lempreinte vocale ou saisir le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Vérifiez la veine du doigt ou entrez le mot de passe pour déverrouiller</translation>
<translation type="vanished">Vérifiez la veine du doigt ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>Vérifiez liris ou entrez le mot de passe pour déverrouiller</translation>
<translation type="vanished">Vérifiez liris ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation>Mot de passe dentrée</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished">Nom dutilisateur</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>Impossible de vérifier %1, veuillez entrer le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>Impossible de vérifier %1, veuillez entrer le mot de passe pour déverrouiller</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation>Réseau anormal</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation type="unfinished">Ukey (en anglais seulement)</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation type="unfinished"></translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation>Le mot de passe ne peut pas être vide</translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>Échec de la vérification %1, vous avez encore %2 possibilités de vérification</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation>Échec de lauthentification, veuillez réessayer</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Utilisez le code danalyse wechat lié ou entrez le mot de passe pour déverrouiller</translation>
<translation type="vanished">Utilisez le code danalyse wechat lié ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished">Mot de passe </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation>Connectez-vous</translation>
</message>
@ -1704,7 +1728,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation>DACCORD</translation>
</message>
@ -2090,53 +2114,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation>Options de connexion</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation>Autre</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation type="unfinished">Ukey (en anglais seulement)</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@ -2145,7 +2169,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>Identifier lappareil supprimé !</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation>قاتە قاتە سىناۋ</translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>.ٴسىز 1% مينۋت ٸشٸندە قاتە سىناپ كور</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>.ٴسىز 1% سەكونت ٸشٸندە قاتە سىناپ كور</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation>.ەسەپات ماڭگىلىك قۇلىپتالادى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>چىراي تانىسن دالەلدەۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
<translation type="vanished">چىراي تانىسن دالەلدەۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation>مەيمان (اتسىز تٸزٸمدەۇ)</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>بارماقشى ٴٸزدٸ باسٸۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
<translation type="vanished">بارماقشى ٴٸزدٸ باسٸۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>اۋا ٴٸزدٸ دالەلدەۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
<translation type="vanished">اۋا ٴٸزدٸ دالەلدەۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>بارماقشى ٴٸزٸ ارقىلى انىقتاۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
<translation type="vanished">بارماقشى ٴٸزٸ ارقىلى انىقتاۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>نى انىقتاۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ Iris</translation>
<translation type="vanished">نى انىقتاۋ ياكي قۇپيا نومەر كىرگىزۋ ارقىلى قۇلىپ ٸشٸۋ Iris</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation>قۇپيا نومەر</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation>قۇپيا نۇمىردى كىرگىزىڭىز</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation>ابونت مى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation>پايدالانۋشٸ اتٸ قاتە كىرگىزىلدى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation>كىرۋ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>دالەلدەۋ 1% جەڭىلىپ قالدى، قۇپيا نومەر كىرگىزىڭىز</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>دالەلدەۋگە بولمادى 1%، قۇپيا نۇمىردى كىرەۈزۈپ قۇلىبىن ٴٸشڭٸز</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation>بينورمال تور</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation>چىراي تونۇتۇشنىڭ ساقتاۋ ۋاقىتى ٸشٸپ كەتتى، جاڭالاۋدى تۇرتىپ ياكي قۇپيا نومەر كىرەۈزۈپ قۇلىبىن ٴٸشڭٸز.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation>بارماقشى ٴٸزٸ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation>بارماقشى ۋېناسى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation>تۇستى پەردە</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation>ادام بەتى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation>اۋا ٴٸزٸ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation>قۇپيا كىلت</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation>ەكٸلٸك رازمەر</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation>بارماقشى ٴٸزٸ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation>بارماقشى ۋېنا تومۇزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation>تۇستى پەردە</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation>ادام بەتى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation>اۋا ٴٸزٸ</translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation>قۇپيا نۇمىردى بوس قويۋعا بولمايدى</translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>دالەلدەۋ 1% جەڭىلىپ قالدى، جانە 2% دالەلدەۋ ورايڭىز بار</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation>دالەلدەۋ جەڭىلىپ قالدى، قاتە سىناپ كور</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>بايلانعان ئۈندىدارنى كەسكىندەۋ بەلگىسى ياكي قۇپيا نۇمىردى كىرەۈزۈپ قۇلىپ ٸشٸۋ</translation>
<translation type="vanished">بايلانعان ئۈندىدارنى كەسكىندەۋ بەلگىسى ياكي قۇپيا نۇمىردى كىرەۈزۈپ قۇلىپ ٸشٸۋ</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation>كىرۋ</translation>
</message>
@ -1684,7 +1708,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation></translation>
</message>
@ -2066,53 +2090,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation>كىرۋ تالدانبالارٸ</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation>قۇپيا نومەر</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation>باسقا</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation>بارماقشى ٴٸزٸ</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation>بارماقشى ۋېناسى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation>تۇستى پەردە</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation>ادام بەتى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation>اۋا ٴٸزٸ</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation>قۇپيا كىلت</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation>ەكٸلٸك رازمەر</translation>
</message>
@ -2121,7 +2145,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>!اسبابٸن پارىقتاندىرۋ چىقىرىۋېتىلدى</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation>قايرا قايرا سىنوو</translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>.سىز 1% مىنۇت ىچىندە قايرا سىناپ باعىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>.سىز 1% سىكونت ىچىندە قايرا سىناپ باعىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation>.ەسابات تۉبۅلۉك قۇلۇپلىنىدۇ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>چىراي تاانىشتى دالىلدۅ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
<translation type="vanished">چىراي تاانىشتى دالىلدۅ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation>قونوق (اتى جوق تىزىمدەتىش )</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>بارماق ىزىن باسۇۇدا كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
<translation type="vanished">بارماق ىزىن باسۇۇدا كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>دووش ىزىن دالىلدۅ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
<translation type="vanished">دووش ىزىن دالىلدۅ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>بارماق ئزى ارقىلۇۇ انىقتاش كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
<translation type="vanished">بارماق ئزى ارقىلۇۇ انىقتاش كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>نى انىقتاش كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ Iris</translation>
<translation type="vanished">نى انىقتاش كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىرگىزۉۉ ارقىلۇۇ قۇلپ اچۇۇ Iris</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation>جاشىرۇۇن نومۇر</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation>جاشىرۇۇن نومۇردۇ كىرگىزىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation>كەرەكتۅۅچۉ ناامى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation>ىشتەتۉۉچۉ اتى قاتاا كىرگىزىلدى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation>كىرۉۉ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>دالىلدۅ 1% جەڭىلۉۉ بولدۇ ، جاشىرۇۇن نومۇر كىرگىزىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>دالىلدۅۅگۅ بولبودۇ 1%، جاشىرۇۇن نومۇردۇ كىيىرىپ قۇلۇپنى اچىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation>بۅتۅنچۅ تور</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation>چىراي تونۇتۇشنىڭ ساقتوو ۇباقتى اشىپ كەتتى، جاڭىلوونۇ چەگىپ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇر كىيىرىپ قۇلۇپنى اچىڭ.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation>بارماق ئزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation>بارماق ۋېناسى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation>رەڭدار پاردا</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation>ادام بەتى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation>دووش ئزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation>جاشىرۇۇن اچقىچ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation>ەكىلىك قۇپۇيا نومۇر</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation>بارماق ئزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation>بارماق ۋېنا تومۇزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation>رەڭدار پاردا</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation>ادام بەتى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation>دووش ئزى</translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation>جاشىرۇۇن نومۇردۇ بوش ،بەكەر قويۇشقا بولبويت</translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>دالىلدۅ 1% جەڭىلۉۉ بولدۇ ، داعى 2% دالىلدۅ وڭۇتۇڭۇز بار</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation>دالىلدۅ جەڭىلۉۉ بولدۇ ، قايرا سىناپ باعىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>بايلانعان ئۈندىدارنى ىسكاننىردوو قۇپۇيا نومۇرۇ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇرۇن كىيىرىپ قۇلپ اچۇۇ</translation>
<translation type="vanished">بايلانعان ئۈندىدارنى ىسكاننىردوو قۇپۇيا نومۇرۇ كۅرۉنۉشتۅرۉ جاشىرۇۇن نومۇرۇن كىيىرىپ قۇلپ اچۇۇ</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation>كىرۉۉ</translation>
</message>
@ -1684,7 +1708,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation></translation>
</message>
@ -2066,53 +2090,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation>كىرۉۉ تاندالمالارى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation>جاشىرۇۇن نومۇر</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation>باشقا</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation>بارماق ئزى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation>بارماق ۋېناسى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation>رەڭدار پاردا</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation>ادام بەتى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation>دووش ئزى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation>جاشىرۇۇن اچقىچ</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation>ەكىلىك قۇپۇيا نومۇر</translation>
</message>
@ -2121,7 +2145,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>!اسپاپتى ايىرمالاندىرىش چىقىرىۋېتىلدى</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation> </translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation> !</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1/ </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation> </translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation> </translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1/ %2 </translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation> </translation>
</message>
@ -1688,7 +1712,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation> </translation>
</message>
@ -2089,53 +2113,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation> </translation>
</message>
@ -2144,7 +2168,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation> !</translation>
</message>

View File

@ -70,30 +70,6 @@
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
@ -182,6 +158,30 @@
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>

View File

@ -70,30 +70,6 @@
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
@ -182,6 +158,30 @@
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">Parola</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation type="unfinished">Yeniden Dene</translation>
</message>
@ -49,190 +49,190 @@
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished">Misafir</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation type="unfinished"></translation>
</message>
@ -629,7 +629,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation type="unfinished">Tamam</translation>
</message>
@ -762,58 +762,58 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation type="unfinished">Parola</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation>قايتا قايتا سىناش</translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>.سىز 1% مىنۇت ئىچىدە قايتا سىناپ بېقىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>.سىز 1% سېكۇنت ئىچىدە قايتا سىناپ بېقىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation>.ھېسابات مەڭگۈلۈك قۇلۇپلىنىدۇ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>چىراي تونۇشنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
<translation type="vanished">چىراي تونۇشنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation>مېھمان (نامسىز تىزىملىتىش)</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>بارماق ئىزىنى بېسىش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
<translation type="vanished">بارماق ئىزىنى بېسىش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>ئاۋاز ئىزىنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
<translation type="vanished">ئاۋاز ئىزىنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>بارماق ئىزى ئارقىلىق ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
<translation type="vanished">بارماق ئىزى ئارقىلىق ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation>نى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش Iris</translation>
<translation type="vanished">نى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش Iris</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation>مەخپىي نومۇر</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation>مەخپىي نومۇرنى كىرگۈزۈڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation>ئابۇنت نامى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation>ئىشلەتكۈچى ئىسمى خاتا كىرگۈزۈلدى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation>كىرىش</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>دەلىللەش 1% مەغلۇپ بولدى، مەخپىي نومۇر كىرگۈزۈڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>دەلىللەشكە بولمىدى 1%، مەخپىي نومۇرنى كىرگۈزۈپ قۇلۇپنى ئېچىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation>بىنورمال تور</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation>چىراي تونۇتۇشنىڭ ساقلاش ۋاقتى ئېشىپ كەتتى، يېڭىلاشنى چېكىپ ياكى مەخپىي نومۇر كىرگۈزۈپ قۇلۇپنى ئېچىڭ.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation>بارماق ئىزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation>بارماق ۋېناسى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation>رەڭدار پەردە</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation>ئادەم يۈزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation>ئاۋاز ئىزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation>مەخپىي ئاچقۇچ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation>ئىككىلىك كود</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation>بارماق ئىزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation>بارماق ۋېنا تومۇزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation>رەڭدار پەردە</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation>ئادەم يۈزى</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation>ئاۋاز ئىزى</translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation>مەخپىي نومۇرنى بوش قويۇشقا بولمايدۇ</translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>دەلىللەش 1% مەغلۇپ بولدى، يەنە 2% دەلىللەش پۇرسىتىڭىز بار</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation>دەلىللەش مەغلۇپ بولدى، قايتا سىناپ بېقىڭ</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>باغلانغان ئۈندىدارنى سىكاننېرلاش كودى ياكى مەخپىي نومۇرىنى كىرگۈزۈپ قۇلۇپ ئېچىش</translation>
<translation type="vanished">باغلانغان ئۈندىدارنى سىكاننېرلاش كودى ياكى مەخپىي نومۇرىنى كىرگۈزۈپ قۇلۇپ ئېچىش</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished">مەخپىي نۇمۇر </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation>كىرىش</translation>
</message>
@ -1700,7 +1724,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation></translation>
</message>
@ -2074,53 +2098,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation>كىرىش تاللانمىلىرى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation>مەخپىي نومۇر</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation>باشقا</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation>بارماق ئىزى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation>بارماق ۋېناسى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation>رەڭدار پەردە</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation>ئادەم يۈزى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation>ئاۋاز ئىزى</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation>مەخپىي ئاچقۇچ</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation>ئىككىلىك كود</translation>
</message>
@ -2129,7 +2153,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>!ئۈسكۈنىنى پەرقلەندۈرۈش چىقىرىۋېتىلدى</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation></translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation>:</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation></translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1%2</translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>使</translation>
<translation type="vanished">使</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation></translation>
</message>
@ -1684,7 +1708,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation></translation>
</message>
@ -2066,53 +2090,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation></translation>
</message>
@ -2121,7 +2145,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation>!</translation>
</message>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1173"/>
<location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Retry</source>
<translation></translation>
</message>
@ -53,162 +53,187 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1244"/>
<location filename="../src/widgets/authdialog.cpp" line="1275"/>
<source>Please try again in %1 minutes.</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1251"/>
<location filename="../src/widgets/authdialog.cpp" line="1282"/>
<source>Please try again in %1 seconds.</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1258"/>
<location filename="../src/widgets/authdialog.cpp" line="1289"/>
<source>Account locked permanently.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="652"/>
<location filename="../src/widgets/authdialog.cpp" line="680"/>
<source>Verify face recognition or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="458"/>
<location filename="../src/widgets/authdialog.cpp" line="470"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="655"/>
<source>Press fingerprint or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="658"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="661"/>
<source>Verify finger vein or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="664"/>
<source>Verify iris or enter password to unlock</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="934"/>
<location filename="../src/widgets/authdialog.cpp" line="682"/>
<location filename="../src/widgets/authdialog.cpp" line="710"/>
<source>Facial recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="685"/>
<source>Fingerprint recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="688"/>
<source>Voiceprint recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="691"/>
<source>Finger vein recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="694"/>
<source>Iris recognition to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="697"/>
<source>Use the bound wechat scanning code to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="964"/>
<source>Password:</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="937"/>
<location filename="../src/widgets/authdialog.cpp" line="967"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="942"/>
<location filename="../src/widgets/authdialog.cpp" line="972"/>
<source>Username</source>
<translation type="unfinished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1012"/>
<location filename="../src/widgets/authdialog.cpp" line="1043"/>
<source>User name input error!</source>
<translation>使!</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1091"/>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>login</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1477"/>
<location filename="../src/widgets/authdialog.cpp" line="1627"/>
<location filename="../src/widgets/authdialog.cpp" line="1771"/>
<location filename="../src/widgets/authdialog.cpp" line="1952"/>
<location filename="../src/widgets/authdialog.cpp" line="1508"/>
<location filename="../src/widgets/authdialog.cpp" line="1658"/>
<location filename="../src/widgets/authdialog.cpp" line="1802"/>
<location filename="../src/widgets/authdialog.cpp" line="1983"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1480"/>
<location filename="../src/widgets/authdialog.cpp" line="1630"/>
<location filename="../src/widgets/authdialog.cpp" line="1776"/>
<location filename="../src/widgets/authdialog.cpp" line="1779"/>
<location filename="../src/widgets/authdialog.cpp" line="1955"/>
<location filename="../src/widgets/authdialog.cpp" line="1511"/>
<location filename="../src/widgets/authdialog.cpp" line="1661"/>
<location filename="../src/widgets/authdialog.cpp" line="1807"/>
<location filename="../src/widgets/authdialog.cpp" line="1810"/>
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation> %1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1808"/>
<location filename="../src/widgets/authdialog.cpp" line="1839"/>
<source>Abnormal network</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1816"/>
<location filename="../src/widgets/authdialog.cpp" line="1847"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2079"/>
<location filename="../src/widgets/authdialog.cpp" line="2110"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2081"/>
<location filename="../src/widgets/authdialog.cpp" line="2112"/>
<source>FingerVein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2083"/>
<location filename="../src/widgets/authdialog.cpp" line="2114"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2085"/>
<location filename="../src/widgets/authdialog.cpp" line="2116"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2087"/>
<location filename="../src/widgets/authdialog.cpp" line="2118"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2089"/>
<location filename="../src/widgets/authdialog.cpp" line="2111"/>
<location filename="../src/widgets/authdialog.cpp" line="2120"/>
<location filename="../src/widgets/authdialog.cpp" line="2142"/>
<source>Ukey</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2091"/>
<location filename="../src/widgets/authdialog.cpp" line="2113"/>
<location filename="../src/widgets/authdialog.cpp" line="2122"/>
<location filename="../src/widgets/authdialog.cpp" line="2144"/>
<source>QRCode</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2101"/>
<location filename="../src/widgets/authdialog.cpp" line="2132"/>
<source>fingerprint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2103"/>
<location filename="../src/widgets/authdialog.cpp" line="2134"/>
<source>fingervein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2105"/>
<location filename="../src/widgets/authdialog.cpp" line="2136"/>
<source>iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2107"/>
<location filename="../src/widgets/authdialog.cpp" line="2138"/>
<source>face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="2109"/>
<location filename="../src/widgets/authdialog.cpp" line="2140"/>
<source>voiceprint</source>
<translation></translation>
</message>
@ -217,7 +242,7 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="791"/>
<location filename="../src/widgets/authdialog.cpp" line="821"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -230,8 +255,8 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1793"/>
<location filename="../src/widgets/authdialog.cpp" line="1797"/>
<location filename="../src/widgets/authdialog.cpp" line="1824"/>
<location filename="../src/widgets/authdialog.cpp" line="1828"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation> %1 %2 </translation>
</message>
@ -260,15 +285,14 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1015"/>
<location filename="../src/widgets/authdialog.cpp" line="1019"/>
<location filename="../src/widgets/authdialog.cpp" line="1046"/>
<location filename="../src/widgets/authdialog.cpp" line="1050"/>
<source>Authentication failure, Please try again</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="667"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>使</translation>
<translation type="vanished">使</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -283,8 +307,8 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="456"/>
<location filename="../src/widgets/authdialog.cpp" line="1165"/>
<location filename="../src/widgets/authdialog.cpp" line="468"/>
<location filename="../src/widgets/authdialog.cpp" line="1196"/>
<source>Login</source>
<translation></translation>
</message>
@ -1692,7 +1716,7 @@
<context>
<name>IconEdit</name>
<message>
<location filename="../src/widgets/iconedit.cpp" line="92"/>
<location filename="../src/widgets/iconedit.cpp" line="97"/>
<source>OK</source>
<translation></translation>
</message>
@ -2086,53 +2110,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="82"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="105"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="80"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="103"/>
<source>Login Options</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="289"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="287"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="315"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="313"/>
<source>Other</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1034"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1016"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1036"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1018"/>
<source>FingerVein</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1038"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1020"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1022"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1024"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1026"/>
<source>Ukey</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1028"/>
<source>QRCode</source>
<translation></translation>
</message>
@ -2141,7 +2165,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="703"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="685"/>
<source>Identify device removed!</source>
<translation></translation>
</message>

View File

@ -128,6 +128,53 @@
<file>assets/logout.svg</file>
<file>assets/lockscreen.svg</file>
<file>assets/fengmian.png</file>
<file>assets/biowaiting/iris0.svg</file>
<file>assets/biowaiting/iris1.svg</file>
<file>assets/biowaiting/iris2.svg</file>
<file>assets/biowaiting/iris3.svg</file>
<file>assets/biowaiting/iris4.svg</file>
<file>assets/biowaiting/iris5.svg</file>
<file>assets/biowaiting/iris6.svg</file>
<file>assets/biowaiting/iris7.svg</file>
<file>assets/biowaiting/iris8.svg</file>
<file>assets/biowaiting/iris9.svg</file>
<file>assets/biowaiting/iris10.svg</file>
<file>assets/biowaiting/iris11.svg</file>
<file>assets/biowaiting/fingervein0.svg</file>
<file>assets/biowaiting/fingervein1.svg</file>
<file>assets/biowaiting/fingervein2.svg</file>
<file>assets/biowaiting/fingervein3.svg</file>
<file>assets/biowaiting/fingervein4.svg</file>
<file>assets/biowaiting/fingervein5.svg</file>
<file>assets/biowaiting/fingervein6.svg</file>
<file>assets/biowaiting/fingervein7.svg</file>
<file>assets/biowaiting/fingervein8.svg</file>
<file>assets/biowaiting/fingervein9.svg</file>
<file>assets/biowaiting/fingervein10.svg</file>
<file>assets/biowaiting/fingervein11.svg</file>
<file>assets/biowaiting/voiceprint0.svg</file>
<file>assets/biowaiting/voiceprint1.svg</file>
<file>assets/biowaiting/voiceprint2.svg</file>
<file>assets/biowaiting/voiceprint3.svg</file>
<file>assets/biowaiting/fingerprint0.svg</file>
<file>assets/biowaiting/fingerprint1.svg</file>
<file>assets/biowaiting/fingerprint2.svg</file>
<file>assets/biowaiting/fingerprint3.svg</file>
<file>assets/biowaiting/fingerprint4.svg</file>
<file>assets/biowaiting/fingerprint5.svg</file>
<file>assets/biowaiting/fingerprint6.svg</file>
<file>assets/biowaiting/fingerprint7.svg</file>
<file>assets/biowaiting/fingerprint8.svg</file>
<file>assets/biowaiting/fingerprint9.svg</file>
<file>assets/biowaiting/fingerprint10.svg</file>
<file>assets/biowaiting/fingerprint11.svg</file>
<file>assets/biowaiting/fingerprint12.svg</file>
<file>assets/biowaiting/fingerprint13.svg</file>
<file>assets/biowaiting/fingerprint14.svg</file>
<file>assets/biowaiting/voiceprint4.svg</file>
<file>assets/biowaiting/voiceprint5.svg</file>
<file>assets/biowaiting/voiceprint6.svg</file>
<file>assets/biowaiting/voiceprint7.svg</file>
</qresource>
<qresource prefix="/">
<file>assets/data/conf.ini</file>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}</style></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="27" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="16"/><rect class="cls-2" x="22" y="24" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="126" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="115"/><rect class="cls-2" x="22" y="123" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="137" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="126"/><rect class="cls-2" x="22" y="134" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="38" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="27"/><rect class="cls-2" x="22" y="35" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="49" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="38"/><rect class="cls-2" x="22" y="46" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="60" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="49"/><rect class="cls-2" x="22" y="57" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="71" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="60"/><rect class="cls-2" x="22" y="68" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="82" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="71"/><rect class="cls-2" x="22" y="79" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="93" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="82"/><rect class="cls-2" x="22" y="90" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="104" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="11" width="116" height="93"/><rect class="cls-2" x="22" y="101" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{opacity:0.2;}.cls-2{fill:#3790fa;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="116" x2="80" y2="12" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><g class="cls-1"><path d="M114.27147,96.46253a2.28536,2.28536,0,0,0-2.28534,2.28534v14.1233a2.28534,2.28534,0,1,0,4.57068,0V98.74787A2.28536,2.28536,0,0,0,114.27147,96.46253Z"/><path d="M65.6855,39.7409a33.36686,33.36686,0,0,1,14.30613-3.15372l.03571-.00119a30.94322,30.94322,0,0,1,31.95879,29.89309v22.6704a2.29317,2.29317,0,1,0,4.57068-.2742v-22.579A35.514,35.514,0,0,0,79.99163,32.0165a37.88963,37.88963,0,0,0-16.22581,3.56516A2.29044,2.29044,0,1,0,65.6855,39.7409Z"/><path d="M56.72706,42.9404a2.295,2.295,0,0,0-3.24518-.04578A33.09153,33.09153,0,0,0,43.42645,66.47908v47.21479a2.2853,2.2853,0,1,0,4.57059,0V66.47908a28.567,28.567,0,0,1,8.68424-20.29359A2.29484,2.29484,0,0,0,56.72706,42.9404Z"/><path d="M86.80188,42.84894a27.92679,27.92679,0,0,0-12.29509-.2742A27.14962,27.14962,0,0,0,52.56772,68.90157v53.11088a2.28534,2.28534,0,1,0,4.57068,0V93.63914a17.4489,17.4489,0,0,0,2.97089,4.19458,20.85342,20.85342,0,0,1,6.17039,11.86918v6.78754a2.25125,2.25125,0,0,0,0,.24985v8.97437a2.2853,2.2853,0,1,0,4.57059,0v-8.773a25.4804,25.4804,0,0,0,.30615-5.15689c.59317-6.03013,2.33194-16.46175,7.41825-23.59508,6.51407-9.13551,6.12479-15.36586,5.911-17.32271h4.63651a55.70992,55.70992,0,0,0,.01071,6.69315v48.15458a2.28535,2.28535,0,0,0,4.57069,0V94.87812a25.77379,25.77379,0,0,0,1.554,2.45288,45.685,45.685,0,0,1,7.58726,21.88753v2.79392a2.2853,2.2853,0,1,0,4.57059,0V68.90157A27.05818,27.05818,0,0,0,86.80188,42.84894ZM66.27968,97.80616a25.48236,25.48236,0,0,0-2.97089-3.40036c-5.02772-5.25632-6.17039-18.694-6.17039-23.53887h9.14128Zm8.59278-12.26743a36.49909,36.49909,0,0,0-4.02219,7.30536V70.86693h9.09742a2.31209,2.31209,0,0,0,.04394.5485C79.99163,71.46111,81.1343,76.763,74.87246,85.53873Zm27.9724,16.12006a49.905,49.905,0,0,0-3.885-6.97879c-6.49036-9.09559-5.11917-23.58455-5.11917-23.58455l.00229-.02271c.00659-.06985-.00156-.137-.00119-.20581h9.00312ZM57.36573,66.29625A22.52238,22.52238,0,0,1,75.37526,47.28247a23.67615,23.67615,0,0,1,10.284,0,22.431,22.431,0,0,1,16.99293,19.01378Z"/><path d="M82.27688,91.43482a2.28527,2.28527,0,0,0-2.28525,2.28534v31.9945a2.2853,2.2853,0,1,0,4.57059,0V93.72016A2.28535,2.28535,0,0,0,82.27688,91.43482Z"/></g><path class="cls-2" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-2" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-2" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-2" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><rect class="cls-3" x="22" y="12" width="116" height="104"/><rect class="cls-2" x="22" y="112" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}</style></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="27" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="16"/><rect class="cls-1" x="22" y="24" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="126" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="115"/><rect class="cls-1" x="22" y="123" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="137" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="126"/><rect class="cls-1" x="22" y="134" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="38" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="27"/><rect class="cls-1" x="22" y="35" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="49" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="38"/><rect class="cls-1" x="22" y="46" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="60" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="49"/><rect class="cls-1" x="22" y="57" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="71" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="60"/><rect class="cls-1" x="22" y="68" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="82" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="71"/><rect class="cls-1" x="22" y="79" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="93" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="82"/><rect class="cls-1" x="22" y="90" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="104" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="93"/><rect class="cls-1" x="22" y="101" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 160 160"><defs><style>.cls-1{fill:#3790fa;}.cls-2{opacity:0.2;}.cls-3{fill:url(#未命名的渐变_8);}</style><linearGradient id="未命名的渐变_8" x1="80" y1="115" x2="80" y2="11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#3790fa"/><stop offset="1" stop-color="#3790fa" stop-opacity="0"/></linearGradient></defs><g id="文字标注"><path class="cls-1" d="M154,52h-8V35a21.0239,21.0239,0,0,0-21-21H108V6h17a29.03307,29.03307,0,0,1,29,29Z"/><path class="cls-1" d="M125,154H108v-8h17a21.02422,21.02422,0,0,0,21-21V108h8v17A29.03339,29.03339,0,0,1,125,154Z"/><path class="cls-1" d="M52,154H35A29.03339,29.03339,0,0,1,6,125V108h8v17a21.02422,21.02422,0,0,0,21,21H52Z"/><path class="cls-1" d="M14,52H6V35A29.03307,29.03307,0,0,1,35,6H52v8H35A21.0239,21.0239,0,0,0,14,35Z"/><g class="cls-2"><path d="M80,112c-28.1582,0-50.24707-28.35742-51.17285-29.56445L26.958,80l1.86914-2.43555C29.75293,76.35742,51.8418,48,80,48s50.24707,28.35742,51.17285,29.56445L133.042,80l-1.86914,2.43555C130.24707,83.64258,108.1582,112,80,112ZM37.22266,80C42.99512,86.54346,60.249,104,80,104s37.00391-17.45508,42.77734-24C117.00391,73.45508,99.751,56,80,56S42.99609,73.45508,37.22266,80Z"/></g><g class="cls-2"><circle cx="80" cy="80" r="18"/></g><rect class="cls-3" x="22" y="11" width="116" height="104"/><rect class="cls-1" x="22" y="112" width="116" height="4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -67,6 +67,21 @@ QPixmap scaledPixmap(QPixmap src)
return rectPixmap;
}
QPixmap scaledSmoothPixmap(const QPixmap &src, int nWidth, int nHeight)
{
if (src.isNull()) {
return QPixmap();
}
QPixmap pixmapa(src);
QPixmap pixmap(nWidth, nHeight);
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
painter.drawPixmap(0, 0, nWidth, nHeight, pixmapa);
return pixmap;
}
QPixmap PixmapToRound(const QPixmap &src, int radius)
{
if (src.isNull()) {
@ -98,13 +113,16 @@ QPixmap PixmapToRound(const QPixmap &src, int leftTop, int rightTop, int leftBot
QPainterPath path;
path.moveTo(leftTop, 0);
path.arcTo(QRect(0, 0, 2*leftTop, 2*leftTop), 90, 90);
path.arcTo(QRect(0, 0, 2 * leftTop, 2 * leftTop), 90, 90);
path.lineTo(0, src.height() - leftBottom);
path.arcTo(QRect(0, src.height() - 2*leftBottom, 2*leftBottom, 2*leftBottom), 180, 90);
path.arcTo(QRect(0, src.height() - 2 * leftBottom, 2 * leftBottom, 2 * leftBottom), 180, 90);
path.lineTo(src.width() - rightBottom, src.height());
path.arcTo(QRect(src.width() - 2*rightBottom, src.height() - 2*rightBottom, 2*rightBottom, 2*rightBottom), 270, 90);
path.arcTo(
QRect(src.width() - 2 * rightBottom, src.height() - 2 * rightBottom, 2 * rightBottom, 2 * rightBottom),
270,
90);
path.lineTo(src.width(), rightTop);
path.arcTo(QRect(src.width() - 2*rightTop, 0, 2*rightTop, 2*rightTop), 0, 90);
path.arcTo(QRect(src.width() - 2 * rightTop, 0, 2 * rightTop, 2 * rightTop), 0, 90);
path.closeSubpath();
painter.setClipPath(path);
@ -199,8 +217,8 @@ QPixmap blurPixmap(QPixmap pixmap)
QImage srcImg = pixmap.toImage();
qt_blurImage(&painter, srcImg, BLUR_RADIUS, false, false);
//在设置Qt::WA_TranslucentBackground属性后模糊图片会导致锁屏界面透明
//因此这里修改image图形的alpha值为255.
// 在设置Qt::WA_TranslucentBackground属性后模糊图片会导致锁屏界面透明
// 因此这里修改image图形的alpha值为255.
for (int y = 0; y < srcImg.height(); ++y) {
QRgb *row = (QRgb *)srcImg.scanLine(y);
for (int x = 0; x < srcImg.width(); ++x) {

View File

@ -39,4 +39,6 @@ QPixmap blurPixmap(QPixmap pixmap);
QPixmap scaleBlurPixmap(int width, int height, QString url);
QPixmap scaledSmoothPixmap(const QPixmap &src, int nWidth, int nHeight);
#endif // COMMONFUNC_H

View File

@ -30,6 +30,7 @@
#include <QKeyEvent>
#include <QEvent>
#include <QTimer>
#include <QPixmapCache>
#include "definetypes.h"
#include <unistd.h>
#include <sys/types.h>
@ -67,6 +68,9 @@ void AuthDialog::initUI()
m_curFontSize = m_modelLockDialog->getCurFontSize();
m_ptToPx = m_modelLockDialog->getPtToPx();
// 生物认证空占位
m_widgetPlaceholder = new QWidget(this);
m_widgetPlaceholder->hide();
// 生物认证提示
m_tipWidget = new QWidget(this);
@ -89,6 +93,7 @@ void AuthDialog::initUI()
m_widgetLoginOpts = new QWidget(this);
mainLayout->addStretch();
mainLayout->addWidget(m_widgetPlaceholder);
mainLayout->addWidget(m_tipWidget);
mainLayout->addWidget(m_headerWidget);
mainLayout->addWidget(m_nameWidget);
@ -163,6 +168,9 @@ void AuthDialog::updateAuthSize()
m_nameWidget->setFixedSize(this->width(), WIDGET_HEIGHT_USERNAME);
if (m_editWidget)
m_editWidget->setFixedSize(this->width(), WIDGET_HEIGHT_PASSWDEDIT);
if (m_widgetPlaceholder) {
m_widgetPlaceholder->setFixedSize(this->width(), WIDGET_HEIGHT_PASSWDEDIT);
}
if (m_ukeyPasswdWidget)
m_ukeyPasswdWidget->setFixedSize(this->width(), WIDGET_HEIGHT_PASSWDEDIT);
@ -178,7 +186,8 @@ void AuthDialog::updateAuthSize()
if (m_labelLoginTypeTip) {
m_labelLoginTypeTip->setFixedSize(m_tipWidget->size());
m_labelLoginTypeTip->setFontSize((14 + m_curFontSize) * m_ptToPx);
m_labelLoginTypeTip->setFontSize((26 + m_curFontSize) * m_ptToPx);
m_labelLoginTypeTip->setFontWeight(QFont::Medium);
}
if (m_labelHeadImg)
m_labelHeadImg->setFixedSize(WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
@ -203,6 +212,9 @@ void AuthDialog::updateAuthSize()
m_labelQRCodeMsg->setFixedHeight(30 * scale);
m_labelQRCodeMsg->setFontSize((14 + m_curFontSize) * m_ptToPx);
}
if (m_labelBioWaiting) {
m_labelBioWaiting->setFixedSize(WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
}
if (m_nameLabel) {
m_nameLabel->setFixedSize(this->width(), WIDGET_HEIGHT_USERNAME);
m_nameLabel->setFontSize((24 + m_curFontSize) * m_ptToPx);
@ -266,7 +278,7 @@ void AuthDialog::updateAuthFont(QString fontFamily)
void AuthDialog::updateAuthFontSize(double fontSize)
{
if (m_labelLoginTypeTip) {
m_labelLoginTypeTip->setFontSize((14 + fontSize) * m_ptToPx);
m_labelLoginTypeTip->setFontSize((26 + fontSize) * m_ptToPx);
}
if (m_ukeyMessageLabel) {
m_ukeyMessageLabel->setFontSize((14 + fontSize) * m_ptToPx);
@ -312,6 +324,11 @@ void AuthDialog::initHeaderWidget()
headerLayout->addWidget(m_labelFace);
m_labelFace->hide();
// 生物特征等待验证动画
m_labelBioWaiting = new QLabel(m_headerWidget);
headerLayout->addWidget(m_labelBioWaiting);
m_labelBioWaiting->hide();
// 人脸识别重试
m_fRetryButton = new QPushButton(m_headerWidget);
m_fRetryButton->setFocusPolicy(Qt::NoFocus);
@ -537,11 +554,14 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
case LOGINOPT_TYPE_PASSWORD: {
m_tipWidget->show();
m_editWidget->show();
m_widgetPlaceholder->hide();
m_headerWidget->show();
m_nameWidget->show();
m_labelHeadImg->show();
m_labelQRCode->hide();
m_labelFace->hide();
m_labelBioWaiting->hide();
stopBioWaiting();
m_fRetryButton->hide();
m_ukeyPasswdWidget->hide();
m_ukeyPasswordEdit->clearFocus();
@ -550,12 +570,15 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
} break;
case LOGINOPT_TYPE_FACE: {
m_tipWidget->show();
m_editWidget->show();
m_editWidget->hide();
m_widgetPlaceholder->show();
m_headerWidget->show();
m_nameWidget->show();
m_labelHeadImg->hide();
m_labelQRCode->hide();
m_labelFace->show();
m_labelBioWaiting->hide();
stopBioWaiting();
m_fRetryButton->hide();
m_ukeyPasswdWidget->hide();
m_ukeyPasswordEdit->clearFocus();
@ -570,12 +593,15 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
case LOGINOPT_TYPE_FINGERVEIN:
case LOGINOPT_TYPE_IRIS: {
m_tipWidget->show();
m_editWidget->show();
m_editWidget->hide();
m_widgetPlaceholder->show();
m_headerWidget->show();
m_nameWidget->show();
m_labelHeadImg->show();
m_labelHeadImg->hide();
m_labelQRCode->hide();
m_labelFace->hide();
m_labelBioWaiting->show();
startBioWaiting(uLoginOptType);
m_fRetryButton->hide();
m_ukeyPasswdWidget->hide();
m_ukeyPasswordEdit->clearFocus();
@ -584,13 +610,16 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
} break;
case LOGINOPT_TYPE_QRCODE: {
m_tipWidget->show();
m_editWidget->show();
m_editWidget->hide();
m_widgetPlaceholder->show();
m_headerWidget->show();
m_nameWidget->show();
m_labelHeadImg->hide();
setQRCodeMsg("");
m_labelQRCode->show();
m_labelFace->hide();
m_labelBioWaiting->hide();
stopBioWaiting();
m_fRetryButton->hide();
m_ukeyPasswdWidget->hide();
m_ukeyPasswordEdit->clearFocus();
@ -600,11 +629,14 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
case LOGINOPT_TYPE_GENERAL_UKEY: {
m_tipWidget->show();
m_editWidget->show();
m_widgetPlaceholder->hide();
m_headerWidget->show();
m_nameWidget->show();
m_labelHeadImg->show();
m_labelQRCode->hide();
m_labelFace->hide();
m_labelBioWaiting->hide();
stopBioWaiting();
m_fRetryButton->hide();
m_customWidget->hide();
m_ukeyPasswdWidget->show();
@ -616,8 +648,10 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
case LOGINOPT_TYPE_CUSTOM: {
m_tipWidget->hide();
m_editWidget->hide();
m_widgetPlaceholder->hide();
m_headerWidget->hide();
m_nameWidget->hide();
stopBioWaiting();
setQRCodeMsg("");
m_ukeyPasswdWidget->hide();
m_ukeyPasswordEdit->clearFocus();
@ -658,22 +692,22 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
setLoginTypeTip("");
} break;
case LOGINOPT_TYPE_FACE: {
setLoginTypeTip(tr("Verify face recognition or enter password to unlock"));
setLoginTypeTip(tr("Facial recognition to unlock"));
} break;
case LOGINOPT_TYPE_FINGERPRINT: {
setLoginTypeTip(tr("Press fingerprint or enter password to unlock"));
setLoginTypeTip(tr("Fingerprint recognition to unlock"));
} break;
case LOGINOPT_TYPE_VOICEPRINT: {
setLoginTypeTip(tr("Verify voiceprint or enter password to unlock"));
setLoginTypeTip(tr("Voiceprint recognition to unlock"));
} break;
case LOGINOPT_TYPE_FINGERVEIN: {
setLoginTypeTip(tr("Verify finger vein or enter password to unlock"));
setLoginTypeTip(tr("Finger vein recognition to unlock"));
} break;
case LOGINOPT_TYPE_IRIS: {
setLoginTypeTip(tr("Verify iris or enter password to unlock"));
setLoginTypeTip(tr("Iris recognition to unlock"));
} break;
case LOGINOPT_TYPE_QRCODE: {
setLoginTypeTip(tr("Use the bound wechat scanning code or enter the password to unlock"));
setLoginTypeTip(tr("Use the bound wechat scanning code to unlock"));
} break;
case LOGINOPT_TYPE_GENERAL_UKEY: {
setLoginTypeTip("");
@ -686,7 +720,7 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
}
} else if (uLoginOptType == m_uCurLoginOptType && uLoginOptType == LOGINOPT_TYPE_FACE && !faceBtnClicked) {
clearMessage();
setLoginTypeTip(tr("Verify face recognition or enter password to unlock"));
setLoginTypeTip(tr("Facial recognition to unlock"));
}
if (m_deviceInfo) {
m_nLastDeviceId = m_deviceInfo->id;
@ -974,6 +1008,9 @@ void AuthDialog::onPamShowPrompt(QString strPrompt, int nType)
m_timerUserUnlock->start();
}
}
if (!m_isInhibitShow) {
show();
}
}
void AuthDialog::onPamAuthCompleted()
@ -981,6 +1018,7 @@ void AuthDialog::onPamAuthCompleted()
if (m_curUserInfo->name().isEmpty())
return;
m_passwordEdit->stopWaiting();
stopBioWaiting();
bool isAuthenticated = (Q_EMIT m_modelLockDialog->pamIsAuthenticated());
qDebug() << "onPamAuthCompleted:" << isAuthenticated << m_curUserInfo->name();
if (isAuthenticated) {
@ -1165,6 +1203,7 @@ void AuthDialog::onCurUserChanged(UserInfoPtr userInfo)
void AuthDialog::showAuthenticated(bool successful /* = true*/)
{
m_editWidget->show();
m_widgetPlaceholder->hide();
m_passwordEdit->hide();
m_messageButton->show();
m_messageButton->setDefault(true);
@ -1492,6 +1531,7 @@ void AuthDialog::performBiometricAuth()
QImage imgFailed;
setFaceImg(imgFailed, 1);
}
stopBioWaiting(true);
}
m_loginOpts->setDeviceDisable(m_deviceInfo->id, true);
// skipBiometricAuth();
@ -1642,6 +1682,7 @@ void AuthDialog::onLoginOptsCount(unsigned uCount)
QImage imgFailed;
setFaceImg(imgFailed, 1);
}
stopBioWaiting(true);
}
m_loginOpts->setDeviceDisable(m_deviceInfo->id, true);
return;
@ -1787,6 +1828,7 @@ void AuthDialog::onBiometricAuthComplete(bool result, int nStatus)
} else {
setLoginTypeTip(tr("Unable to verify %1, please enter password to unlock")
.arg(getDeviceType_lowerTr(m_deviceInfo->deviceType)));
stopBioWaiting(true);
}
if (m_loginOpts)
m_loginOpts->setDeviceDisable(m_deviceInfo->id, true);
@ -2124,3 +2166,157 @@ QString AuthDialog::getDeviceType_lowerTr(int deviceType)
return "";
}
}
void AuthDialog::startBioWaiting(unsigned uCurLoginOptType)
{
if (uCurLoginOptType == m_nCurBioWaitingType
|| (uCurLoginOptType != LOGINOPT_TYPE_FINGERPRINT && uCurLoginOptType != LOGINOPT_TYPE_FINGERVEIN
&& uCurLoginOptType != LOGINOPT_TYPE_IRIS && uCurLoginOptType != LOGINOPT_TYPE_VOICEPRINT)) {
return;
}
m_nCurBioWaitingType = uCurLoginOptType;
if (!m_timerBioWaiting) {
m_timerBioWaiting = new QTimer(this);
m_timerBioWaiting->setInterval(100);
}
if (m_timerBioWaiting) {
if (m_timerBioWaiting->isActive()) {
m_timerBioWaiting->stop();
}
// 重新连接信号槽
disconnect(m_timerBioWaiting, nullptr, this, nullptr);
connect(m_timerBioWaiting, &QTimer::timeout, this, [&, this, uCurLoginOptType]() {
m_nBioWaitingFrame += 1;
QString strPicName = "";
switch (uCurLoginOptType) {
case LOGINOPT_TYPE_FINGERPRINT: {
if (m_nBioWaitingFrame >= 15) {
m_nBioWaitingFrame = 0;
}
strPicName = QString(":/image/assets/biowaiting/fingerprint%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_FINGERVEIN: {
if (m_nBioWaitingFrame >= 12) {
m_nBioWaitingFrame = 0;
}
strPicName = QString(":/image/assets/biowaiting/fingervein%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_IRIS: {
if (m_nBioWaitingFrame >= 12) {
m_nBioWaitingFrame = 0;
}
strPicName = QString(":/image/assets/biowaiting/iris%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_VOICEPRINT: {
if (m_nBioWaitingFrame >= 8) {
m_nBioWaitingFrame = 0;
}
strPicName = QString(":/image/assets/biowaiting/voiceprint%1.svg").arg(m_nBioWaitingFrame);
} break;
default:
break;
}
if (!strPicName.isEmpty()) {
QPixmap pixmap;
if (QPixmapCache::find(strPicName, &pixmap)) {
m_labelBioWaiting->setPixmap(pixmap);
} else {
pixmap = scaledSmoothPixmap(QPixmap(strPicName), WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
if (!pixmap.isNull()) {
QPixmapCache::insert(strPicName, pixmap);
m_labelBioWaiting->setPixmap(pixmap);
}
}
}
});
m_timerBioWaiting->start();
m_nBioWaitingFrame = 0;
QString strPicName = "";
switch (uCurLoginOptType) {
case LOGINOPT_TYPE_FINGERPRINT: {
strPicName = QString(":/image/assets/biowaiting/fingerprint%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_FINGERVEIN: {
strPicName = QString(":/image/assets/biowaiting/fingervein%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_IRIS: {
strPicName = QString(":/image/assets/biowaiting/iris%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_VOICEPRINT: {
strPicName = QString(":/image/assets/biowaiting/voiceprint%1.svg").arg(m_nBioWaitingFrame);
} break;
default:
break;
}
if (!strPicName.isEmpty()) {
QPixmap pixmap;
if (QPixmapCache::find(strPicName, &pixmap)) {
m_labelBioWaiting->setPixmap(pixmap);
} else {
pixmap = scaledSmoothPixmap(QPixmap(strPicName), WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
if (!pixmap.isNull()) {
QPixmapCache::insert(strPicName, pixmap);
m_labelBioWaiting->setPixmap(pixmap);
}
}
}
}
}
void AuthDialog::stopBioWaiting(bool isDisable /* = false*/)
{
if (m_timerBioWaiting) {
if (m_timerBioWaiting->isActive()) {
m_timerBioWaiting->stop();
}
}
m_nBioWaitingFrame = 0;
if (isDisable) {
QString strPicName = "";
switch (m_nCurBioWaitingType) {
case LOGINOPT_TYPE_FINGERPRINT: {
strPicName = QString(":/image/assets/biowaiting/fingerprint%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_FINGERVEIN: {
strPicName = QString(":/image/assets/biowaiting/fingervein%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_IRIS: {
strPicName = QString(":/image/assets/biowaiting/iris%1.svg").arg(m_nBioWaitingFrame);
} break;
case LOGINOPT_TYPE_VOICEPRINT: {
strPicName = QString(":/image/assets/biowaiting/voiceprint%1.svg").arg(m_nBioWaitingFrame);
} break;
default:
break;
}
if (!strPicName.isEmpty()) {
QPixmap pixmap;
if (QPixmapCache::find(strPicName, &pixmap)) {
m_labelBioWaiting->setPixmap(pixmap);
} else {
pixmap = scaledSmoothPixmap(QPixmap(strPicName), WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
if (!pixmap.isNull()) {
QPixmapCache::insert(strPicName, pixmap);
m_labelBioWaiting->setPixmap(pixmap);
}
}
}
}
m_nCurBioWaitingType = -1;
}
void AuthDialog::inhibitShow(bool isInhibit)
{
if (m_isInhibitShow != isInhibit) {
if (!isInhibit) {
if (isHidden() || !isVisible()) {
show();
}
} else {
if (!isHidden() || isVisible()) {
hide();
}
}
m_isInhibitShow = isInhibit;
}
}

View File

@ -73,6 +73,8 @@ public:
void updateAuthFontSize(double fontSize);
void inhibitShow(bool isInhibit);
private Q_SLOTS:
void onPamShowMessage(QString strMsg, int nType);
void onPamShowPrompt(QString strPrompt, int nType);
@ -174,6 +176,9 @@ private:
//一键开机认证函数
void startFirstLogin();
void startBioWaiting(unsigned uCurLoginOptType);
void stopBioWaiting(bool isDisable = false);
private:
LockDialogModel *m_modelLockDialog = nullptr;
@ -204,6 +209,12 @@ private:
KLabel *m_labelQRCodeMsg = nullptr; // 二维码状态消息提示
QLabel *m_labelQRCodeTip = nullptr;
QPushButton *m_fRetryButton = nullptr; //人脸识别重试按钮
// 指纹、指静脉、虹膜、声纹识别动图
QLabel *m_labelBioWaiting = nullptr; // 指纹、指静脉、虹膜、声纹识别动图提示
QTimer *m_timerBioWaiting = nullptr; // 指纹、指静脉、虹膜、声纹识别动图切换定时器
int m_nBioWaitingFrame = 0; // 当前显示的动图帧
int m_nCurBioWaitingType = -1; // 当前显示的动图类型
QWidget *m_widgetPlaceholder = nullptr; // 占位控件
QWidget *m_widgetLoginOpts = nullptr; // 登录选项
KLabel *m_optionTip = nullptr;
@ -284,5 +295,6 @@ private:
QString m_strLastPamAuthName = "";
QDateTime m_lastPamAuthTime;
bool m_isInhibitShow = false;
};
#endif // AUTHDIALOG_H

View File

@ -23,9 +23,7 @@
#include <QPainter>
#include <QDebug>
KLabel::KLabel(QWidget *parent) : QLabel(parent)
, m_speed(2)
, m_scrollOffset(0)
KLabel::KLabel(QWidget *parent) : QLabel(parent), m_speed(2), m_scrollOffset(0)
{
setWindowFlags(Qt::FramelessWindowHint);
// m_strText = "";
@ -48,6 +46,12 @@ void KLabel::setFontFamily(QString &family)
this->setFont(sysFont);
}
void KLabel::setFontWeight(int weight)
{
sysFont.setWeight(weight);
this->setFont(sysFont);
}
void KLabel::setTipText(const QString &strText)
{
m_scrollOffset = 0;
@ -77,7 +81,7 @@ QString KLabel::text() const
QString KLabel::getElidedText(QFont font, int width, QString strInfo)
{
QFontMetrics fontMetrics(font);
//如果当前字体下,字符串长度大于指定宽度
// 如果当前字体下,字符串长度大于指定宽度
if (fontMetrics.width(strInfo) > width) {
strInfo = QFontMetrics(font).elidedText(strInfo, Qt::ElideRight, width);
}
@ -95,9 +99,15 @@ void KLabel::paintEvent(QPaintEvent *event)
if (m_isMarqueeMode) {
QLabel::setText("");
QPainter painter(this);
painter.drawText(m_scrollOffset + contentsMargins().left(), rect().top(), width() - contentsMargins().left() - contentsMargins().right() - m_scrollOffset, height(),
Qt::AlignLeft | Qt::TextSingleLine, m_strText);
//qDebug()<<"MarqueueText:"<<m_scrollOffset<<rect().top()<<width() - contentsMargins().left() - contentsMargins().right() - m_scrollOffset<<height()<<","<<m_strText;
painter.drawText(
m_scrollOffset + contentsMargins().left(),
rect().top(),
width() - contentsMargins().left() - contentsMargins().right() - m_scrollOffset,
height(),
Qt::AlignLeft | Qt::TextSingleLine,
m_strText);
// qDebug()<<"MarqueueText:"<<m_scrollOffset<<rect().top()<<width() - contentsMargins().left() -
// contentsMargins().right() - m_scrollOffset<<height()<<","<<m_strText;
startMarqueueTimer();
} else {
QLabel::setText(strEText);
@ -111,7 +121,8 @@ void KLabel::setMarqueueMode(bool isMarqueue)
{
m_isMarqueeMode = isMarqueue;
if (isMarqueue && !m_strText.isEmpty()) {
QString strEText = getElidedText(font(), width() - contentsMargins().left() - contentsMargins().right(), m_strText);
QString strEText
= getElidedText(font(), width() - contentsMargins().left() - contentsMargins().right(), m_strText);
if (strEText != m_strText) {
startMarqueueTimer();
}

View File

@ -35,6 +35,7 @@ public:
void clear();
QString text() const;
void setFontFamily(QString &family);
void setFontWeight(int weight);
void setMarqueueMode(bool isMarqueue);
public Q_SLOTS:

View File

@ -102,6 +102,12 @@ bool LockWidget::eventFilter(QObject *obj, QEvent *event)
m_mediaControlWidget->initMultimediaControl();
}
}
} else if (event->type() == QEvent::Hide) {
if (obj == this) {
if (authDialog && !authDialog->isHidden()) {
authDialog->hide();
}
}
}
return false;
@ -111,7 +117,7 @@ bool LockWidget::exitSubWidget(bool isForScreensaver, bool hideVirkeyboard)
{
if (m_isSessionTools) {
authDialog->setFocus();
authDialog->show();
authDialog->inhibitShow(false);
buttonListWidget->show();
m_timeWidget->show();
m_powerListWidget->hide();
@ -137,7 +143,7 @@ bool LockWidget::exitSubWidget(bool isForScreensaver, bool hideVirkeyboard)
}
if (m_powerListWidget && m_powerListWidget->isVisible()) {
authDialog->setFocus();
authDialog->show();
authDialog->inhibitShow(false);
if (m_widgetMediaControl) {
m_widgetMediaControl->show();
}
@ -339,6 +345,7 @@ void LockWidget::initUI()
authDialog = new AuthDialog(m_modelLockDialog, m_curUserInfo, this);
authDialog->installEventFilter(this);
authDialog->hide();
m_curFont = m_modelLockDialog->getCurFont();
m_ptToPx = m_modelLockDialog->getPtToPx();
m_curFontSize = m_modelLockDialog->getCurFontSize();
@ -1126,7 +1133,7 @@ void LockWidget::onShowPowerListWidget(bool issessionTools)
}
if (m_powerListWidget->isHidden()) {
m_powerListWidget->show();
authDialog->hide();
authDialog->inhibitShow(true);
if (m_powerListWidget->getScrollShowStatus()) { // 如果显示Scroll直接从时间窗口底部开始显示
m_powerListWidget->move((width() - m_powerListWidget->width()) / 2, m_timeWidget->height() + 30);
} else { // 居中显示
@ -1143,7 +1150,7 @@ void LockWidget::onShowPowerListWidget(bool issessionTools)
}
} else {
m_powerListWidget->hide();
authDialog->show();
authDialog->inhibitShow(false);
authDialog->setFocus();
m_systemMonitorBtn->hide();
buttonListWidget->show();
@ -1215,7 +1222,7 @@ void LockWidget::onHideVirkeyboard()
void LockWidget::onShowInhibitWarning(QStringList list, int type, bool iscommand)
{
authDialog->hide();
authDialog->inhibitShow(true);
if (m_widgetMediaControl) {
m_widgetMediaControl->hide();
}
@ -1238,7 +1245,7 @@ void LockWidget::onShowInhibitWarning(QStringList list, int type, bool iscommand
void LockWidget::onSureShutDown(int inhibitType, bool iscommand)
{
authDialog->hide();
authDialog->inhibitShow(true);
buttonListWidget->hide();
m_timeWidget->hide();
m_powerListWidget->hide();
@ -1271,7 +1278,7 @@ void LockWidget::onSureShutDown(int inhibitType, bool iscommand)
void LockWidget::onMulUsersLogined(int inhibitType, bool iscommand)
{
authDialog->hide();
authDialog->inhibitShow(true);
if (m_widgetMediaControl) {
m_widgetMediaControl->hide();
}
@ -1306,7 +1313,7 @@ void LockWidget::onConfirmBtnClicked()
{
m_blockWidget->hide();
m_powerListWidget->hide();
authDialog->show();
authDialog->inhibitShow(false);
if (m_widgetMediaControl) {
m_widgetMediaControl->show();
}

View File

@ -43,10 +43,8 @@
#include <QJsonArray>
#include <QJsonParseError>
LoginOptionsWidget::LoginOptionsWidget(BiometricHelper *bioHelper,
int uid,
UniAuthService *uniauthService,
QWidget *parent)
LoginOptionsWidget::LoginOptionsWidget(
BiometricHelper *bioHelper, int uid, UniAuthService *uniauthService, QWidget *parent)
: QWidget(parent), m_biomericProxy(bioHelper), m_uid(uid), m_uniauthService(uniauthService)
{
m_listPriority.clear();
@ -324,16 +322,6 @@ void LoginOptionsWidget::updateOptionButtons()
isShowUkey = true;
}
if (m_mapOptBtns.size() <= 2 && (!isShowUkey && !m_mapDevices.contains(LOGINOPT_TYPE_CUSTOM))) {
// 因为默认添加一个密码选项因此当ukey没有显示出来时按钮数小于等于2时就隐藏选项界面
m_labelOptTitle->hide();
QMap<int, QPushButton *>::iterator itMapBtn = m_mapOptBtns.begin();
for (; itMapBtn != m_mapOptBtns.end(); itMapBtn++) {
if (itMapBtn.value()) {
itMapBtn.value()->hide();
}
}
} else {
m_labelOptTitle->show();
QMap<int, QPushButton *>::iterator itMapBtn = m_mapOptBtns.begin();
for (; itMapBtn != m_mapOptBtns.end(); itMapBtn++) {
@ -341,13 +329,6 @@ void LoginOptionsWidget::updateOptionButtons()
itMapBtn.value()->show();
}
}
}
m_mapOptBtns[-1]->hide();
if (m_mapOptBtns.size() == 2 && (isShowUkey || m_mapDevices.contains(LOGINOPT_TYPE_CUSTOM))) {
m_mapOptBtns[-1]->show();
} else if (m_mapOptBtns.size() == 3 && isShowUkey && m_mapDevices.contains(LOGINOPT_TYPE_CUSTOM)) {
m_mapOptBtns[-1]->show();
}
}
void LoginOptionsWidget::setUser(int uid)
@ -572,7 +553,8 @@ void LoginOptionsWidget::onIdentifyComplete(QDBusPendingCallWatcher *watcher)
Q_EMIT authComplete(false, 1);
} else if (ret.opsStatus == OPS_IDENTIFY_STOP_BY_USER || ret.opsStatus == OPS_VERIFY_STOP_BY_USER) {
Q_EMIT authComplete(false, -2); // 主动停止,直接重试
} else if (ret.opsStatus == OPS_OPEN_FAIL
} else if (
ret.opsStatus == OPS_OPEN_FAIL
|| ret.opsStatus == OPS_OPEN_ERROR) { // 无法打开设备(设备是坏的/被占用),直接停止
Q_EMIT authComplete(false, 5);
} else if (ret.opsStatus >= OPS_GET_FLIST_SUCCESS && ret.opsStatus <= OPS_GET_FLIST_MAX) {
@ -959,6 +941,9 @@ QString LoginOptionsWidget::getDefaultDevice(QString strUserName)
if (m_uniauthService && m_uniauthService->isActivatable()) {
QString defaultDeviceName = "";
for (auto bioType : m_listPriority) {
if (bioType == UniT_Remote) {
continue;
}
QString strDeviceName = m_uniauthService->getDefaultDevice(strUserName, bioType);
if (!strDeviceName.isEmpty()) {
DeviceInfoPtr pDeviceInfo = findDeviceByName(strDeviceName);