feat(delay lock & translation): delay lock & translation

Description: 延迟锁屏和翻译更新

Log: 无
This commit is contained in:
yangmin 2023-11-15 22:39:21 +08:00
parent 5639794f91
commit 23fef45b7a
39 changed files with 4121 additions and 432 deletions

View File

@ -2,3 +2,4 @@
greeter-session=ukui-greeter
user-session=ukui
#greeter-setup-script=/usr/lib/ukui-greeter/ukui-greeter-nm-start.sh
enable-autologin-user-lock=false

View File

@ -12,36 +12,222 @@
<context>
<name>AuthDialog</name>
<message>
<location filename="../src/widgets/authdialog.cpp" line="423"/>
<location filename="../src/widgets/authdialog.cpp" line="899"/>
<location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="355"/>
<location filename="../src/widgets/authdialog.cpp" line="356"/>
<location filename="../src/widgets/authdialog.cpp" line="671"/>
<location filename="../src/widgets/authdialog.cpp" line="672"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="394"/>
<location filename="../src/widgets/authdialog.cpp" line="490"/>
<location filename="../src/widgets/authdialog.cpp" line="533"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="495"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="500"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="505"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="510"/>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="515"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="825"/>
<source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="396"/>
<location filename="../src/widgets/authdialog.cpp" line="828"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="489"/>
<location filename="../src/widgets/authdialog.cpp" line="833"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="896"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="973"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1036"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="498"/>
<location filename="../src/widgets/authdialog.cpp" line="1045"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1115"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1342"/>
<location filename="../src/widgets/authdialog.cpp" line="1494"/>
<location filename="../src/widgets/authdialog.cpp" line="1632"/>
<location filename="../src/widgets/authdialog.cpp" line="1809"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1344"/>
<location filename="../src/widgets/authdialog.cpp" line="1496"/>
<location filename="../src/widgets/authdialog.cpp" line="1636"/>
<location filename="../src/widgets/authdialog.cpp" line="1638"/>
<location filename="../src/widgets/authdialog.cpp" line="1811"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1651"/>
<location filename="../src/widgets/authdialog.cpp" line="1655"/>
<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="1666"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1673"/>
<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="1939"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1941"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1943"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1945"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1947"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1949"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1951"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="113"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="115"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="119"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="122"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="36"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="81"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="84"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="87"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="90"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
@ -69,6 +255,124 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LettersWidget</name>
<message>
@ -85,21 +389,88 @@
<context>
<name>LightDMHelper</name>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="98"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="305"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="313"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LockWidget</name>
<message>
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MyNetworkWidget</name>
<message>
@ -129,38 +500,38 @@
<context>
<name>PowerListWidget</name>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="55"/>
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="56"/>
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
<source>Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="68"/>
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="69"/>
<location filename="../src/widgets/powerlistwidget.h" line="82"/>
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
<location filename="../src/widgets/powerlistwidget.h" line="93"/>
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Reboot</source>
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="94"/>
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="95"/>
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
@ -177,6 +548,50 @@
<source>The screensaver is inactive.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="29"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="31"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="33"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="35"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="37"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="39"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="41"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>
@ -186,7 +601,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="1101"/>
<location filename="../src/screensaver/screensaver.cpp" line="1100"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
@ -202,7 +617,7 @@
<context>
<name>delay</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="55"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<source>how long to show lock</source>
<translation type="unfinished"></translation>
</message>
@ -210,7 +625,7 @@
<context>
<name>has-lock</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="58"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="60"/>
<source>if show lock</source>
<translation type="unfinished"></translation>
</message>
@ -218,22 +633,22 @@
<context>
<name>main</name>
<message>
<location filename="../src/screensaver/main.cpp" line="62"/>
<location filename="../src/screensaver/main.cpp" line="63"/>
<source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="66"/>
<location filename="../src/screensaver/main.cpp" line="67"/>
<source>show on root window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="68"/>
<location filename="../src/screensaver/main.cpp" line="69"/>
<source>show on window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="69"/>
<location filename="../src/screensaver/main.cpp" line="70"/>
<source>window id</source>
<translation type="unfinished"></translation>
</message>
@ -244,8 +659,8 @@
</message>
<message>
<location filename="../src/lock-command/main.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="42"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="44"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<source>lock the screen immediately</source>
<translation type="unfinished"></translation>
</message>
@ -270,33 +685,33 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="36"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="38"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<source>activated by session idle signal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="56"/>
<source>show blank screensaver immediately and delay time to show lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
<source>show blank screensaver immediately and if lock</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="498"/>
<location filename="../src/widgets/authdialog.cpp" line="1045"/>
<source>Retry</source>
<translation></translation>
</message>
@ -53,65 +53,135 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
<source>Please try again in %1 minutes.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1115"/>
<source>Please try again in %1 seconds.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>Account locked permanently.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="490"/>
<location filename="../src/widgets/authdialog.cpp" line="533"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="495"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="500"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="505"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="510"/>
<source>Verify iris or enter password to unlock</source>
<translation type="vanished">iris </translation>
<translation>iris </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="396"/>
<location filename="../src/widgets/authdialog.cpp" line="828"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="833"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="896"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="973"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1342"/>
<location filename="../src/widgets/authdialog.cpp" line="1494"/>
<location filename="../src/widgets/authdialog.cpp" line="1632"/>
<location filename="../src/widgets/authdialog.cpp" line="1809"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="vanished">%1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1344"/>
<location filename="../src/widgets/authdialog.cpp" line="1496"/>
<location filename="../src/widgets/authdialog.cpp" line="1636"/>
<location filename="../src/widgets/authdialog.cpp" line="1638"/>
<location filename="../src/widgets/authdialog.cpp" line="1811"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="vanished">%1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1666"/>
<source>Abnormal network</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1673"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1939"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1941"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1943"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1945"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1947"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1949"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1951"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code or enter the password to log in</source>
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="355"/>
<location filename="../src/widgets/authdialog.cpp" line="356"/>
<location filename="../src/widgets/authdialog.cpp" line="671"/>
<location filename="../src/widgets/authdialog.cpp" line="672"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -124,8 +194,10 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1651"/>
<location filename="../src/widgets/authdialog.cpp" line="1655"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="vanished">%1 %2</translation>
<translation>%1 %2</translation>
</message>
<message>
<source>Biometric/code scan authentication failed too many times, please enter the password.</source>
@ -152,13 +224,15 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="423"/>
<location filename="../src/widgets/authdialog.cpp" line="899"/>
<location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Authentication failure, Please try again</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="515"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -169,12 +243,12 @@
<translation type="vanished">USBཡི</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="394"/>
<location filename="../src/widgets/authdialog.cpp" line="825"/>
<source>Password </source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="489"/>
<location filename="../src/widgets/authdialog.cpp" line="1036"/>
<source>Login</source>
<translation></translation>
</message>
@ -199,6 +273,29 @@
<translation type="vanished">%1</translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="113"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="115"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="119"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="122"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioDevices</name>
<message>
@ -267,6 +364,39 @@
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="36"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="81"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="84"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="87"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="90"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -1376,6 +1506,124 @@
<translation type="vanished">WPA &amp; WPA2 </translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IconEdit</name>
<message>
@ -1639,17 +1887,17 @@
<context>
<name>LightDMHelper</name>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="98"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="305"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="313"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
@ -1692,28 +1940,73 @@
<source>WLAN</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
<source>Login Options</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
<source>Password</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
<source>Other</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wechat</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
<source>Identify device removed!</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -1905,38 +2198,38 @@
<context>
<name>PowerListWidget</name>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="55"/>
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="56"/>
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
<source>Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="68"/>
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="69"/>
<location filename="../src/widgets/powerlistwidget.h" line="82"/>
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
<location filename="../src/widgets/powerlistwidget.h" line="93"/>
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="94"/>
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="95"/>
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
@ -2028,6 +2321,50 @@
<source>The screensaver is inactive.</source>
<translation></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="29"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="31"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="33"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="35"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="37"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="39"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="41"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>
@ -2061,7 +2398,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="1101"/>
<location filename="../src/screensaver/screensaver.cpp" line="1100"/>
<source>View</source>
<translation></translation>
</message>
@ -2233,7 +2570,7 @@
<context>
<name>delay</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="55"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<source>how long to show lock</source>
<translation type="unfinished"></translation>
</message>
@ -2241,7 +2578,7 @@
<context>
<name>has-lock</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="58"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="60"/>
<source>if show lock</source>
<translation type="unfinished"></translation>
</message>
@ -2255,8 +2592,8 @@
</message>
<message>
<location filename="../src/lock-command/main.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="42"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="44"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<source>lock the screen immediately</source>
<translation></translation>
</message>
@ -2281,53 +2618,53 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="36"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="38"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<source>activated by session idle signal</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<source>lock the screen and show screensaver immediately</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<source>show screensaver immediately</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="56"/>
<source>show blank screensaver immediately and delay time to show lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
<source>show blank screensaver immediately and if lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="62"/>
<location filename="../src/screensaver/main.cpp" line="63"/>
<source>Screensaver for ukui-screensaver</source>
<translation></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="66"/>
<location filename="../src/screensaver/main.cpp" line="67"/>
<source>show on root window</source>
<translation></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="68"/>
<location filename="../src/screensaver/main.cpp" line="69"/>
<source>show on window.</source>
<translation></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="69"/>
<location filename="../src/screensaver/main.cpp" line="70"/>
<source>window id</source>
<translation></translation>
</message>

View File

@ -62,6 +62,121 @@
<source>Input Password</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>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Huella dactilar</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Iris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Cara</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">Impresión de voz</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -128,6 +243,33 @@
<translation type="obsolete">Nombre del dispositivo:</translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -229,6 +371,101 @@
<translation type="obsolete">Contraseña</translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeyboardWidget</name>
<message>
@ -284,12 +521,56 @@
<source>SwitchUser</source>
<translation type="vanished">Cambiar de usuario</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<source>Password</source>
<translation type="obsolete">Contraseña</translation>
<translation type="unfinished">Contraseña</translation>
</message>
<message>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Huella dactilar</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Iris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Cara</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">Impresión de voz</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -346,10 +627,6 @@
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -358,6 +635,10 @@
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PowerManager</name>
@ -376,6 +657,42 @@
<source>The screensaver is inactive.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Huella dactilar</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Iris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Cara</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">Impresión de voz</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>

View File

@ -62,6 +62,121 @@
<source>Input Password</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>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Empreinte digitale</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Iris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Visage</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -128,6 +243,33 @@
<translation type="obsolete">Nom de l&apos;appareil:</translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -229,6 +371,101 @@
<translation type="obsolete">Mot de passe</translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeyboardWidget</name>
<message>
@ -284,12 +521,56 @@
<source>SwitchUser</source>
<translation type="vanished">Changer d&apos;utilisateur</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<source>Password</source>
<translation type="obsolete">Mot de passe</translation>
<translation type="unfinished">Mot de passe</translation>
</message>
<message>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Empreinte digitale</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Iris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Visage</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -346,10 +627,6 @@
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -358,6 +635,10 @@
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PowerManager</name>
@ -376,6 +657,42 @@
<source>The screensaver is inactive.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Empreinte digitale</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Iris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Visage</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="498"/>
<location filename="../src/widgets/authdialog.cpp" line="1045"/>
<source>Retry</source>
<translation> </translation>
</message>
@ -53,61 +53,135 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
<source>Please try again in %1 minutes.</source>
<translation type="vanished">%1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1115"/>
<source>Please try again in %1 seconds.</source>
<translation type="vanished">%1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>Account locked permanently.</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="490"/>
<location filename="../src/widgets/authdialog.cpp" line="533"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="495"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="500"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="505"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="510"/>
<source>Verify iris or enter password to unlock</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="396"/>
<location filename="../src/widgets/authdialog.cpp" line="828"/>
<source>Input Password</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="833"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="896"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="973"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1342"/>
<location filename="../src/widgets/authdialog.cpp" line="1494"/>
<location filename="../src/widgets/authdialog.cpp" line="1632"/>
<location filename="../src/widgets/authdialog.cpp" line="1809"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="vanished">%1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1344"/>
<location filename="../src/widgets/authdialog.cpp" line="1496"/>
<location filename="../src/widgets/authdialog.cpp" line="1636"/>
<location filename="../src/widgets/authdialog.cpp" line="1638"/>
<location filename="../src/widgets/authdialog.cpp" line="1811"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="vanished">%1/ </translation>
<translation>%1/ </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1666"/>
<source>Abnormal network</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1673"/>
<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="1939"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1941"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1943"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1945"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1947"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1949"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1951"/>
<source>QRCode</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Use the bound wechat scanning code or enter the password to log in</source>
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="355"/>
<location filename="../src/widgets/authdialog.cpp" line="356"/>
<location filename="../src/widgets/authdialog.cpp" line="671"/>
<location filename="../src/widgets/authdialog.cpp" line="672"/>
<source>Password cannot be empty</source>
<translation> </translation>
</message>
@ -120,8 +194,10 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1651"/>
<location filename="../src/widgets/authdialog.cpp" line="1655"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="vanished">%1/ %2 </translation>
<translation>%1/ %2 </translation>
</message>
<message>
<source>Biometric/code scan authentication failed too many times, please enter the password.</source>
@ -148,13 +224,15 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="423"/>
<location filename="../src/widgets/authdialog.cpp" line="899"/>
<location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Authentication failure, Please try again</source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="515"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -165,12 +243,12 @@
<translation type="vanished"> USB </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="394"/>
<location filename="../src/widgets/authdialog.cpp" line="825"/>
<source>Password </source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="489"/>
<location filename="../src/widgets/authdialog.cpp" line="1036"/>
<source>Login</source>
<translation> </translation>
</message>
@ -195,6 +273,29 @@
<translation type="vanished">%1</translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="113"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="115"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="119"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="122"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioDevices</name>
<message>
@ -263,6 +364,39 @@
<translation type="vanished">OK</translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="36"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="81"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"> !</translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="84"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"> !</translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="87"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"> !</translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="90"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"> !</translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -1367,6 +1501,124 @@
<translation type="vanished">WPA WPA2 </translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IconEdit</name>
<message>
@ -1638,17 +1890,17 @@
<context>
<name>LightDMHelper</name>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="98"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="305"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
<source>Login</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="313"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
@ -1691,28 +1943,73 @@
<source>WLAN</source>
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
<source>Login Options</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
<source>Password</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
<source>Other</source>
<translation type="vanished"> </translation>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
<source>QRCode</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Wechat</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
<source>Identify device removed!</source>
<translation type="vanished"> !</translation>
<translation> !</translation>
</message>
</context>
<context>
@ -1904,38 +2201,38 @@
<context>
<name>PowerListWidget</name>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="55"/>
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="56"/>
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
<source>Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="68"/>
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="69"/>
<location filename="../src/widgets/powerlistwidget.h" line="82"/>
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
<location filename="../src/widgets/powerlistwidget.h" line="93"/>
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
<source>Restart</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="94"/>
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="95"/>
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
@ -2027,6 +2324,50 @@
<source>The screensaver is inactive.</source>
<translation> </translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="29"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="31"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="33"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="35"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="37"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="39"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="41"/>
<source>QRCode</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>
@ -2060,7 +2401,7 @@
<translation type="vanished"> </translation>
</message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="1101"/>
<location filename="../src/screensaver/screensaver.cpp" line="1100"/>
<source>View</source>
<translation> </translation>
</message>
@ -2232,7 +2573,7 @@
<context>
<name>delay</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="55"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<source>how long to show lock</source>
<translation> </translation>
</message>
@ -2240,7 +2581,7 @@
<context>
<name>has-lock</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="58"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="60"/>
<source>if show lock</source>
<translation> </translation>
</message>
@ -2254,8 +2595,8 @@
</message>
<message>
<location filename="../src/lock-command/main.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="42"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="44"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<source>lock the screen immediately</source>
<translation> </translation>
</message>
@ -2280,53 +2621,53 @@
<translation> / / </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="36"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="38"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation> </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<source>activated by session idle signal</source>
<translation> </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<source>lock the screen and show screensaver immediately</source>
<translation> </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<source>show screensaver immediately</source>
<translation> </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="56"/>
<source>show blank screensaver immediately and delay time to show lock</source>
<translation> </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
<source>show blank screensaver immediately and if lock</source>
<translation> </translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="62"/>
<location filename="../src/screensaver/main.cpp" line="63"/>
<source>Screensaver for ukui-screensaver</source>
<translation>ukuiscreensaver </translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="66"/>
<location filename="../src/screensaver/main.cpp" line="67"/>
<source>show on root window</source>
<translation> </translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="68"/>
<location filename="../src/screensaver/main.cpp" line="69"/>
<source>show on window.</source>
<translation> </translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="69"/>
<location filename="../src/screensaver/main.cpp" line="70"/>
<source>window id</source>
<translation> id</translation>
</message>

View File

@ -62,6 +62,121 @@
<source>Input Password</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>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Impressão digital</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Íris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Face</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -128,6 +243,33 @@
<translation type="obsolete">Nome do dispositivo:</translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -229,6 +371,101 @@
<translation type="obsolete">Senha</translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeyboardWidget</name>
<message>
@ -284,12 +521,56 @@
<source>SwitchUser</source>
<translation type="vanished">Mudar de utilizador</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<source>Password</source>
<translation type="obsolete">Senha</translation>
<translation type="unfinished">Senha</translation>
</message>
<message>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Impressão digital</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Íris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Face</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -346,10 +627,6 @@
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -358,6 +635,10 @@
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PowerManager</name>
@ -376,6 +657,42 @@
<source>The screensaver is inactive.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Impressão digital</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Íris</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Face</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>

View File

@ -62,6 +62,121 @@
<source>Input Password</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>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">FingerPrint</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Ирис</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Лицо</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">Voiceprint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -128,6 +243,33 @@
<translation type="obsolete">Имя устройства:</translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -229,6 +371,101 @@
<translation type="obsolete">пароль</translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeyboardWidget</name>
<message>
@ -284,12 +521,56 @@
<source>SwitchUser</source>
<translation type="vanished">Сменить пользователя</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<source>Password</source>
<translation type="obsolete">пароль</translation>
<translation type="unfinished">пароль</translation>
</message>
<message>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">FingerPrint</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Ирис</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Лицо</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">Voiceprint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -346,10 +627,6 @@
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -358,6 +635,10 @@
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PowerManager</name>
@ -376,6 +657,42 @@
<source>The screensaver is inactive.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">FingerPrint</translation>
</message>
<message>
<source>FingerVein</source>
<translation type="unfinished">FingerVein</translation>
</message>
<message>
<source>Iris</source>
<translation type="unfinished">Ирис</translation>
</message>
<message>
<source>Face</source>
<translation type="unfinished">Лицо</translation>
</message>
<message>
<source>VoicePrint</source>
<translation type="unfinished">Voiceprint</translation>
</message>
<message>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>

View File

@ -24,7 +24,7 @@
<translation type="obsolete">Parola</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="498"/>
<location filename="../src/widgets/authdialog.cpp" line="1045"/>
<source>Retry</source>
<translation type="unfinished">Yeniden Dene</translation>
</message>
@ -49,31 +49,161 @@
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="423"/>
<location filename="../src/widgets/authdialog.cpp" line="899"/>
<location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="355"/>
<location filename="../src/widgets/authdialog.cpp" line="356"/>
<location filename="../src/widgets/authdialog.cpp" line="671"/>
<location filename="../src/widgets/authdialog.cpp" line="672"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="394"/>
<location filename="../src/widgets/authdialog.cpp" line="490"/>
<location filename="../src/widgets/authdialog.cpp" line="533"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="495"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="500"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="505"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="510"/>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="515"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="825"/>
<source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="396"/>
<location filename="../src/widgets/authdialog.cpp" line="828"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="489"/>
<location filename="../src/widgets/authdialog.cpp" line="833"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="896"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="973"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1036"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1115"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1342"/>
<location filename="../src/widgets/authdialog.cpp" line="1494"/>
<location filename="../src/widgets/authdialog.cpp" line="1632"/>
<location filename="../src/widgets/authdialog.cpp" line="1809"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1344"/>
<location filename="../src/widgets/authdialog.cpp" line="1496"/>
<location filename="../src/widgets/authdialog.cpp" line="1636"/>
<location filename="../src/widgets/authdialog.cpp" line="1638"/>
<location filename="../src/widgets/authdialog.cpp" line="1811"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1651"/>
<location filename="../src/widgets/authdialog.cpp" line="1655"/>
<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="1666"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1673"/>
<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="1939"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1941"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1943"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1945"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1947"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1949"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1951"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Biometric Authentication</source>
<translation type="obsolete">Biyometrik Kimlik Doğrulama</translation>
@ -87,6 +217,29 @@
<translation type="obsolete">Diğer Ayıtlar</translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="113"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="115"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="119"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="122"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioDevices</name>
<message>
@ -155,6 +308,39 @@
<translation type="obsolete">Tamam</translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="36"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="81"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="84"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="87"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="90"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -260,6 +446,124 @@
<translation type="obsolete">Parola</translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IconEdit</name>
<message>
@ -283,17 +587,17 @@
<context>
<name>LightDMHelper</name>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="98"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="305"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="313"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
<source>Guest</source>
<translation type="unfinished">Misafir</translation>
</message>
@ -316,12 +620,69 @@
<source>SwitchUser</source>
<translation type="vanished">Kullanıcı Değiştir</translation>
</message>
<message>
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
<source>Password</source>
<translation type="obsolete">Parola</translation>
<translation type="unfinished">Parola</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -353,38 +714,38 @@
<context>
<name>PowerListWidget</name>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="55"/>
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="56"/>
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
<source>Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="68"/>
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="69"/>
<location filename="../src/widgets/powerlistwidget.h" line="82"/>
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
<location filename="../src/widgets/powerlistwidget.h" line="93"/>
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
<source>Restart</source>
<translation type="unfinished">Yeniden Başlat</translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="94"/>
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
<source>Power Off</source>
<translation type="unfinished">Bilgisayarı Kapat</translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="95"/>
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
@ -444,6 +805,50 @@
<source>The screensaver is inactive.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="29"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="31"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="33"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="35"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="37"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="39"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="41"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>
@ -461,7 +866,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="1101"/>
<location filename="../src/screensaver/screensaver.cpp" line="1100"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
@ -485,7 +890,7 @@
<context>
<name>delay</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="55"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<source>how long to show lock</source>
<translation type="unfinished"></translation>
</message>
@ -493,7 +898,7 @@
<context>
<name>has-lock</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="58"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="60"/>
<source>if show lock</source>
<translation type="unfinished"></translation>
</message>
@ -507,8 +912,8 @@
</message>
<message>
<location filename="../src/lock-command/main.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="42"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="44"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<source>lock the screen immediately</source>
<translation type="unfinished">Ekranı hemen kilitle</translation>
</message>
@ -533,53 +938,53 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="36"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="38"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<source>activated by session idle signal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="56"/>
<source>show blank screensaver immediately and delay time to show lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
<source>show blank screensaver immediately and if lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="62"/>
<location filename="../src/screensaver/main.cpp" line="63"/>
<source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="66"/>
<location filename="../src/screensaver/main.cpp" line="67"/>
<source>show on root window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="68"/>
<location filename="../src/screensaver/main.cpp" line="69"/>
<source>show on window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="69"/>
<location filename="../src/screensaver/main.cpp" line="70"/>
<source>window id</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="498"/>
<location filename="../src/widgets/authdialog.cpp" line="1045"/>
<source>Retry</source>
<translation></translation>
</message>
@ -53,65 +53,135 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
<source>Please try again in %1 minutes.</source>
<translation type="vanished">%1</translation>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1115"/>
<source>Please try again in %1 seconds.</source>
<translation type="vanished">%1</translation>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>Account locked permanently.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="490"/>
<location filename="../src/widgets/authdialog.cpp" line="533"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="495"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="500"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="505"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="510"/>
<source>Verify iris or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="396"/>
<location filename="../src/widgets/authdialog.cpp" line="828"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="833"/>
<source>Username</source>
<translation type="unfinished">:</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="896"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="973"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1342"/>
<location filename="../src/widgets/authdialog.cpp" line="1494"/>
<location filename="../src/widgets/authdialog.cpp" line="1632"/>
<location filename="../src/widgets/authdialog.cpp" line="1809"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="vanished">%1</translation>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1344"/>
<location filename="../src/widgets/authdialog.cpp" line="1496"/>
<location filename="../src/widgets/authdialog.cpp" line="1636"/>
<location filename="../src/widgets/authdialog.cpp" line="1638"/>
<location filename="../src/widgets/authdialog.cpp" line="1811"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="vanished">%1</translation>
<translation>%1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1666"/>
<source>Abnormal network</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1673"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1939"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1941"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1943"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1945"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1947"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1949"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1951"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code or enter the password to log in</source>
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="355"/>
<location filename="../src/widgets/authdialog.cpp" line="356"/>
<location filename="../src/widgets/authdialog.cpp" line="671"/>
<location filename="../src/widgets/authdialog.cpp" line="672"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -124,8 +194,10 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1651"/>
<location filename="../src/widgets/authdialog.cpp" line="1655"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="vanished">%1%2</translation>
<translation>%1%2</translation>
</message>
<message>
<source>Biometric/code scan authentication failed too many times, please enter the password.</source>
@ -152,13 +224,15 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="423"/>
<location filename="../src/widgets/authdialog.cpp" line="899"/>
<location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Authentication failure, Please try again</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="515"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="vanished">使</translation>
<translation>使</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -169,12 +243,12 @@
<translation type="vanished">USB端口</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="394"/>
<location filename="../src/widgets/authdialog.cpp" line="825"/>
<source>Password </source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="489"/>
<location filename="../src/widgets/authdialog.cpp" line="1036"/>
<source>Login</source>
<translation></translation>
</message>
@ -199,6 +273,29 @@
<translation type="vanished">%1</translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="113"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="115"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="119"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="122"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioDevices</name>
<message>
@ -267,6 +364,39 @@
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="36"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="81"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="84"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="87"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="90"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -1367,6 +1497,124 @@
<translation type="obsolete">WPA WPA2 </translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IconEdit</name>
<message>
@ -1619,17 +1867,17 @@
<context>
<name>LightDMHelper</name>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="98"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="305"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="313"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
@ -1666,34 +1914,79 @@
</message>
<message>
<source>LAN</source>
<translation>线</translation>
<translation type="vanished">线</translation>
</message>
<message>
<source>WLAN</source>
<translation>线</translation>
<translation type="vanished">线</translation>
</message>
<message>
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
<source>Login Options</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
<source>Password</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
<source>Other</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wechat</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
<source>Identify device removed!</source>
<translation type="vanished">!</translation>
<translation>!</translation>
</message>
</context>
<context>
@ -1881,38 +2174,38 @@
<context>
<name>PowerListWidget</name>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="55"/>
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="56"/>
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
<source>Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="68"/>
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="69"/>
<location filename="../src/widgets/powerlistwidget.h" line="82"/>
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
<location filename="../src/widgets/powerlistwidget.h" line="93"/>
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="94"/>
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="95"/>
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
@ -2004,6 +2297,50 @@
<source>The screensaver is inactive.</source>
<translation></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="29"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="31"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="33"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="35"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="37"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="39"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="41"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>
@ -2037,7 +2374,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="1101"/>
<location filename="../src/screensaver/screensaver.cpp" line="1100"/>
<source>View</source>
<translation></translation>
</message>
@ -2205,7 +2542,7 @@
<context>
<name>delay</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="55"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<source>how long to show lock</source>
<translation type="unfinished"></translation>
</message>
@ -2213,7 +2550,7 @@
<context>
<name>has-lock</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="58"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="60"/>
<source>if show lock</source>
<translation type="unfinished"></translation>
</message>
@ -2227,8 +2564,8 @@
</message>
<message>
<location filename="../src/lock-command/main.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="42"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="44"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<source>lock the screen immediately</source>
<translation></translation>
</message>
@ -2253,53 +2590,53 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="36"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="38"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<source>activated by session idle signal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="56"/>
<source>show blank screensaver immediately and delay time to show lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
<source>show blank screensaver immediately and if lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="62"/>
<location filename="../src/screensaver/main.cpp" line="63"/>
<source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="66"/>
<location filename="../src/screensaver/main.cpp" line="67"/>
<source>show on root window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="68"/>
<location filename="../src/screensaver/main.cpp" line="69"/>
<source>show on window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="69"/>
<location filename="../src/screensaver/main.cpp" line="70"/>
<source>window id</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="498"/>
<location filename="../src/widgets/authdialog.cpp" line="1045"/>
<source>Retry</source>
<translation></translation>
</message>
@ -53,61 +53,135 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
<source>Please try again in %1 minutes.</source>
<translation type="vanished"> %1 </translation>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1115"/>
<source>Please try again in %1 seconds.</source>
<translation type="vanished"> %1 </translation>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1122"/>
<source>Account locked permanently.</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="490"/>
<location filename="../src/widgets/authdialog.cpp" line="533"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="495"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="500"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="505"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="510"/>
<source>Verify iris or enter password to unlock</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="396"/>
<location filename="../src/widgets/authdialog.cpp" line="828"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="833"/>
<source>Username</source>
<translation type="unfinished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="896"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="973"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1342"/>
<location filename="../src/widgets/authdialog.cpp" line="1494"/>
<location filename="../src/widgets/authdialog.cpp" line="1632"/>
<location filename="../src/widgets/authdialog.cpp" line="1809"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="vanished"> %1 </translation>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1344"/>
<location filename="../src/widgets/authdialog.cpp" line="1496"/>
<location filename="../src/widgets/authdialog.cpp" line="1636"/>
<location filename="../src/widgets/authdialog.cpp" line="1638"/>
<location filename="../src/widgets/authdialog.cpp" line="1811"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="vanished"> %1</translation>
<translation> %1</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1666"/>
<source>Abnormal network</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1673"/>
<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="1939"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1941"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1943"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1945"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1947"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1949"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1951"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use the bound wechat scanning code or enter the password to log in</source>
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="355"/>
<location filename="../src/widgets/authdialog.cpp" line="356"/>
<location filename="../src/widgets/authdialog.cpp" line="671"/>
<location filename="../src/widgets/authdialog.cpp" line="672"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -120,8 +194,10 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="1651"/>
<location filename="../src/widgets/authdialog.cpp" line="1655"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="vanished"> %1 %2 </translation>
<translation> %1 %2 </translation>
</message>
<message>
<source>Biometric/code scan authentication failed too many times, please enter the password.</source>
@ -148,13 +224,15 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="423"/>
<location filename="../src/widgets/authdialog.cpp" line="899"/>
<location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Authentication failure, Please try again</source>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="515"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="vanished">使</translation>
<translation>使</translation>
</message>
<message>
<source>Enter the ukey password</source>
@ -165,12 +243,12 @@
<translation type="vanished"> Ukey USB </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="394"/>
<location filename="../src/widgets/authdialog.cpp" line="825"/>
<source>Password </source>
<translation> </translation>
</message>
<message>
<location filename="../src/widgets/authdialog.cpp" line="489"/>
<location filename="../src/widgets/authdialog.cpp" line="1036"/>
<source>Login</source>
<translation></translation>
</message>
@ -195,6 +273,29 @@
<translation type="vanished">%1</translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="113"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="115"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="119"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/batterywidget.cpp" line="122"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioDevices</name>
<message>
@ -263,6 +364,39 @@
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>BlockWidget</name>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="36"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="81"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="84"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="87"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/blockwidget.cpp" line="90"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CharsMoreWidget</name>
<message>
@ -1367,6 +1501,124 @@
<translation type="vanished">WPA WPA2 </translation>
</message>
</context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IconEdit</name>
<message>
@ -1631,17 +1883,17 @@
<context>
<name>LightDMHelper</name>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="98"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="305"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="313"/>
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
@ -1684,28 +1936,73 @@
<source>WLAN</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
<location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
<source>Login Options</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
<source>Password</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
<source>Other</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wechat</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
<source>Identify device removed!</source>
<translation type="vanished"></translation>
<translation></translation>
</message>
</context>
<context>
@ -1897,38 +2194,38 @@
<context>
<name>PowerListWidget</name>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="55"/>
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="56"/>
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
<source>Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="68"/>
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="69"/>
<location filename="../src/widgets/powerlistwidget.h" line="82"/>
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
<location filename="../src/widgets/powerlistwidget.h" line="93"/>
<source>The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="94"/>
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/powerlistwidget.h" line="95"/>
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
@ -2020,6 +2317,50 @@
<source>The screensaver is inactive.</source>
<translation></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="29"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="31"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="33"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="35"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="37"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="39"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/common/biodefines.cpp" line="41"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>S:</name>
<message>
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context>
<name>Screensaver</name>
@ -2053,7 +2394,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="1101"/>
<location filename="../src/screensaver/screensaver.cpp" line="1100"/>
<source>View</source>
<translation></translation>
</message>
@ -2225,7 +2566,7 @@
<context>
<name>delay</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="55"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<source>how long to show lock</source>
<translation></translation>
</message>
@ -2233,7 +2574,7 @@
<context>
<name>has-lock</name>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="58"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="60"/>
<source>if show lock</source>
<translation></translation>
</message>
@ -2247,8 +2588,8 @@
</message>
<message>
<location filename="../src/lock-command/main.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="42"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="44"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<source>lock the screen immediately</source>
<translation></translation>
</message>
@ -2273,53 +2614,53 @@
<translation>//</translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="36"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="38"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation>ukui </translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="46"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<source>activated by session idle signal</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="48"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<source>lock the screen and show screensaver immediately</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="50"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="52"/>
<source>show screensaver immediately</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="54"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="56"/>
<source>show blank screensaver immediately and delay time to show lock</source>
<translation></translation>
</message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="57"/>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
<source>show blank screensaver immediately and if lock</source>
<translation></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="62"/>
<location filename="../src/screensaver/main.cpp" line="63"/>
<source>Screensaver for ukui-screensaver</source>
<translation>ukui螢幕保護程式的螢幕保護程式</translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="66"/>
<location filename="../src/screensaver/main.cpp" line="67"/>
<source>show on root window</source>
<translation></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="68"/>
<location filename="../src/screensaver/main.cpp" line="69"/>
<source>show on window.</source>
<translation></translation>
</message>
<message>
<location filename="../src/screensaver/main.cpp" line="69"/>
<location filename="../src/screensaver/main.cpp" line="70"/>
<source>window id</source>
<translation></translation>
</message>

View File

@ -207,7 +207,7 @@ enum SessionStatus
#define SSWND_DBUS_PATH "/"
#define SSWND_DBUS_INTERFACE "org.ukui.ScreenSaverWnd"
#define DEFAULT_BACKGROUND_PATH "/usr/share/backgrounds/1-warty-final-ubuntukylin.jpg"
#define DEFAULT_BACKGROUND_PATH "/usr/share/backgrounds/1-openkylin.jpg"
#define G_FONT_SIZE (11.0)
#define DEFAULT_FONT_SIZE (10.0)

View File

@ -45,6 +45,16 @@ bool isGreeterMode()
return (bool)(nIsGreeter);
}
bool isCurUserSelf(QString strUserName)
{
QString username = getenv("USER");
if (username == strUserName) {
return true;
} else {
return false;
}
}
/**
* @brief
*

View File

@ -27,6 +27,13 @@
*/
bool isGreeterMode();
/**
* @brief isCurUserSelf
* @param QString
* @return true false
*/
bool isCurUserSelf(QString strUserName);
/**
* @brief getHostCloudPlatform
* @return

View File

@ -104,3 +104,24 @@ QString AccountServiceHelper::getUserSessionByName(QString strUserName)
}
return strSession;
}
QString AccountServiceHelper::getAccountBackground(uid_t uid)
{
QString strBackground = "";
if(!m_accountsInterface)
return strBackground;
QDBusReply<QDBusObjectPath> userPath = m_accountsInterface->call("FindUserById", (qint64)uid);
if(!userPath.isValid())
qWarning() << "Get UserPath error:" << userPath.error();
else {
QDBusInterface userIface(accountsService, userPath.value().path(),
propertiesInterface, QDBusConnection::systemBus());
QDBusReply<QDBusVariant> backgroundReply = userIface.call("Get", accountsUserInterface, "BackgroundFile");
if(!backgroundReply.isValid())
qWarning() << "Get User's BackgroundFile error" << backgroundReply.error();
else {
strBackground = backgroundReply.value().variant().toString();
}
}
return strBackground;
}

View File

@ -35,6 +35,8 @@ public:
QString getUserSessionByName(QString strUserName);
QString getAccountBackground(uid_t uid);
private:
QDBusInterface *m_accountsInterface = nullptr;
};

View File

@ -55,7 +55,8 @@ void DbusUpperInterface::initData()
{
m_bLockState = false;
m_bSlpState = false;
m_lightDmHelper = new LightDMHelper(this);
m_accountsHelper = new AccountServiceHelper(this);
m_lightDmHelper = new LightDMHelper(m_accountsHelper, this);
m_login1Helper = new Login1Helper(this);
m_config = new Configuration(this);
m_gsettingsHelper = new GSettingsHelper(this);
@ -63,7 +64,6 @@ void DbusUpperInterface::initData()
m_pamAuth = new PamAuthenticate(m_lightDmHelper, this);
m_usdHelper= new UsdHelper(this);
m_upowerHelper = new UpowerHelper(this);
m_accountsHelper = new AccountServiceHelper(this);
m_sessionHelper = new SessionHelper(this);
m_sessionWatcher = new SessionWatcher(m_gsettingsHelper, this);
m_kglobalHelper = new KglobalAccelHelper(this);
@ -142,7 +142,8 @@ bool DbusUpperInterface::GetSlpState()
void DbusUpperInterface::LockStartupMode()
{
if(GetLockState())
return ;
if(m_procLockDialog.state() != QProcess::NotRunning) {
QDBusMessage message;
message = QDBusMessage::createSignal(SS_DBUS_PATH,
@ -150,6 +151,7 @@ void DbusUpperInterface::LockStartupMode()
"SecondRunParam");
message<<"StartupLock";
QDBusConnection::sessionBus().send(message);
emitLockState(true);
return ;
}
@ -179,6 +181,9 @@ bool DbusUpperInterface::GetLockState()
void DbusUpperInterface::Lock()
{
if(GetLockState())
return;
if(m_procLockDialog.state() != QProcess::NotRunning) {
QDBusMessage message;
message = QDBusMessage::createSignal(SS_DBUS_PATH,
@ -186,6 +191,7 @@ void DbusUpperInterface::Lock()
"SecondRunParam");
message<<"CmdLock";
QDBusConnection::sessionBus().send(message);
emitLockState(true);
return ;
}
qDebug() << "Lock requested";
@ -232,6 +238,10 @@ bool DbusUpperInterface::LockByBlank(int nType)
}
if(m_procLockDialog.state() != QProcess::NotRunning) {
if (isNeedLock) {
if(!lockState){
//锁屏状态通过lockState获取如果未锁屏则发送锁屏信号
emitLockState(true);
}
QDBusMessage message;
message = QDBusMessage::createSignal(SS_DBUS_PATH,
SS_DBUS_INTERFACE,
@ -279,6 +289,9 @@ void DbusUpperInterface::SetLockState()
void DbusUpperInterface::onShowBlankScreensaver()
{
if(GetLockState())
return;
if(m_procLockDialog.state() != QProcess::NotRunning) {
QDBusMessage message;
message = QDBusMessage::createSignal(SS_DBUS_PATH,
@ -301,8 +314,10 @@ void DbusUpperInterface::onShowBlankScreensaver()
void DbusUpperInterface::ShowScreensaver()
{
if(m_procLockDialog.state() != QProcess::NotRunning){
if(!lockState){
emitLockState(true);
}
QDBusMessage message;
message = QDBusMessage::createSignal(SS_DBUS_PATH,
SS_DBUS_INTERFACE,
@ -310,7 +325,6 @@ void DbusUpperInterface::ShowScreensaver()
message<<"ScreensaverLock";
QDBusConnection::sessionBus().send(message);
return ;
return ;
}
m_bSlpState = true;
@ -676,7 +690,12 @@ QJsonArray DbusUpperInterface::GenerateUserInfoList()
objUserInfo["fontSize"] = ptr->fontSize();
objUserInfo["timeType"] = ptr->timeType();
objUserInfo["color"] = ptr->color();
}
if (isCurUserSelf(userInfo->name()) && m_gsettingsHelper) {
QString strBackground = m_gsettingsHelper->GetLockScreenConf(KEY_BACKGROUND).toString();
if (!strBackground.isEmpty() && QFile(strBackground).exists()) {
objUserInfo["backGround"] = strBackground;
}
}
jsonArray.append(objUserInfo);
}
@ -928,6 +947,7 @@ void DbusUpperInterface::onLogin1ReqLock()
QJsonObject retObj;
retObj["CmdId"] = LOCK_CMD_ID_LOGIN1_REQ_LOCK;
SendUpdateInfoSig(QString(QJsonDocument(retObj).toJson()));
ShowScreensaver();
}
void DbusUpperInterface::onLogin1ReqUnLock()
@ -1078,23 +1098,27 @@ void DbusUpperInterface::onBatteryChanged(QStringList batteryArgs)
void DbusUpperInterface::onLockScreenConfigChanged(QString strKey, QVariant value)
{
if (strKey == KEY_BACKGROUND) {
onUsersInfoChanged();
}
QJsonObject retObj;
retObj["CmdId"] = LOCK_CMD_ID_GSETTINGS_LOCKSCREEN_CONF_CHANGED;
retObj["Key"] = strKey;
switch (value.type()) {
case QVariant::Bool:
retObj[strKey] = value.toBool();
retObj["Value"] = value.toBool();
break;
case QVariant::Int:
retObj[strKey] = value.toInt();
retObj["Value"] = value.toInt();
break;
case QVariant::String:
retObj[strKey] = value.toString();
retObj["Value"] = value.toString();
break;
case QVariant::UInt:
retObj[strKey] = value.toDouble();
retObj["Value"] = value.toDouble();
break;
case QVariant::Double:
retObj[strKey] = value.toDouble();
retObj["Value"] = value.toDouble();
break;
default:
return;
@ -1822,7 +1846,15 @@ int DbusUpperInterface::PamRespond(const QJsonObject &objInfo)
int nRet = -1;
QVariant varRespond = objInfo.value("Content");
if (varRespond.isValid() && m_pamAuth) {
m_pamAuth->respond(varRespond.toString());
QString strDecrypt = varRespond.toString();
if (!priKey.isEmpty()) {
QByteArray buffer;
QByteArray byteEncrypt = QByteArray::fromBase64(strDecrypt.toLatin1());
if (rsac.decrypt(byteEncrypt, buffer, priKey)) {
strDecrypt = buffer;
}
}
m_pamAuth->respond(strDecrypt);
nRet = 0;
}
return nRet;
@ -2159,7 +2191,11 @@ bool DbusUpperInterface::blockShortcut(const QJsonObject &objInfo)
bool DbusUpperInterface::lockStateChanged(const QJsonObject &objInfo)
{
int nRet = -1;
lockState = objInfo.value("Content").toBool();
bool state = objInfo.value("Content").toBool();
if(lockState != state){
lockState = state;
emitLockState(state);
}
return lockState;
}

View File

@ -307,7 +307,7 @@ void GSettingsHelper::onLockScreenConfigChanged(QString strKey)
} else if (strKey == KEY_LOCK_ENABLED) {
varValue = m_bLockEnable = m_gsLockScreen->get(KEY_LOCK_ENABLED).toBool();
} else if (strKey == KEY_BACKGROUND) {
varValue = m_strBackground = m_gsLockScreen->get(KEY_BACKGROUND).toBool();
varValue = m_strBackground = m_gsLockScreen->get(KEY_BACKGROUND).toString();
} else if (strKey == KEY_MODE) {
varValue = m_saverMode = m_gsLockScreen->get(KEY_MODE).toString();
} else if (strKey == KEY_THEMES) {

View File

@ -22,12 +22,14 @@
#include "securityuser.h"
#include <pwd.h>
#include "proxymodel.h"
#include "accountservicehelper.h"
LightDMHelper::LightDMHelper(QObject *parent)
LightDMHelper::LightDMHelper(AccountServiceHelper *accountHelper, QObject *parent)
: QLightDM::Greeter(parent)
, m_sessionsModel(nullptr)
, m_secUser(SecurityUser::instance())
, m_strCurUserName("")
, m_accountServiceHelper(accountHelper)
{
//连接到lightdm
if(!connectToDaemonSync()){
@ -195,6 +197,8 @@ void LightDMHelper::updateUsersInfo()
if(m_secUser->isSecrityUser(name)) {
std::shared_ptr<UserInfo> userInfoPtr = std::make_shared<UserInfo>();
userInfoPtr->updateName(name);
uid_t uid = m_modelUsers->index(i).data(QLightDM::UsersModel::UidRole).toUInt();
userInfoPtr->updateUid(uid);
QString strRealName = m_modelUsers->index(i).data(QLightDM::UsersModel::RealNameRole).toString();
if (strRealName.isEmpty()) {
strRealName = name;
@ -203,13 +207,18 @@ void LightDMHelper::updateUsersInfo()
QString strBackGround = m_modelUsers->index(i).data(QLightDM::UsersModel::BackgroundPathRole).toString();
if (!strBackGround.isEmpty() && QFileInfo(strBackGround).exists()){
userInfoPtr->updateBackground(strBackGround);
} else {
if (m_accountServiceHelper) {
strBackGround = m_accountServiceHelper->getAccountBackground(uid);
if (!strBackGround.isEmpty() && QFileInfo(strBackGround).exists()){
userInfoPtr->updateBackground(strBackGround);
}
}
}
QString strImgHead = m_modelUsers->index(i).data(QLightDM::UsersModel::ImagePathRole).toString();
if (!strImgHead.isEmpty() && QFileInfo(strImgHead).exists()){
userInfoPtr->updateHeadImage(strImgHead);
}
uid_t uid = m_modelUsers->index(i).data(QLightDM::UsersModel::UidRole).toUInt();
userInfoPtr->updateUid(uid);
bool isLoggedIn = m_modelUsers->index(i).data(QLightDM::UsersModel::LoggedInRole).toBool();
userInfoPtr->updateLoggedIn(isLoggedIn);

View File

@ -28,6 +28,7 @@
class SecurityUser;
class UsersModel;
class AccountServiceHelper;
/**
* @brief lightdm工具类
*
@ -41,7 +42,7 @@ public:
*
* @param parent
*/
explicit LightDMHelper(QObject *parent = nullptr);
explicit LightDMHelper(AccountServiceHelper *accountHelper, QObject *parent = nullptr);
public:
/**
@ -161,6 +162,7 @@ private:
QLightDM::SessionsModel *m_sessionsModel; /**< lightdm 会话数据指针 */
QList<QString> m_listSessions; /**< 会话列表 */
UsersModel *m_modelUsers = nullptr; /**< lightdm 用户数据指针 */
AccountServiceHelper *m_accountServiceHelper = nullptr;
};
#endif // LIGHTDMHELPER_H

View File

@ -996,7 +996,7 @@ void BackendDbusHelper::onUpdateInformation(const QString &strJson)
ParseLogin1SessionActiveChanged(objRes);
}
break;
case LOCK_CMD_ID_GSETTINGS_GET_LOCKSCREEN_CONF:
case LOCK_CMD_ID_GSETTINGS_LOCKSCREEN_CONF_CHANGED:
{
ParseLockScreenConf(objRes);
}
@ -1006,6 +1006,31 @@ void BackendDbusHelper::onUpdateInformation(const QString &strJson)
ParseScreenSaverConf(objRes);
}
break;
case LOCK_CMD_ID_GSETTINGS_POWERMANAGER_CONF_CHANGED:
{
ParsePowerManagerConf(objRes);
}
break;
case LOCK_CMD_ID_GSETTINGS_MATEBG_CONF_CHANGED:
{
ParseMateBgConf(objRes);
}
break;
case LOCK_CMD_ID_GSETTINGS_UKCCPLUGINS_CONF_CHANGED:
{
ParseUkccPluginsConf(objRes);
}
break;
case LOCK_CMD_ID_GSETTINGS_THEMESTYLE_CONF_CHANGED:
{
ParseThemeStyleConf(objRes);
}
break;
case LOCK_CMD_ID_GSETTINGS_SESSION_CONF_CHANGED:
{
ParseSessionConf(objRes);
}
break;
case LOCK_CMD_ID_LOGIN1_LIDSTATE_CHANGED:
{
ParseLidstateChanged(objRes);
@ -2360,14 +2385,13 @@ QString BackendDbusHelper::getPublicEncrypt()
if (objRes.contains("CmdId") && objRes.contains("Ret") && objRes.contains("Content")) {
int nCmdId = objRes.value("CmdId").toInt(-1);
int nRet = objRes.value("Ret").toInt(-1);
QJsonObject object = objRes.value("Content").toObject();
if (nCmdId != LOCK_CMD_ID_GET_PUBLIC_KEY || nRet != 0 || object.isEmpty()) {
qInfo()<<"getAgreementInfo Failed!!";
if (nCmdId != LOCK_CMD_ID_GET_PUBLIC_KEY || nRet != 0 ) {
qInfo()<<"getPublicEncrypt Failed!!";
} else {
publicEncrypt = objRes.value("Content").toString();
}
} else {
qInfo()<<"getAgreementInfo Json is invalid!!";
qInfo()<<"getPublicEncrypt Json is invalid!!";
}
}
}

View File

@ -22,6 +22,8 @@
#include <QFile>
#include <QDir>
#include <QStandardPaths>
#include <QApplication>
#include <QScreen>
#include "utils.h"
#include "definetypes.h"
@ -283,6 +285,20 @@ ScreenSaver *LockDialogModel::getScreensaver()
return saver;
}
double LockDialogModel::getCurFontSize()
{
double defaultFontSize = getDefaultFontSize();
return m_curFontSize - defaultFontSize;
}
double LockDialogModel::getPtToPx()
{
double m_ptTopx = 1.0;
if (QApplication::primaryScreen()->logicalDotsPerInch() > 0)
m_ptTopx = 72/(QApplication::primaryScreen()->logicalDotsPerInch());
return m_ptTopx;
}
QString LockDialogModel::getXScreensaverPath(const QString &theme)
{
/* screensavers-ukui-binaryring => binaryring */
@ -321,6 +337,17 @@ void LockDialogModel::onLockScreenConfChanged(const QString &key, QVariant value
m_imageTSEffect = value.toInt();
} else if (key ==KEY_IMAGE_SWITCH_INTERVAL) {
m_imageSwitchInterval = value.toInt();
} else if (key ==KEY_LOCK_TIMEOUT){
m_lockTimeout = value.toInt();
} else if (key ==KEY_LOCK_ENABLED){
m_lockEnabled = value.toBool();
}
}
void LockDialogModel::onThemeStyleConfChanged(const QString &key, QVariant value)
{
if (key == KEY_SYSTEM_FONT_SIZE) {
m_curFontSize = value.toDouble();
}
}
@ -360,6 +387,16 @@ void LockDialogModel::updateUsdMediaKeys(QString keys, QString value)
}
void LockDialogModel::updateLockEnabled(bool value)
{
m_lockEnabled = value;
}
void LockDialogModel::updateLockTimeout(int value)
{
m_lockTimeout = value;
}
void LockDialogModel::updateScreensaverMode(QString value)
{
m_saverMode = value;

View File

@ -119,6 +119,10 @@ public:
void updateScreensaverImageSwitchInterval(int value);
void updateLockTimeout(int value);
void updateLockEnabled(bool value);
inline QStringList sessionsInfo() { return m_listSessions; }
inline void updateCurSession(const QString &strSession) { m_strCurSession = strSession; }
@ -139,6 +143,8 @@ public:
void updateAgreementInfo(AgreementInfoPtr agreementInfo);
void updateSystemFontSize(double fontSize) { m_curFontSize = fontSize; }
inline AgreementInfoPtr agreementInfo() { return m_agreementInfo;}
inline bool getAgreementWindowShowLoginPrompt() { return m_agreementInfo->showLoginPrompt(); }
@ -180,6 +186,14 @@ public:
inline int getLoggedInUsersCount() { return m_loggedinUsersCount; }
double getCurFontSize();
double getPtToPx();
inline int getLockTimeout() {return m_lockTimeout; }
inline bool getLockEnabled() {return m_lockEnabled; }
public Q_SLOTS:
/**
* @brief
@ -218,6 +232,8 @@ public Q_SLOTS:
void onLockScreenConfChanged(const QString &key, QVariant value);
void onThemeStyleConfChanged(const QString &key, QVariant value);
Q_SIGNALS:
/**
* @brief
@ -377,6 +393,9 @@ private:
QStringList m_sleepLockcheck;
QStringList m_shutdownLockcheck;
int m_loggedinUsersCount = 0;
int m_lockTimeout = 10;
bool m_lockEnabled = true;
double m_curFontSize;
};
#endif // LOCKDIALOGMODEL_H

View File

@ -19,6 +19,7 @@
#include "lockdialogmodel.h"
#include "backenddbushelper.h"
#include "utils.h"
#include "rsac.h"
LockDialogPerformer::LockDialogPerformer(LockDialogModel *model, QObject *parent)
: QObject(parent)
@ -53,6 +54,7 @@ void LockDialogPerformer::initConnections()
connect(m_bdHelper, &BackendDbusHelper::batteryChanged, m_modelLockDialog, &LockDialogModel::batteryChanged);
connect(m_bdHelper, &BackendDbusHelper::SecondRunParam, m_modelLockDialog, &LockDialogModel::onSecondRunParam);
connect(m_bdHelper, &BackendDbusHelper::lockScreenConfChanged, m_modelLockDialog, &LockDialogModel::onLockScreenConfChanged);
connect(m_bdHelper, &BackendDbusHelper::themeStyleConfChanged, m_modelLockDialog, &LockDialogModel::onThemeStyleConfChanged);
// pam signals
connect(m_bdHelper, SIGNAL(pamShowMessage(QString, int)), m_modelLockDialog, SIGNAL(pamShowMessage(QString, int)));
@ -73,7 +75,18 @@ void LockDialogPerformer::initConnections()
connect(m_modelLockDialog, &LockDialogModel::setCurrentSession, m_bdHelper, &BackendDbusHelper::setCurrentSession);
connect(m_modelLockDialog, &LockDialogModel::startSession, m_bdHelper, &BackendDbusHelper::startSession);
connect(m_modelLockDialog, &LockDialogModel::pamAuthenticate, m_bdHelper, &BackendDbusHelper::pamAuthenticate);
connect(m_modelLockDialog, &LockDialogModel::pamRespond, m_bdHelper, &BackendDbusHelper::pamRespond);
connect(m_modelLockDialog, &LockDialogModel::pamRespond, m_bdHelper, [=](const QString &strResponse){
QString strEncrypt = strResponse;
QString strPublicKey = m_bdHelper->getPublicEncrypt();
if (!strPublicKey.isEmpty()) {
QByteArray buffer;
RSAC rsac;
if (rsac.encrypt(strEncrypt.toLatin1(), buffer, strPublicKey.toLatin1())) {
strEncrypt = buffer.toBase64();
}
}
m_bdHelper->pamRespond(strEncrypt);
});
connect(m_modelLockDialog, &LockDialogModel::pamAuthenticateCancel, m_bdHelper, &BackendDbusHelper::pamAuthenticateCancel);
connect(m_modelLockDialog, &LockDialogModel::pamIsInAuthentication, m_bdHelper, &BackendDbusHelper::pamIsInAuthentication);
connect(m_modelLockDialog, &LockDialogModel::pamIsAuthenticated, m_bdHelper, &BackendDbusHelper::pamIsAuthenticated);
@ -127,5 +140,8 @@ void LockDialogPerformer::initData()
m_modelLockDialog->updateSleepLockcheck(m_bdHelper->getSleepLockcheck());
m_modelLockDialog->updateShutdownLockcheck(m_bdHelper->getShutdownLockcheck());
m_modelLockDialog->updateLoggedInUsersCount();
m_modelLockDialog->updateLockTimeout(m_bdHelper->getLockScreenConf(KEY_LOCK_TIMEOUT).toInt());
m_modelLockDialog->updateLockEnabled(m_bdHelper->getLockScreenConf(KEY_LOCK_ENABLED).toBool());
m_modelLockDialog->updateSystemFontSize(m_bdHelper->getThemeStyleConf(KEY_SYSTEM_FONT_SIZE).toDouble());
}

View File

@ -35,6 +35,8 @@ void AuthDialog::initUI()
mainLayout->setAlignment(Qt::AlignCenter);
mainLayout->setSpacing(16);
mainLayout->setContentsMargins(0, 0, 0, 0);
m_curFontSize = m_modelLockDialog->getCurFontSize();
m_ptToPx = m_modelLockDialog->getPtToPx();
// 生物认证提示
m_tipWidget = new QWidget(this);
@ -117,42 +119,60 @@ void AuthDialog::updateAuthSize()
this->layout()->setSpacing(16*scale);
if (m_tipWidget)
m_tipWidget->setFixedSize(this->width(), 40*scale);
if (m_tipWidget)
if (m_headerWidget)
m_headerWidget->setFixedSize(this->width(), 154*scale);
if (m_tipWidget)
if (m_nameWidget)
m_nameWidget->setFixedSize(this->width(), 40*scale);
if (m_tipWidget)
if (m_editWidget)
m_editWidget->setFixedSize(this->width(), 80*scale);
if (m_tipWidget)
if (m_messageWidget)
m_messageWidget->setFixedSize(this->width(), 40*scale);
if (m_tipWidget)
if (m_ukeyPasswdWidget)
m_ukeyPasswdWidget->setFixedSize(this->width(), 80*scale);
if (m_tipWidget)
if (m_widgetLoginOpts)
m_widgetLoginOpts->setFixedSize(this->width(), 104*scale);
if (m_tipWidget)
if (m_labelLoginTypeTip) {
m_labelLoginTypeTip->setFixedSize(m_tipWidget->size());
if (m_tipWidget)
m_labelLoginTypeTip->setFontSize((14 + m_curFontSize)*m_ptToPx);
}
if (m_labelHeadImg)
m_labelHeadImg->setFixedSize(154*scale, 154*scale);
if (m_tipWidget)
if (m_labelFace)
m_labelFace->setFixedSize(154*scale, 154*scale);
if (m_tipWidget)
if (m_labelQRCode)
m_labelQRCode->setFixedSize(154*scale, 154*scale);
if (m_tipWidget)
if (m_labelQRCodeTip)
m_labelQRCodeTip->setFixedSize(22*scale, 22*scale);
if (m_tipWidget)
if (m_labelQRCodeMsg) {
m_labelQRCodeMsg->setFixedHeight(30*scale);
if (m_tipWidget)
m_labelQRCodeMsg->setFontSize((14 + m_curFontSize)*m_ptToPx);
}
if (m_nameLabel) {
m_nameLabel->setFixedSize(this->width(), 40*scale);
if (m_tipWidget)
m_nameLabel->setFontSize((24 + m_curFontSize)*m_ptToPx);
}
if (m_passwordEdit) {
m_passwordEdit->setFixedSize(240*scale, 40*scale);
if (m_tipWidget)
m_passwordEdit->updateUI();
}
if (m_messageLabel) {
m_messageLabel->setFixedSize(this->width(), 40*scale);
if (m_tipWidget)
m_messageLabel->setFontSize((14 + m_curFontSize)*m_ptToPx);
}
if (m_messageButton) {
m_messageButton->setFixedSize(200*scale, 40*scale);
if (m_tipWidget)
QFont font = m_messageButton->font();
font.setPointSize((14 + m_curFontSize)*m_ptToPx);
m_messageButton->setFont(font);
}
if (m_ukeyPasswordEdit) {
m_ukeyPasswordEdit->setFixedSize(240*scale, 40*scale);
if (m_tipWidget)
m_ukeyPasswordEdit->updateUI();
}
if (m_ukeyMessageLabel) {
m_ukeyMessageLabel->setFixedSize(this->width(), 40*scale);
m_ukeyMessageLabel->setFontSize((14 + m_curFontSize)*m_ptToPx);
}
if (bottomListWidget) {
bottomListWidget->setFixedSize(QSize(48*bottomListWidget->count() + bottomListWidget->spacing()*2*bottomListWidget->count(), 64));
bottomListWidget->updateUI();
@ -168,7 +188,7 @@ void AuthDialog::initTipWidget()
QVBoxLayout *tipLayout = new QVBoxLayout(m_tipWidget);
tipLayout->setAlignment(Qt::AlignCenter);
m_labelLoginTypeTip = new KLabel(m_tipWidget);
m_labelLoginTypeTip->setText("测试测试测试测试222222222222222222222222222222222222222222222222222222222222");
m_labelLoginTypeTip->setText("");
m_labelLoginTypeTip->setAlignment(Qt::AlignCenter);
m_labelLoginTypeTip->setFixedSize(m_tipWidget->size());
}
@ -210,7 +230,6 @@ void AuthDialog::initHeaderWidget()
m_labelQRCodeTip->setPixmap(QIcon::fromTheme("dialog-warning").pixmap(QSize(22,22)));
m_labelQRCodeTip->show();
m_labelQRCodeMsg = new KLabel();
m_labelQRCodeMsg->setFontSize(14);
m_labelQRCodeMsg->setStyleSheet("QLabel{background-color:rgba(255,255,255,0);color:rgb(255,0,0)}");
m_labelQRCodeMsg->hide();
layoutQRCode->addWidget(m_labelQRCodeMsg, 0, Qt::AlignHCenter);
@ -225,7 +244,6 @@ void AuthDialog::initNameWidget()
nameLayout->setContentsMargins(0, 0, 0, 0);
m_nameLabel = new KLabel(m_nameWidget);
m_nameLabel->setAlignment(Qt::AlignCenter);
m_nameLabel->setFontSize(22);
}
void AuthDialog::initEditWidget()

View File

@ -248,5 +248,8 @@ private:
bool m_isLockingFlg; //判断当前是否正在锁定倒计时
int m_nCurLockMin; //当前锁定的分钟数
QTimer *m_timerUserUnlock = nullptr;
double m_curFontSize;
double m_ptToPx = 1.0;
};
#endif // AUTHDIALOG_H

View File

@ -33,6 +33,12 @@ void BioButtonListWidget::initConnections()
connect(this, &BioButtonListWidget::currentItemChanged, this, &BioButtonListWidget::onListItemChanged);
}
void BioButtonListWidget::resizeEvent(QResizeEvent *event)
{
updateUI();
}
void BioButtonListWidget::addOptionButton(unsigned uLoginOptType, int nDrvId, QString strDrvName)
{
m_listDriveId.append(nDrvId);
@ -108,6 +114,7 @@ void BioButtonListWidget::updateUI()
QList<StatusButton *> statusButton = this->findChildren<StatusButton *>();
for (auto button : statusButton) {
button->setFixedSize(48*scale, 48*scale);
button->setIconSize(QSize(24*scale, 24*scale));
}
}

View File

@ -31,6 +31,8 @@ Q_SIGNALS:
private:
void initUI();
void initConnections();
protected:
void resizeEvent(QResizeEvent *event);
private:
QList<int> m_listDriveId;

View File

@ -1,13 +1,17 @@
#include "blockwidget.h"
#include "klabel.h"
#include "statusbutton.h"
#include "../lock-dialog/lockdialogmodel.h"
#include <QLabel>
#include <QListView>
#include <QStandardItemModel>
#include <QDebug>
#include <QVBoxLayout>
#include <QHBoxLayout>
BlockWidget::BlockWidget(QWidget* parent) : QWidget(parent)
BlockWidget::BlockWidget(LockDialogModel *model, QWidget* parent)
: QWidget(parent)
, m_modelLockDialog(model)
{
initUi();
setFocusPolicy(Qt::NoFocus);
@ -49,6 +53,10 @@ void BlockWidget::initUi()
mainLayout->addLayout(buttonLayout);
mainLayout->addStretch();
m_curFontSize = m_modelLockDialog->getCurFontSize();
m_ptToPx = m_modelLockDialog->getPtToPx();
m_tipLabel->setFontSize((14 + m_curFontSize)*m_ptToPx);
connect(m_cancelButton, &QPushButton::clicked, this, [&]() { emit cancelButtonclicked(); });
connect(m_confirmButton, &QPushButton::clicked, this, [&]() { emit confirmButtonclicked(); });
}
@ -64,9 +72,9 @@ void BlockWidget::setTips(const QString tips)
m_confirmButton->setStyleSheet("QPushButton{background: rgba(255, 255, 255, 0.2);border-radius: 8px;color: white;}"
"QPushButton:hover{background: rgba(255, 255, 255, 0.4);border-radius: 8px;}"
"QPushButton:pressed {background: rgba(255, 255, 255, 0.3);border-radius: 8px;}");
// sysFont.setPointSize((16 + curFontSize) *m_ptToPx);
// m_confirmButton->setFont(sysFont);
// m_cancelButton->setFont(sysFont);
sysFont.setPointSize((16 + m_curFontSize) *m_ptToPx);
m_confirmButton->setFont(sysFont);
m_cancelButton->setFont(sysFont);
m_confirmButton->show();
m_tipLabel->show();
m_listView->hide();
@ -108,8 +116,8 @@ void BlockWidget::setWarning(QStringList list, int type)
m_listView->verticalScrollMode();
m_listView->setStyleSheet("color:white; background-color: rgba(255,255,255,30%); border-radius: 12px;");
// sysFont.setPointSize((10 + curFontSize) *m_ptToPx);
// m_listView->setFont(sysFont);
sysFont.setPointSize((10 + m_curFontSize) *m_ptToPx);
m_listView->setFont(sysFont);
m_listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_listView->setIconSize(QSize(32,32));
m_listView->setModel(model);
@ -120,7 +128,7 @@ void BlockWidget::setWarning(QStringList list, int type)
m_cancelButton->setStyleSheet("QPushButton{background: rgba(255, 255, 255, 0.2);border-radius: 8px;color: white;}"
"QPushButton:hover{background: rgba(255, 255, 255, 0.4);border-radius: 8px;}"
"QPushButton:pressed {background: rgba(255, 255, 255, 0.3);border-radius: 8px;}");
// sysFont.setPointSize((16 + curFontSize) *m_ptToPx);
// m_cancelButton->setFont(sysFont);
sysFont.setPointSize((16 + m_curFontSize) *m_ptToPx);
m_cancelButton->setFont(sysFont);
}

View File

@ -7,13 +7,14 @@
class KLabel;
class QPushButton;
class QListView;
class LockDialogModel;
class BlockWidget : public QWidget
{
Q_OBJECT
public:
explicit BlockWidget(QWidget *parent = nullptr);
explicit BlockWidget(LockDialogModel *model, QWidget *parent = nullptr);
~BlockWidget();
void setTips(const QString tips);
void setWarning(QStringList list, int type);
@ -28,10 +29,13 @@ private:
QListView *m_listView = nullptr;
QPushButton *m_cancelButton = nullptr;
QPushButton *m_confirmButton = nullptr;
LockDialogModel *m_modelLockDialog = nullptr;
int m_blockType = 0;
bool m_multiUsers = false;
double curFontSize;
double m_curFontSize;
double m_ptToPx = 1.0;
QFont sysFont;
};
#endif // BLOCKWIDGET_H

View File

@ -258,11 +258,14 @@ void FullBackgroundWidget::onShowLock(bool isStartup)
show();
Q_EMIT m_modelLockDialog->setCurrentUser(m_modelLockDialog->defaultUserName());
Q_EMIT m_modelLockDialog->lockStateChanged(true);
if(m_lockWidget)
m_lockWidget->show();
}
void FullBackgroundWidget::onShowSessionIdle()
{
show();
onShowScreensaver();
delayLockScreen();
Q_EMIT m_modelLockDialog->lockStateChanged(true);
}
@ -312,6 +315,55 @@ void FullBackgroundWidget::onClearScreensaver()
widgetXScreensaverList.clear();
unsetCursor();
if(screenStatus == UNDEFINED)
{
closeScreensaver();
}
else
{
onShowLock(false);
}
}
void FullBackgroundWidget::delayLockScreen()
{
qDebug()<<"delayLockScreen"<<m_modelLockDialog->getLockTimeout()<<m_modelLockDialog->getLockEnabled();
if (!m_timerLock) {
m_timerLock = new QTimer(this);
connect(m_timerLock, &QTimer::timeout, this, &FullBackgroundWidget::onLockScreenTimeout);
}
if (m_modelLockDialog->getLockTimeout() != -1 && m_modelLockDialog->getLockEnabled()) {
stopDelayLockScreen();
m_timerLock->start(m_modelLockDialog->getLockTimeout()*1000);
}
}
void FullBackgroundWidget::stopDelayLockScreen()
{
if (m_timerLock && m_timerLock->isActive()) {
m_timerLock->stop();
}
}
void FullBackgroundWidget::onLockScreenTimeout()
{
qDebug()<<"onLockScreenTimeout:"<<m_modelLockDialog->getLockEnabled();
if (m_modelLockDialog->getLockEnabled()) {
screenStatus = (ScreenStatus)(screenStatus | SCREEN_LOCK);
}
m_timerLock->stop();
}
void FullBackgroundWidget::closeScreensaver()
{
hide();
Q_EMIT m_modelLockDialog->lockStateChanged(false);
stopDelayLockScreen();
screenStatus = UNDEFINED;
}
void FullBackgroundWidget::onShowPowerManager()
@ -579,10 +631,7 @@ void FullBackgroundWidget::onCurUserChanged(const QString &strUserName)
void FullBackgroundWidget::onAuthSucceed(QString strUserName)
{
if (getenv("USER") == strUserName) {
this->hide();
if (m_modelLockDialog) {
Q_EMIT m_modelLockDialog->lockStateChanged(false);
}
closeScreensaver();
} else {
if (m_modelLockDialog) {
Q_EMIT m_modelLockDialog->startSession();

View File

@ -116,9 +116,14 @@ private:
bool isOpenGradation();
void startTransition();
void stopTransition();
void drawBackground(QPixmap * backgroundBack, QPixmap * backgroundFront,
const QRect &rect, float alpha);
void delayLockScreen();
void onLockScreenTimeout();
void stopDelayLockScreen();
void closeScreensaver();
private Q_SLOTS:
void onGlobalKeyPress(const quint8 &key);
void onGlobalKeyRelease(const quint8 &key);
@ -143,6 +148,8 @@ private:
ScreenStatus screenStatus = UNDEFINED;
int isBlank;
QTimer *m_timerLock = nullptr;
};
#endif // FULLBACKGROUNDWIDGET_H

View File

@ -208,10 +208,10 @@ void IconEdit::startWaiting()
//这里将QIcon转QPixmap传入(24,24)时实际得到的pixmap大小为(24,24)乘上缩放比例导致计算pixmap位置错误因此需要重新设置一次大小
//更好的解决方案应该是重写IconButton的setIcon函数?直接处理图片大小与icon大小一致?
QPixmap icon = QIcon::fromTheme("ukui-loading-0-symbolic").pixmap(16,16).scaled(16,16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
m_waitingPixmap = getLoadingIcon(16);
// QPixmap icon = QIcon::fromTheme("ukui-loading-0-symbolic").pixmap(16,16).scaled(16,16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
m_waitingPixmap = getLoadingIcon(16*scale);
m_iconButton->setIcon(m_waitingPixmap);
m_iconButton->setIconSize(QSize(16, 16));
m_iconButton->setIconSize(QSize(16*scale, 16*scale));
m_timer->start();
}
@ -224,12 +224,20 @@ void IconEdit::stopWaiting()
m_edit->setReadOnly(false);
if (!m_icon.isNull()) {
m_iconButton->setIcon(m_icon);
m_iconButton->setIconSize(QSize(24, 24));
m_iconButton->setIconSize(QSize(24*scale, 24*scale));
} else {
m_iconButton->setText(m_iconText);
}
}
void IconEdit::updateUI()
{
m_iconButton->setFixedSize(QSize(24*scale, 24*scale));
m_modeButton->setFixedSize(QSize(24*scale, 24*scale));
m_modeButton->setIconSize(QSize(16*scale, 16*scale));
m_capsIcon->setPixmap(QIcon::fromTheme("ukui-capslock-symbolic").pixmap(QSize(16*scale, 16*scale)));
}
void IconEdit::updatePixmap()
{
m_iconButton->setEnabled(true);
@ -238,7 +246,7 @@ void IconEdit::updatePixmap()
matrix.rotate(90.0);
m_waitingPixmap = m_waitingPixmap.transformed(matrix, Qt::FastTransformation);
m_iconButton->setIcon(QIcon(m_waitingPixmap));
m_iconButton->setIconSize(QSize(16, 16));
m_iconButton->setIconSize(QSize(16*scale, 16*scale));
}
void IconEdit::clicked_cb()

View File

@ -31,6 +31,7 @@
#include <QPixmap>
class Configuration;
extern float scale;
class IconEdit : public QWidget
{
Q_OBJECT
@ -48,6 +49,7 @@ public:
void setModeBtnVisible(bool visible);
void startWaiting();
void stopWaiting();
void updateUI();
protected:
void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;

View File

@ -5,20 +5,13 @@
#include <QDesktopWidget>
#include <QDebug>
QWidget * KLabel::m_parentWidget;
KLabel::KLabel(QWidget *parent)
: QLabel(parent)
{
setWindowFlags(Qt::FramelessWindowHint);
//m_strText = "";
sysFont = qApp->font();
m_ptToPx = 1;
//获取当前屏幕尺寸
QDesktopWidget* desktopWidget = QApplication::desktop();
QRect clientRect = desktopWidget->availableGeometry();
desktopWidth = clientRect.width();
desktopHeight = clientRect.height();
this->installEventFilter(this);
QPalette pe;
pe.setColor(QPalette::WindowText,Qt::white);
this->setPalette(pe);
@ -26,7 +19,7 @@ KLabel::KLabel(QWidget *parent)
void KLabel::setFontSize(int fontSize)
{
sysFont.setPointSize(fontSize * m_ptToPx);
sysFont.setPointSize(fontSize);
this->setFont(sysFont);
}
@ -66,46 +59,6 @@ QString KLabel::getElidedText(QFont font,int width,QString strInfo)
return strInfo;
}
bool KLabel::eventFilter(QObject *obj, QEvent *event)
{
// if(event->type() == 110){
// if(QLabel::text() != m_strText) {
// if(QLabel::text().isEmpty())
// return false;
// if(is_Show)//如果KTooltip已经show出来,直接返回
// return false;
// kTooltip = new MyTooltip(m_parentWidget);
// kTooltip->popup(kTooltip, m_strText, 16);
// kTooltip->setStyleSheet(QString("background-color:#FFFFFF; color:black; border-radius: 4px;"));
// int cursorX, cursorY;
// if (kTooltip->width() > QCursor::pos().x()) {
// cursorX = 10;
// } else if (QCursor::pos().x() + kTooltip->width() > desktopWidth) {
// cursorX = QCursor::pos().x() - kTooltip->width() - 5;
// } else {
// cursorX = QCursor::pos().x() + 5;
// }
// if (QCursor::pos().y() + kTooltip->height() > desktopHeight - 20) {
// cursorY = QCursor::pos().y() - kTooltip->height() - 20;
// } else {
// cursorY = QCursor::pos().y() + 20;
// }
// kTooltip->move(cursorX, cursorY);
// kTooltip->show();
// kTooltip->raise();
// is_Show = true;
// }
// } else if (event->type() == 11){
// if(!is_Show){//如果本来没有收到tooltip事件直接返回
// return false;
// }
// kTooltip->tipClose(kTooltip);
// is_Show = false;
// kTooltip = nullptr;
// }
return false;
}
void KLabel::paintEvent(QPaintEvent *event)
{
if (m_strText.isEmpty() && !QLabel::text().isEmpty())

View File

@ -21,19 +21,12 @@ public Q_SLOTS:
void setText(const QString &);
protected:
bool eventFilter(QObject *obj, QEvent *event);
void paintEvent(QPaintEvent *event);
private:
QFont sysFont;
double m_ptToPx = 1.0;
//tooltip
// MyTooltip *kTooltip = nullptr;
bool is_Show = false;
int desktopWidth;
int desktopHeight;
QString m_strText;
};

View File

@ -507,7 +507,7 @@ void LockWidget::initButtonWidget()
void LockWidget::initBlockWidget()
{
m_blockWidget = new BlockWidget(this);
m_blockWidget = new BlockWidget(m_modelLockDialog, this);
m_blockWidget->setGeometry(this->geometry());
m_blockWidget->hide();
connect(m_blockWidget, SIGNAL(cancelButtonclicked()),
@ -542,13 +542,16 @@ void LockWidget::updateBottomButton()
for (auto button : statusButton) {
if (button->getButtonTyoe() == POWERBUTTON) {
button->setFixedSize(130*scale, 130*scale);
button->setIconSize(QSize(130*scale, 130*scale));
} else {
button->setFixedSize(48*scale, 48*scale);
button->setIconSize(QSize(24*scale, 24*scale));
}
}
QList<NetWorkButton *> networkButton = this->findChildren<NetWorkButton *>();
for (auto button : networkButton) {
button->setFixedSize(48*scale, 48*scale);
button->setFixedSize(48*scale, 48*scale);
button->setIconSize(QSize(24*scale, 24*scale));
}
}
@ -741,11 +744,14 @@ void LockWidget::onShowBatteryWidget()
batteryWidget = new BatteryWidget(m_modelLockDialog, this);
batteryWidget->setFixedSize(314, 112);
if (batteryWidget) {
if (m_sessionButton->isHidden()) {
if (m_sessionButton && m_sessionButton->isHidden()) {
batteryWidget->setGeometry(buttonListWidget->x(),
height()- BOTTOM_MARGIN - buttonListWidget->height() - buttonListWidget->spacing() - batteryWidget->height(), 314*scale, 112*scale);
} else {
batteryWidget->setGeometry(buttonListWidget->x() + m_sessionButton->width() + 32,
} else if (m_sessionButton && m_sessionButton->isVisible()) {
batteryWidget->setGeometry(buttonListWidget->x() + m_sessionButton->width() + 8,
height()- BOTTOM_MARGIN - buttonListWidget->height() - buttonListWidget->spacing() - batteryWidget->height(), 314*scale, 112*scale);
} else if (!m_sessionButton) {
batteryWidget->setGeometry(buttonListWidget->x() + 8,
height()- BOTTOM_MARGIN - buttonListWidget->height() - buttonListWidget->spacing() - batteryWidget->height(), 314*scale, 112*scale);
}
}

View File

@ -89,7 +89,7 @@ public:
},
//3.reboot
{
.m_strName = tr("Reboot"),
.m_strName = tr("Restart"),
.m_strToolTip = tr("The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off"),
.m_strIcon = ":/image/assets/reboot.svg",
.m_show_flag = true,

View File

@ -35,7 +35,7 @@ void StatusButton::paintEvent(QPaintEvent *e)
QStyleOptionButton option;
initStyleOption(&option);
if (option.state & QStyle::State_Sunken) {
if (curStatus == NORMAL) {
painter.save();
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::white);
@ -160,6 +160,7 @@ void StatusButton::paintEvent(QPaintEvent *e)
deltaY = pixmapRect.height() - buttonRect.height();
painter.save();
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
painter.translate(deltaX / 2, deltaY / 2);
painter.drawPixmap(pixmapRect, pixmap);
painter.restore();