ukui-screensaver/debian/patches/0019-72-fixbug.patch

9981 lines
470 KiB
Diff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From: =?utf-8?b?5YiY6L+c6bmP?=
<11195448+liuyuanpeng176@user.noreply.gitee.com>
Date: Fri, 23 Feb 2024 08:16:56 +0000
Subject: =?utf-8?q?!72_fixbug_Merge_pull_request_!72_from_=E6=9D=A8?=
=?utf-8?q?=E6=95=8F/openkylin/nile?=
---
i18n_ts/bo.ts | 301 ++++++++++++++-----------
i18n_ts/bo_CN.ts | 247 ++++++++++++---------
i18n_ts/de.ts | 237 +++++++++++---------
i18n_ts/es.ts | 237 +++++++++++---------
i18n_ts/fr.ts | 237 +++++++++++---------
i18n_ts/kk.ts | 239 +++++++++++---------
i18n_ts/ky.ts | 239 +++++++++++---------
i18n_ts/mn.ts | 237 +++++++++++---------
i18n_ts/pt.ts | 175 ++++++++-------
i18n_ts/ru.ts | 175 ++++++++-------
i18n_ts/tr.ts | 319 ++++++++++++++------------
i18n_ts/ug.ts | 239 +++++++++++---------
i18n_ts/zh_CN.ts | 253 ++++++++++++---------
i18n_ts/zh_HK.ts | 237 +++++++++++---------
src/widgets/fullbackgroundwidget.cpp | 418 ++++++++++++++++-------------------
src/widgets/grab-x11.cpp | 202 ++++++++++-------
src/widgets/powerlistwidget.cpp | 66 +++---
src/widgets/powerlistwidget.h | 151 ++++++-------
18 files changed, 2351 insertions(+), 1858 deletions(-)
diff --git a/i18n_ts/bo.ts b/i18n_ts/bo.ts
index a7049f6..e0cfd57 100644
--- a/i18n_ts/bo.ts
+++ b/i18n_ts/bo.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation type="unfinished"></translation>
</message>
@@ -12,169 +12,169 @@
<context>
<name>AuthDialog</name>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
- <source>Authentication failure, Please try again</source>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
+ <source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
- <source>Password cannot be empty</source>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
+ <source>Guest</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<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="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
+ <source>Password cannot be empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
- <source>login</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
- <source>Login</source>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
+ <source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
- <source>Guest</source>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
+ <source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<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="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
@@ -182,22 +182,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -205,36 +209,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
@@ -384,6 +388,25 @@
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>LettersWidget</name>
<message>
@@ -400,17 +423,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
@@ -418,7 +441,7 @@
<context>
<name>LockWidget</name>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -426,58 +449,58 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
@@ -485,12 +508,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
@@ -512,89 +535,101 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
- <source>Power Off</source>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
-</context>
-<context>
- <name>QObject</name>
<message>
- <location filename="../src/lock-command/main.cpp" line="90"/>
- <source>The screensaver is active.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/lock-command/main.cpp" line="92"/>
- <source>The screensaver is inactive.</source>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>QObject</name>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/lock-command/main.cpp" line="90"/>
+ <source>The screensaver is active.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/lock-command/main.cpp" line="92"/>
+ <source>The screensaver is inactive.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>S:</name>
@@ -613,7 +648,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
@@ -629,14 +664,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished"></translation>
</message>
@@ -673,23 +708,13 @@
<context>
<name>main</name>
<message>
- <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="67"/>
- <source>show on root window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/screensaver/main.cpp" line="69"/>
- <source>show on window.</source>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
+ <source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/screensaver/main.cpp" line="70"/>
- <source>window id</source>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
+ <source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -756,13 +781,23 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
- <source>Backend for the ukui ScreenSaver.</source>
+ <location filename="../src/screensaver/main.cpp" line="63"/>
+ <source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
- <source>lock the screen by startup</source>
+ <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="69"/>
+ <source>show on window.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/screensaver/main.cpp" line="70"/>
+ <source>window id</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/i18n_ts/bo_CN.ts b/i18n_ts/bo_CN.ts
index 729ab90..4d95470 100644
--- a/i18n_ts/bo_CN.ts
+++ b/i18n_ts/bo_CN.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>ངས་ཤེས་སོང་།</translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>བསྐྱར་དུ་ཞིབ་བཤེར་བྱ་དགོས།</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>ཁྱོད་ཀྱིས་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>ཁྱོད་ཀྱིས་དུས་ཚོད་སྐར་ཆ་གཅིག་གི་ནང་དུ་ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>དུས་གཏན་དུ་ཟྭ་བརྒྱབ་པའི་རྩིས་ཐོ།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>ངོ་གདོང་ངོས་འཛིན་ལ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>མཛུབ་རིས་མནན་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>སྒྲ་པར་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>མཛུབ་མོའི་ནང་དུ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>iris ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>ནང་འཇུག་གི་གསང་གྲངས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">སྤྱོད་མཁན་གྱི་མིང་།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་ཐབས་བྲལ་བ་དང་། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>རྒྱུན་ལྡན་མིན་པའི་དྲ་</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation>མིའི་གདོང་ལ་དབྱེ་འབྱེད་བྱེད་པར་རེ་སྒུག་བྱེད་དུས་གསང་གྲངས་ཀྱི་སྒོ་ལྕགས་རྒྱག་རོགས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation>མིའི་གདོང་།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation>སྒྲ་རིས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished">བདེ་འཇགས་གསང་ལྡེ་</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">དོན་ཚན་གཉིས་པ།</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>གསང་གྲངས་སྟོང་པ་ཡིན་མི་སྲིད།</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། ཁྱེད་ཚོར་ད་དུང་%2ལ་ཞིབ་བཤེར་བྱེད་པའི་གོ་སྐབས་ཡོད།</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་ན། ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>འབྲེལ་མཐུད་ཀྱི་འཕྲིན་ཕྲན་ཞིབ་བཤེར་ཨང་གྲངས་སམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་པ།</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">བདེ་འཇགས་ཀྱི་གསང་བའི་ལྡེ་མིག་དེ་USBཡི་སྣེ་འདྲེན་དུ་འཇུག་རོགས།</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>གསང་གྲངས། </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>ཐོ་འགོད་བྱེད་པ།</translation>
</message>
@@ -282,24 +282,28 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">གློག་གསོག་བཞིན་པའི་སྒང་རེད།</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">གློག་གིས་བཀང་ཡོད།</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">གློག་ཁུངས་ཀྱི་རྣམ་པ།</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">གློག་སྨན་གྱི་རྣམ་པ།</translation>
</message>
</context>
<context>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">ཕྱིར་འཐེན།</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་ལ་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
</message>
@@ -1669,6 +1673,25 @@
<translation type="vanished">ཚབ་རྟགས་ཐོབ་པ།</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -1898,17 +1921,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">ཐོ་འགོད་བྱེད་པ།</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1952,7 +1975,7 @@
<translation type="vanished">སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ།</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1960,53 +1983,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>ཐོ་འགོད་ཀྱི་བསལ་འདེམས་ཀྱི་དབང་ཆ།</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>གསང་གྲངས།</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>གཞན་དག</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished">བདེ་འཇགས་གསང་ལྡེ་</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">དོན་ཚན་གཉིས་པ།</translation>
</message>
@@ -2015,7 +2038,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>དབྱེ་འབྱེད་སྒྲིག་ཆས་མེད་པར་བཟོ་དགོས།</translation>
</message>
@@ -2030,12 +2053,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">སྐུད་ཡོད་དྲ་བ།</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ།</translation>
</message>
@@ -2210,41 +2233,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">ཧིན་རྡུ་ཉི་ཞི་ཡ།</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">གནས་སྐབས་མཚམས་འཇོག་</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">ཡང་བསྐྱར་འགོ་འཛུགས་</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">ལས་མཚམས་འཇོག</translation>
+ </message>
+ <message>
<source>Power Off</source>
- <translation type="unfinished">གློག་ཆད་པ།</translation>
+ <translation type="obsolete">གློག་ཆད་པ།</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished">བཀོལ་སྤྱོད་ཡོད་ཚད་སྒོ་བརྒྱབ་ནས་གློག་ཀླད་སྒོ་རྒྱག་དགོས།</translation>
</message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">སྤྱོད་སྒོ་ཡོད་ཚད་སྒོ་བརྒྱབ་ནས་གློག་ཀླད་སྒོ་རྒྱག་པ་དང་། དེ་ནས་ཡང་བསྐྱར་གློག་ཀླད་ཀྱི་ཁ་ཕྱེ་བ་རེད།</translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2334,37 +2373,37 @@
<translation>བརྙན་ཤེལ་འདི་ལ་ནུས་པ་མེད།</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished">བདེ་འཇགས་གསང་ལྡེ་</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">དོན་ཚན་གཉིས་པ།</translation>
</message>
@@ -2410,7 +2449,7 @@
<translation type="vanished">ཁྱེད་ཚོར་བརྡ་ཐོ་གསར་པ་ཡོད།</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>ལྟ་ཚུལ།</translation>
</message>
@@ -2526,14 +2565,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">ཐོ་འགོད་བྱེད་པ།</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2709,12 +2748,12 @@
<translation>སྒེའུ་ཁུང་གི་ཐོབ་ཐང་</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/de.ts b/i18n_ts/de.ts
index 89efd18..ae45fdd 100644
--- a/i18n_ts/de.ts
+++ b/i18n_ts/de.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>Ich weiß</translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>Wiederholen</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>Versuchen Sie es in %1 Minuten erneut.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>Bitte versuchen Sie es in %1 Sekunden erneut.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>Das Konto wurde dauerhaft gesperrt.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Überprüfen Sie die Gesichtserkennung oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Drücken Sie den Fingerabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Überprüfen Sie den Stimmabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Überprüfen Sie die Fingervene oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>Überprüfen Sie die Iris oder geben Sie das Passwort ein, um zu entsperren</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>Passwort eingeben</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">Nutzername</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1 konnte nicht verifiziert werden, bitte geben Sie das Kennwort zum Entsperren ein</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1 kann nicht verifiziert werden, bitte geben Sie das Kennwort zum Entsperren ein</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>Ungewöhnliches Netzwerk</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>Das Kennwort darf nicht leer sein.</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1 konnte nicht verifiziert werden, Sie haben immer noch %2 Überprüfungsmöglichkeiten</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>Authentifizierungsfehler, Bitte versuchen Sie es erneut</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Verwenden Sie den gebundenen Wechat-Scan-Code oder geben Sie das Passwort zum Entsperren ein</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">Stecken Sie den Ukey in den USB-Anschluss</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>Passwort </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>Einloggen</translation>
</message>
@@ -282,22 +282,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">Abbrechen</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished">Das folgende Programm wird ausgeführt, um einen Neustart des Systems zu verhindern!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished">Das folgende Programm wird ausgeführt, um das Herunterfahren des Systems zu verhindern!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished">Das folgende Programm wird ausgeführt, um zu verhindern, dass das System angehalten wird!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">Das folgende Programm wird ausgeführt, um zu verhindern, dass das System in den Ruhezustand versetzt wird!</translation>
</message>
@@ -1664,6 +1668,25 @@
<translation type="vanished">Code abrufen</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KylinDBus</name>
<message>
@@ -1894,17 +1917,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">Einloggen</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1948,7 +1971,7 @@
<translation type="vanished">WLAN</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1956,53 +1979,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>Login-Optionen</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>Andere</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2011,7 +2034,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>Gerät identifizieren entfernt!</translation>
</message>
@@ -2026,12 +2049,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">LAN</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">WLAN</translation>
</message>
@@ -2206,41 +2229,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">Überwintern</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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">Schalten Sie Ihren Computer aus, aber die App bleibt geöffnet. Wenn der Computer eingeschaltet ist, kann er in den Zustand zurückversetzt werden, den Sie verlassen haben</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">Aufhängen</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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">Der Computer bleibt eingeschaltet, verbraucht aber weniger Strom. Die App bleibt geöffnet und kann schnell wieder aufwachen und dort weitermachen, wo Sie aufgehört haben</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">Neustarten</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">Herunterfahren</translation>
+ </message>
+ <message>
<source>Power Off</source>
- <translation type="unfinished">Ausschalten</translation>
+ <translation type="obsolete">Ausschalten</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished">Schließen Sie alle Apps, und fahren Sie dann den Computer herunter</translation>
</message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">Schließen Sie alle Apps, schalten Sie den Computer aus und wieder ein</translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2330,37 +2369,37 @@
<translation>Der Bildschirmschoner ist inaktiv.</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2406,7 +2445,7 @@
<translation type="vanished">Sie haben eine neue Benachrichtigung</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>Ansehen</translation>
</message>
@@ -2522,14 +2561,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">Einloggen</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2705,12 +2744,12 @@
<translation>Fenster-ID</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/es.ts b/i18n_ts/es.ts
index d7141cf..b5ef5cc 100644
--- a/i18n_ts/es.ts
+++ b/i18n_ts/es.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>Lo sé</translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>Reintentar</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>Inténtelo de nuevo en %1 minutos.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>Inténtelo de nuevo en %1 segundos.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>Cuenta bloqueada permanentemente.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Verifique el reconocimiento facial o ingrese la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Presione la huella dactilar o ingrese la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Verifica la huella de voz o ingresa la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Verifique la vena del dedo o ingrese la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>Verifique el iris o ingrese la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>Contraseña de entrada</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">Nombre de usuario</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>No se pudo verificar %1, ingrese la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>No se puede verificar %1, ingrese la contraseña para desbloquear</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>Red anormal</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>La contraseña no puede estar vacía</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>No se pudo verificar %1, todavía tiene %2 oportunidades de verificación</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>Error de autenticación, inténtelo de nuevo</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Use el código de escaneo de wechat vinculado o ingrese la contraseña para desbloquear</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">Inserte la ukey en el puerto USB</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>Contraseña </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>Iniciar sesión</translation>
</message>
@@ -282,22 +282,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema se reinicie!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema se apague!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema se suspenda!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema hiberne!</translation>
</message>
@@ -1664,6 +1668,25 @@
<translation type="vanished">Obtener código</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KylinDBus</name>
<message>
@@ -1894,17 +1917,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">Iniciar sesión</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1952,7 +1975,7 @@
<translation type="vanished">WLAN</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1960,53 +1983,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>Opciones de inicio de sesión</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>Otro</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2015,7 +2038,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>¡Identifique el dispositivo eliminado!</translation>
</message>
@@ -2030,12 +2053,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">LAN</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">WLAN</translation>
</message>
@@ -2210,41 +2233,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">Hibernar</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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">Apague su computadora, pero la aplicación permanece abierta. Cuando se enciende la computadora, se puede restaurar al estado en el que la dejó</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">Suspender</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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">El ordenador permanece encendido, pero consume menos energía. La aplicación permanece abierta y puede despertarse rápidamente y volver a donde la dejó</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">Reanudar</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">Apaga</translation>
+ </message>
+ <message>
<source>Power Off</source>
- <translation type="unfinished">Apagar</translation>
+ <translation type="obsolete">Apagar</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished">Cierre todas las aplicaciones y, a continuación, apague el equipo</translation>
</message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">Cierre todas las aplicaciones, apague el equipo y, a continuación, vuelva a encenderlo</translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2334,37 +2373,37 @@
<translation>El protector de pantalla está inactivo.</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished">Ukey</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2410,7 +2449,7 @@
<translation type="vanished">Tienes una nueva notificación</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>Vista</translation>
</message>
@@ -2526,14 +2565,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">Iniciar sesión</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2709,12 +2748,12 @@
<translation>ID de ventana</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/fr.ts b/i18n_ts/fr.ts
index 63b9f5c..f4ae615 100644
--- a/i18n_ts/fr.ts
+++ b/i18n_ts/fr.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>Je sais</translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>Réessayer</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>Veuillez réessayer dans %1 minutes.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>Veuillez réessayer dans %1 secondes.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>Compte verrouillé définitivement.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Vérifier la reconnaissance faciale ou saisir le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Appuyez sur lempreinte digitale ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Vérifier lempreinte vocale ou saisir le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Vérifiez la veine du doigt ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>Vérifiez liris ou entrez le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>Mot de passe dentrée</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">Nom dutilisateur</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>Impossible de vérifier %1, veuillez entrer le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>Impossible de vérifier %1, veuillez entrer le mot de passe pour déverrouiller</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>Réseau anormal</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished">Ukey (en anglais seulement)</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>Le mot de passe ne peut pas être vide</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>Échec de la vérification %1, vous avez encore %2 possibilités de vérification</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>Échec de lauthentification, veuillez réessayer</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Utilisez le code danalyse wechat lié ou entrez le mot de passe pour déverrouiller</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">Insérez lukey dans le port USB</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>Mot de passe </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>Connectez-vous</translation>
</message>
@@ -282,22 +282,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">Annuler</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished">Le programme suivant est en cours dexécution pour empêcher le système de redémarrer !</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished">Le programme suivant est en cours dexécution pour empêcher le système de sarrêter !</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished">Le programme suivant est en cours dexécution pour empêcher le système de se suspendre !</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">Le programme suivant est en cours dexécution pour empêcher le système de hiberner !</translation>
</message>
@@ -1664,6 +1668,25 @@
<translation type="vanished">Obtenir le code</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KylinDBus</name>
<message>
@@ -1894,17 +1917,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">Connectez-vous</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1948,7 +1971,7 @@
<translation type="vanished">Réseau local sans fil (WLAN)</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1956,53 +1979,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>Options de connexion</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>Mot de passe</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>Autre</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished">Ukey (en anglais seulement)</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2011,7 +2034,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>Identifier lappareil supprimé !</translation>
</message>
@@ -2026,12 +2049,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">LAN</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">Réseau local sans fil (WLAN)</translation>
</message>
@@ -2206,41 +2229,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">Hiberner</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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">Éteignez votre ordinateur, mais lapplication reste ouverte. Lorsque lordinateur est allumé, il peut être restauré dans létat que vous avez laissé</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">Suspendre</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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">Lordinateur reste allumé, mais consomme moins dénergie. Lapplication reste ouverte et peut rapidement se réveiller et revenir à lendroit où vous vous étiez arrêté</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">Redémarrer</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">Arrêter</translation>
+ </message>
+ <message>
<source>Power Off</source>
- <translation type="unfinished">Mise hors tension</translation>
+ <translation type="obsolete">Mise hors tension</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished">Fermez toutes les applications, puis éteignez votre ordinateur</translation>
</message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">Fermez toutes les applications, éteignez votre ordinateur, puis rallumez-le</translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2330,37 +2369,37 @@
<translation>Léconomiseur décran est inactif.</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished">Ukey (en anglais seulement)</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2406,7 +2445,7 @@
<translation type="vanished">Vous avez reçu une nouvelle notification</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>Vue</translation>
</message>
@@ -2522,14 +2561,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">Connectez-vous</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2705,12 +2744,12 @@
<translation>ID de la fenêtre</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/kk.ts b/i18n_ts/kk.ts
index 738b367..0c834af 100644
--- a/i18n_ts/kk.ts
+++ b/i18n_ts/kk.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation type="unfinished"></translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>Ретри</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>% 1 минутта қайталап көріңіз.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>% 1 секундта қайталап көріңіз.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>Тіркелгі біржолата құлыпталады.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Бет тануды тексеру немесе құлыптан босату үшін құпия сөзді енгізу</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Құлыптан босату үшін дактилоскопияны басу немесе құпия сөзді енгізу</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Құлыптан босату үшін дауыстық ізді тексеру немесе құпия сөзді енгізу</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Құлыптан босату үшін саусақ көктамырын тексеру немесе құпия сөзді енгізу</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>Құлыптан босату үшін IRIS тексеру немесе құпиясөзді енгізу</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>Құпиясөзді енгізу</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">Пайдаланушы аты</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>% 1 дегенді тексеру мүмкін болмады, құлыптан босату үшін құпия сөзді енгізіңіз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>% 1 дегенді тексеру мүмкін болмады, құлыптан босату үшін құпия сөзді енгізіңіз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>Аномальды желі</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>Құпия сөз бос болмады</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>% 1 дегенді тексеру мүмкін болмады, сізде әлі де% 2 тексеру мүмкіндіктері бар</translation>
</message>
@@ -229,24 +229,24 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>Аутентификация сәтсіздігі, қайталап көріңіз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Байланыстыратын wechat сканерлеу кодын пайдаланыңыз немесе құлыптан босату үшін құпия сөзді енгізіңіз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>Пароль </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>Кіру</translation>
</message>
@@ -274,22 +274,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -365,36 +369,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">Болдырмау</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">Жүйенің жорыққа шығуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
</message>
@@ -1645,6 +1649,25 @@
<translation type="vanished">Кодты алу</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -1874,17 +1897,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">Кіру</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1912,7 +1935,7 @@
<translation type="vanished">Бірнеше пайдаланушы бір уақытта кіргізіледі. Бұл жүйені қайта жүктеу керек пе?</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1920,53 +1943,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>Кіру параметрлері</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>密码</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -1975,7 +1998,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>Құрылғы жойылғанын анықтаңыз!</translation>
</message>
@@ -1990,12 +2013,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">ЛАН</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">WLAN</translation>
</message>
@@ -2170,41 +2193,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">Хибернате</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">Тоқтата тұру</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">Қайта іске қосу</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
- <source>Power Off</source>
- <translation type="unfinished">Power Off</translation>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">Тоқтату</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Power Off</source>
+ <translation type="obsolete">Power Off</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2278,37 +2317,37 @@
<translation>Экрандаушы белсенді емес.</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2354,7 +2393,7 @@
<translation type="vanished">Сізде жаңа хабарландыру бар</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>Көрініс</translation>
</message>
@@ -2470,14 +2509,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">Кіру</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2653,12 +2692,12 @@
<translation>терезе идентифика- ты</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/ky.ts b/i18n_ts/ky.ts
index 2c6c34c..d913128 100644
--- a/i18n_ts/ky.ts
+++ b/i18n_ts/ky.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation type="unfinished"></translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>Ретри</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>%1 мүнөттө кайра аракет кылыңыз.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>%1 секунданын ичинде кайра аракет кылыңыз.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>Эсеп биротоло кулпуланган.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>Беттин таанылышын текшерүү же кулпуну ачуу үчүн сырсөз киргизүү</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>Манжа изин басуу же кулпуну ачуу үчүн сырсөз киргизүү</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>Үн изин текшерүү же сырсөз киргизүү</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>Манжа тамырын текшерүү же кулпуну ачуу үчүн сырсөз киргизүү</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>Ирис текшерүү же кулпусун ачуу үчүн сырсөз киргизүү</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>Сырсөз киргизүү</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">Колдонуучунун аты</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1 текшерүүгө болбоду, кулпусун ачуу үчүн сырсөздү киргизиңиз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1 текшерүүгө болбоду, кулпусун ачуу үчүн сырсөздү киргизиңиз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>Аномалдуу тармак</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>Сырсөз бош болушу мүмкүн эмес</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1 текшерүүгө болбоду, сизде дагы эле %2 текшерүү мүмкүнчүлүктөрү бар</translation>
</message>
@@ -229,24 +229,24 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>Аутентификациянын жетишсиздиги, сураныч, кайрадан аракет кылыңыз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>Чектелген вечат сканерлеу кодын колдонуңуз же сырсөздү ачуу үчүн киргизиңиз</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>Сырсөз </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>Кирүү</translation>
</message>
@@ -274,22 +274,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -365,36 +369,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">Жокко чыгаруу</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">Системанын уктап кетишине жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
</message>
@@ -1645,6 +1649,25 @@
<translation type="vanished">Кодду алуу</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -1874,17 +1897,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">Кирүү</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1912,7 +1935,7 @@
<translation type="vanished">Бир эле учурда бир нече колдонуучулар катталган. Сиз бул системаны кайра жүктөп келет деп ишенесизби?</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1920,53 +1943,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>Кирүү параметрлери</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>密码</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -1975,7 +1998,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>Орнотмо алынып салынганын аныктоо!</translation>
</message>
@@ -1990,12 +2013,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">ЛАН</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">ВЛАН</translation>
</message>
@@ -2170,41 +2193,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">Хибернат</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">Токтотуу</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">Кайра иштетүү</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
- <source>Power Off</source>
- <translation type="unfinished">Электр энергиясын өчүрүү</translation>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">Өчүрүү</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Power Off</source>
+ <translation type="obsolete">Электр энергиясын өчүрүү</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2278,37 +2317,37 @@
<translation>Экран сактагыч активдүү эмес.</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2354,7 +2393,7 @@
<translation type="vanished">Сизде жаңы билдирүү бар</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>Көрүү</translation>
</message>
@@ -2470,14 +2509,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">Кирүү</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2653,12 +2692,12 @@
<translation>терезе идентификату</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/mn.ts b/i18n_ts/mn.ts
index 6db645f..d71b8a4 100644
--- a/i18n_ts/mn.ts
+++ b/i18n_ts/mn.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>ᠪᠢ ᠮᠡᠳᠡᠵᠡᠢ </translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠬᠤ</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>%1 ᠮᠢᠨᠦ᠋ᠲ᠎ᠦᠨ ᠳᠠᠷᠠᠭ᠎ᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>%1 ᠮᠢᠨᠦ᠋ᠲ᠎ᠦᠨ ᠳᠠᠷᠠᠭ᠎ᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>ᠳᠠᠩᠰᠠ ᠨᠢᠭᠡᠨᠳᠡ ᠦᠨᠢᠳᠡ ᠤᠨᠢᠰᠤᠯᠠᠭᠳᠠᠪᠠ᠃</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>ᠨᠢᠭᠤᠷ ᠱᠢᠷᠪᠢᠵᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>ᠬᠤᠷᠤᠭᠤᠨ᠎ᠤ ᠤᠷᠤᠮ ᠳᠠᠷᠤᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>ᠳᠠᠭᠤ᠎ᠪᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>ᠬᠤᠷᠤᠭᠤᠨ᠎ᠤ ᠨᠠᠮᠵᠢᠭᠤᠨ ᠰᠤᠳᠠᠯ᠎ᠢᠶᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>ᠰᠤᠯᠤᠩᠭ᠎ᠠ ᠪᠦᠷᠬᠦᠪᠴᠢ᠎ᠶᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠬᠤ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1ᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1ᠶᠢ/᠎ᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠠᠷᠭ᠎ᠠ ᠦᠬᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>ᠰᠦᠯᠵᠢᠶ᠎ᠡ ᠬᠡᠪ᠎ᠦᠨ ᠪᠤᠰᠤ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠬᠤᠭᠤᠰᠤᠨ ᠪᠠᠢᠵᠤ ᠪᠤᠯᠬᠤ ᠦᠬᠡᠢ</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1ᠶᠢᠨ/᠎ᠦᠨ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠲᠠ ᠪᠠᠰᠠ%2 ᠤᠳᠠᠭᠠᠨ᠎ᠤ ᠳᠤᠷᠱᠢᠬᠤ ᠵᠠᠪᠱᠢᠶᠠᠨ ᠲᠠᠢ</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠭᠠᠷᠠᠢ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>ᠤᠶᠠᠭᠰᠠᠨ ᠸᠢᠴᠠᠲ᠎ᠢᠶᠠᠷ ᠺᠤᠳ᠋ ᠱᠢᠷᠪᠢᠬᠦ᠌ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">ᠠᠮᠤᠷ ᠲᠦᠪᠰᠢᠨ ᠦ ᠨᠢᠭᠤᠴᠠ ᠶᠢ USB ᠦᠵᠦᠭᠦᠷ ᠲᠦ ᠬᠠᠳᠬᠤᠵᠤ ᠣᠷᠣᠭᠠᠷᠠᠢ </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
</message>
@@ -282,22 +282,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨ᠎ᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮ᠎ᠦᠨ ᠢᠴᠡᠬᠡᠯᠡᠬᠦ᠌᠎ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨ᠎ᠠ!</translation>
</message>
@@ -1664,6 +1668,25 @@
<translation type="vanished">ᠪᠠᠳᠤᠯᠠᠬᠤ ᠺᠤᠳ᠋ ᠤᠯᠵᠠᠯᠠᠬᠤ</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -1901,17 +1924,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1955,7 +1978,7 @@
<translation type="vanished">ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨ᠎ᠦ ᠰᠦᠯᠵᠢᠶ᠎ᠡ</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1963,53 +1986,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>ᠨᠡᠪᠳᠡᠷᠡᠬᠦ᠌ ᠰᠤᠩᠭᠤᠯᠳᠠ</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠣᠳ᠋᠎ᠢ᠋ ᠵᠠᠰᠠᠬᠤ</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>ᠪᠤᠰᠤᠳ </translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋</translation>
</message>
@@ -2018,7 +2041,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>ᠬᠠᠷᠭᠤᠭᠤᠯᠵᠤ ᠱᠢᠯᠭᠠᠬᠤ ᠳᠦᠬᠦᠬᠡᠷᠦᠮᠵᠢ᠎ᠶᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠱᠢᠯᠵᠢᠬᠦᠯᠦᠨ ᠬᠠᠰᠤᠪᠠ!</translation>
</message>
@@ -2033,12 +2056,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">ᠤᠳᠠᠰᠤᠳᠤ ᠰᠦᠯᠵᠢᠶ᠎ᠡ</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨ᠎ᠦ ᠰᠦᠯᠵᠢᠶ᠎ᠡ</translation>
</message>
@@ -2213,41 +2236,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">ᠢᠴᠡᠬᠡᠯᠡᠬᠦ᠌</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">ᠤᠨᠳᠠᠬᠤ</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">ᠳᠠᠬᠢᠵᠤ ᠡᠬᠢᠯᠡᠬᠦᠯᠬᠦ᠌</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
- <source>Power Off</source>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
<translation type="unfinished">ᠬᠠᠭᠠᠬᠤ</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Power Off</source>
+ <translation type="obsolete">ᠬᠠᠭᠠᠬᠤ</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">ᠪᠤᠢ ᠪᠥᠬᠥᠢ ᠬᠡᠷᠡᠭ᠍ᠯᠡᠭᠡ ᠶᠢ ᠬᠠᠭᠠᠵᠤ ᠂ ᠺᠣᠮᠫᠢᠦ᠋ᠲ᠋ᠧᠷ ᠢ ᠬᠠᠭᠠᠵᠤ ᠂ ᠳᠠᠷᠠᠭ᠎ᠠ ᠨᠢ ᠺᠣᠮᠫᠢᠦ᠋ᠲ᠋ᠧᠷ ᠢ ᠳᠠᠬᠢᠨ ᠨᠡᠭᠡᠭᠡᠨ᠎ᠡ </translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2337,37 +2376,37 @@
<translation>ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠠᠷᠦᠭᠷᠡᠮ᠎ᠢ ᠢᠳᠡᠪᠬᠢᠵᠢᠬᠦᠯᠦᠬᠡ ᠦᠬᠡᠢ </translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋</translation>
</message>
@@ -2413,7 +2452,7 @@
<translation type="vanished">ᠲᠠ ᠱᠢᠨ᠎ᠡ ᠮᠡᠳᠡᠭᠳᠡᠯ ᠤᠯᠤᠭᠰᠠᠨ</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>ᠬᠡᠪ ᠦᠵᠡᠬᠦ᠌</translation>
</message>
@@ -2529,14 +2568,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2712,12 +2751,12 @@
<translation>ᠴᠣᠩᠬᠣᠨ᠎ᠤ᠋ id</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/pt.ts b/i18n_ts/pt.ts
index 37d4686..d4844df 100644
--- a/i18n_ts/pt.ts
+++ b/i18n_ts/pt.ts
@@ -43,24 +43,28 @@
<translation type="vanished">Senha incorreta, por favor tente novamente</translation>
</message>
<message>
- <source>Authentication failure, Please try again</source>
- <translation type="unfinished"></translation>
+ <source>FingerPrint</source>
+ <translation type="unfinished">Impressão digital</translation>
</message>
<message>
- <source>Please try again in %1 minutes.</source>
- <translation type="unfinished"></translation>
+ <source>FingerVein</source>
+ <translation type="unfinished">FingerVein</translation>
</message>
<message>
- <source>Please try again in %1 seconds.</source>
- <translation type="unfinished"></translation>
+ <source>Iris</source>
+ <translation type="unfinished">Íris</translation>
</message>
<message>
- <source>Account locked permanently.</source>
- <translation type="unfinished"></translation>
+ <source>Face</source>
+ <translation type="unfinished">Face</translation>
</message>
<message>
- <source>Password cannot be empty</source>
- <translation type="unfinished"></translation>
+ <source>VoicePrint</source>
+ <translation type="unfinished">VoicePrint</translation>
+ </message>
+ <message>
+ <source>Guest</source>
+ <translation type="unfinished">Convidado</translation>
</message>
<message>
<source>Login</source>
@@ -87,68 +91,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Failed to verify %1, you still have %2 verification opportunities</source>
+ <source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Use the bound wechat scanning code or enter the password to unlock</source>
+ <source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Failed to verify %1, please enter password to unlock</source>
+ <source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unable to verify %1, please enter password to unlock</source>
+ <source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Input Password</source>
+ <source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Abnormal network</source>
+ <source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Password </source>
+ <source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Username</source>
+ <source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>User name input error!</source>
+ <source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>login</source>
+ <source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
+ <source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>FingerPrint</source>
- <translation type="unfinished">Impressão digital</translation>
+ <source>Failed to verify %1, please enter password to unlock</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>FingerVein</source>
- <translation type="unfinished">FingerVein</translation>
+ <source>Unable to verify %1, please enter password to unlock</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Iris</source>
- <translation type="unfinished">Íris</translation>
+ <source>Failed to verify %1, you still have %2 verification opportunities</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Face</source>
- <translation type="unfinished">Face</translation>
+ <source>Abnormal network</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>VoicePrint</source>
- <translation type="unfinished">VoicePrint</translation>
+ <source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ukey</source>
@@ -158,10 +162,6 @@
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Guest</source>
- <translation type="unfinished">Convidado</translation>
- </message>
</context>
<context>
<name>BatteryWidget</name>
@@ -470,6 +470,21 @@
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -490,6 +505,10 @@
</context>
<context>
<name>LightDMHelper</name>
+ <message>
+ <source>Guest</source>
+ <translation type="unfinished">Convidado</translation>
+ </message>
<message>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
@@ -498,10 +517,6 @@
<source>Login</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Guest</source>
- <translation type="unfinished">Convidado</translation>
- </message>
</context>
<context>
<name>LockWidget</name>
@@ -532,22 +547,10 @@
</context>
<context>
<name>LoginOptionsWidget</name>
- <message>
- <source>Login Options</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>Password</source>
<translation type="unfinished">Senha</translation>
</message>
- <message>
- <source>Identify device removed!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Other</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Impressão digital</translation>
@@ -568,6 +571,18 @@
<source>VoicePrint</source>
<translation type="unfinished">VoicePrint</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>Ukey</source>
<translation type="unfinished"></translation>
@@ -636,13 +651,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Power Off</source>
+ <source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -653,14 +672,6 @@
</context>
<context>
<name>QObject</name>
- <message>
- <source>The screensaver is active.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The screensaver is inactive.</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">Impressão digital</translation>
@@ -689,6 +700,14 @@
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>The screensaver is active.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The screensaver is inactive.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>S:</name>
@@ -729,14 +748,14 @@
</context>
<context>
<name>UserListWidget</name>
- <message>
- <source>Login</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>Guest</source>
<translation type="unfinished">Convidado</translation>
</message>
+ <message>
+ <source>Login</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Widget</name>
@@ -782,59 +801,59 @@
<translation>ativado por sinal ocioso de sessão</translation>
</message>
<message>
- <source>Screensaver for ukui-screensaver</source>
+ <source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show on root window</source>
+ <source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show on window.</source>
+ <source>query the status of the screen saver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>window id</source>
+ <source>unlock the screen saver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>query the status of the screen saver</source>
+ <source>show the screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>lock the screen and show screensaver immediately</source>
+ <source>show blank and delay to lock,param:idle/lid/lowpower</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>unlock the screen saver</source>
+ <source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show the screensaver</source>
+ <source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show screensaver immediately</source>
+ <source>show blank screensaver immediately and delay time to show lock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show blank and delay to lock,param:idle/lid/lowpower</source>
+ <source>show blank screensaver immediately and if lock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show blank screensaver immediately and delay time to show lock</source>
+ <source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show blank screensaver immediately and if lock</source>
+ <source>show on root window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Backend for the ukui ScreenSaver.</source>
+ <source>show on window.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>lock the screen by startup</source>
+ <source>window id</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/i18n_ts/ru.ts b/i18n_ts/ru.ts
index ad5ee8b..727d0b5 100644
--- a/i18n_ts/ru.ts
+++ b/i18n_ts/ru.ts
@@ -43,24 +43,28 @@
<translation type="vanished">Пароль неверен, повторите попытку</translation>
</message>
<message>
- <source>Authentication failure, Please try again</source>
- <translation type="unfinished"></translation>
+ <source>FingerPrint</source>
+ <translation type="unfinished">FingerPrint</translation>
</message>
<message>
- <source>Please try again in %1 minutes.</source>
- <translation type="unfinished"></translation>
+ <source>FingerVein</source>
+ <translation type="unfinished">FingerVein</translation>
</message>
<message>
- <source>Please try again in %1 seconds.</source>
- <translation type="unfinished"></translation>
+ <source>Iris</source>
+ <translation type="unfinished">Ирис</translation>
</message>
<message>
- <source>Account locked permanently.</source>
- <translation type="unfinished"></translation>
+ <source>Face</source>
+ <translation type="unfinished">Лицо</translation>
</message>
<message>
- <source>Password cannot be empty</source>
- <translation type="unfinished"></translation>
+ <source>VoicePrint</source>
+ <translation type="unfinished">Voiceprint</translation>
+ </message>
+ <message>
+ <source>Guest</source>
+ <translation type="unfinished">гость</translation>
</message>
<message>
<source>Login</source>
@@ -87,68 +91,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Failed to verify %1, you still have %2 verification opportunities</source>
+ <source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Use the bound wechat scanning code or enter the password to unlock</source>
+ <source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Failed to verify %1, please enter password to unlock</source>
+ <source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unable to verify %1, please enter password to unlock</source>
+ <source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Input Password</source>
+ <source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Abnormal network</source>
+ <source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Password </source>
+ <source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Username</source>
+ <source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>User name input error!</source>
+ <source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>login</source>
+ <source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
+ <source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>FingerPrint</source>
- <translation type="unfinished">FingerPrint</translation>
+ <source>Failed to verify %1, please enter password to unlock</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>FingerVein</source>
- <translation type="unfinished">FingerVein</translation>
+ <source>Unable to verify %1, please enter password to unlock</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Iris</source>
- <translation type="unfinished">Ирис</translation>
+ <source>Failed to verify %1, you still have %2 verification opportunities</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Face</source>
- <translation type="unfinished">Лицо</translation>
+ <source>Abnormal network</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>VoicePrint</source>
- <translation type="unfinished">Voiceprint</translation>
+ <source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ukey</source>
@@ -158,10 +162,6 @@
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Guest</source>
- <translation type="unfinished">гость</translation>
- </message>
</context>
<context>
<name>BatteryWidget</name>
@@ -470,6 +470,21 @@
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -490,6 +505,10 @@
</context>
<context>
<name>LightDMHelper</name>
+ <message>
+ <source>Guest</source>
+ <translation type="unfinished">гость</translation>
+ </message>
<message>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
@@ -498,10 +517,6 @@
<source>Login</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Guest</source>
- <translation type="unfinished">гость</translation>
- </message>
</context>
<context>
<name>LockWidget</name>
@@ -532,22 +547,10 @@
</context>
<context>
<name>LoginOptionsWidget</name>
- <message>
- <source>Login Options</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>Password</source>
<translation type="unfinished">пароль</translation>
</message>
- <message>
- <source>Identify device removed!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Other</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">FingerPrint</translation>
@@ -568,6 +571,18 @@
<source>VoicePrint</source>
<translation type="unfinished">Voiceprint</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>Ukey</source>
<translation type="unfinished"></translation>
@@ -636,13 +651,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Power Off</source>
+ <source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -653,14 +672,6 @@
</context>
<context>
<name>QObject</name>
- <message>
- <source>The screensaver is active.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The screensaver is inactive.</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>FingerPrint</source>
<translation type="unfinished">FingerPrint</translation>
@@ -689,6 +700,14 @@
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>The screensaver is active.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The screensaver is inactive.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>S:</name>
@@ -729,14 +748,14 @@
</context>
<context>
<name>UserListWidget</name>
- <message>
- <source>Login</source>
- <translation type="unfinished"></translation>
- </message>
<message>
<source>Guest</source>
<translation type="unfinished">гость</translation>
</message>
+ <message>
+ <source>Login</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Widget</name>
@@ -782,59 +801,59 @@
<translation>активируется сигналом холостого хода</translation>
</message>
<message>
- <source>Screensaver for ukui-screensaver</source>
+ <source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show on root window</source>
+ <source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show on window.</source>
+ <source>query the status of the screen saver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>window id</source>
+ <source>unlock the screen saver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>query the status of the screen saver</source>
+ <source>show the screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>lock the screen and show screensaver immediately</source>
+ <source>show blank and delay to lock,param:idle/lid/lowpower</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>unlock the screen saver</source>
+ <source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show the screensaver</source>
+ <source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show screensaver immediately</source>
+ <source>show blank screensaver immediately and delay time to show lock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show blank and delay to lock,param:idle/lid/lowpower</source>
+ <source>show blank screensaver immediately and if lock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show blank screensaver immediately and delay time to show lock</source>
+ <source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>show blank screensaver immediately and if lock</source>
+ <source>show on root window</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Backend for the ukui ScreenSaver.</source>
+ <source>show on window.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>lock the screen by startup</source>
+ <source>window id</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/i18n_ts/tr.ts b/i18n_ts/tr.ts
index eaed354..3bb0040 100644
--- a/i18n_ts/tr.ts
+++ b/i18n_ts/tr.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation type="unfinished"></translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">Parola</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation type="unfinished">Yeniden Dene</translation>
</message>
@@ -49,164 +49,164 @@
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
- <source>Authentication failure, Please try again</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
- <source>Please try again in %1 minutes.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
- <source>Please try again in %1 seconds.</source>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
+ <source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
- <source>Account locked permanently.</source>
- <translation type="unfinished"></translation>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
+ <source>Guest</source>
+ <translation type="unfinished">Misafir</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<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="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
+ <source>Authentication failure, Please try again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
- <source>Login</source>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
+ <source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
- <source>Guest</source>
- <translation type="unfinished">Misafir</translation>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
+ <source>Please try again in %1 seconds.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
+ <source>Account locked permanently.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<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="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
@@ -226,22 +226,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -317,36 +321,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
@@ -582,6 +586,25 @@
<translation type="obsolete">Tamam</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>LettersWidget</name>
<message>
@@ -598,17 +621,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">Misafir</translation>
</message>
@@ -632,7 +655,7 @@
<translation type="vanished">Kullanıcı Değiştir</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -640,58 +663,58 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation type="unfinished">Parola</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
@@ -699,12 +722,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
@@ -726,41 +749,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">Yeniden Başlat</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
- <source>Power Off</source>
- <translation type="unfinished">Bilgisayarı Kapat</translation>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Power Off</source>
+ <translation type="obsolete">Bilgisayarı Kapat</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -808,50 +847,50 @@
<context>
<name>QObject</name>
<message>
- <location filename="../src/lock-command/main.cpp" line="90"/>
- <source>The screensaver is active.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/lock-command/main.cpp" line="92"/>
- <source>The screensaver is inactive.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/lock-command/main.cpp" line="90"/>
+ <source>The screensaver is active.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/lock-command/main.cpp" line="92"/>
+ <source>The screensaver is inactive.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>S:</name>
@@ -872,24 +911,24 @@
<source>exit</source>
<translation type="obsolete">çıkış</translation>
</message>
+ <message>
+ <source>Set as desktop wallpaper</source>
+ <translation type="obsolete">Masaüstü arkaplanı olarak ayarla</translation>
+ </message>
+ <message>
+ <source>Automatic switching</source>
+ <translation type="obsolete">Otomatik değiştir</translation>
+ </message>
<message>
<location filename="../src/screensaver/screensaver.cpp" line="132"/>
<source>Picture does not exist</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Set as desktop wallpaper</source>
- <translation type="obsolete">Masaüstü arkaplanı olarak ayarla</translation>
- </message>
- <message>
- <source>Automatic switching</source>
- <translation type="obsolete">Otomatik değiştir</translation>
- </message>
</context>
<context>
<name>SleepTime</name>
@@ -902,14 +941,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">Misafir</translation>
</message>
@@ -977,6 +1016,16 @@
<source>show blank and delay to lock,param:idle/lid/lowpower</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
+ <source>Backend for the ukui ScreenSaver.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
+ <source>lock the screen by startup</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="40"/>
<source>Dialog for the ukui ScreenSaver.</source>
@@ -1028,15 +1077,5 @@
<source>window id</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
- <source>Backend for the ukui ScreenSaver.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
- <source>lock the screen by startup</source>
- <translation type="unfinished"></translation>
- </message>
</context>
</TS>
diff --git a/i18n_ts/ug.ts b/i18n_ts/ug.ts
index 79732f2..f0bc847 100644
--- a/i18n_ts/ug.ts
+++ b/i18n_ts/ug.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation type="unfinished"></translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>قايتا قايتا تىرشىش</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>٪1 مىنۇت ئىچىدە قايتا سىناپ بېقىڭ.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>٪1 سېكۇنت ئىچىدە قايتا سىناپ بېقىڭ.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>ھېسابات مەڭگۈلۈك قۇلۇپلىنىدۇ.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>چىراي تونۇشنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>بارماق ئىزىنى بېسىش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>ئاۋاز ئىزىنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>بارماق تومۇرىنى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>Iris نى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>ئىم كىرگۈزۈش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">ئىشلەتكۈچى نامى</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>٪1 نى دەلىللەش مەغلۇپ بولدى، مەخپى نۇمۇر كىرگۈزۈڭ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>٪1 نى دەلىللەشكە ئامالسىز، مەخپىي نومۇرنى كىرگۈزۈپ قۇلۇپنى ئاچ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>بىنورمال تور</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>مەخپىي نومۇرنى بوش قويۇشقا بولمايدۇ</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>٪1 نى دەلىللەش مەغلۇپ بولدى، سىزدە يەنىلا ٪2 دەلىللەش پۇرسىتى بار</translation>
</message>
@@ -229,24 +229,24 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>دەلىللەش مەغلۇپ بولدى، قايتا سىناپ بېقىڭ</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>باغلانغان ئۈندىدارنى سىكاننېرلاش كودى ياكى مەخپىي نومۇرىنى كىرگۈزۈپ قۇلۇپ ئېچىش</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>ئىم </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>كىرىش</translation>
</message>
@@ -274,22 +274,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
@@ -365,36 +369,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">ئەمەلدىن قالدۇرۇش</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">سېستىمىنىڭ تىزگىنلەپ قېلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا بولىۋاتىدۇ!</translation>
</message>
@@ -1645,6 +1649,25 @@
<translation type="vanished">كود ئېلىش</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KeyboardWidget</name>
<message>
@@ -1874,17 +1897,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">كىرىش</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1912,7 +1935,7 @@
<translation type="vanished">بىرلا ۋاقىتتا كۆپ ئابونت تىزىملىتىپ كىرىدۇ. سىز بۇ سىستېمىنى قايتىدىن قوزغىماقچى ئىكەنلىكىڭىزنى جەزىملەشتۈرەلەمسىز؟</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1920,53 +1943,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>كىرىش تاللانمىلىرى</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>密码</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -1975,7 +1998,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>ئۈسكۈنىنى پەرقلەندۈرۈڭ!</translation>
</message>
@@ -1990,12 +2013,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">LAN</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">WLAN</translation>
</message>
@@ -2170,41 +2193,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">Hibernate</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">توختىتىپ قويۇش</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">قايتا قوزغىتىش</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
- <source>Power Off</source>
- <translation type="unfinished">توكسىز</translation>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">تاقىۋەت</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Power Off</source>
+ <translation type="obsolete">توكسىز</translation>
+ </message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2278,37 +2317,37 @@
<translation>ئېكران ئېكرانى ھەرىكەتسىز.</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">QRCode</translation>
</message>
@@ -2354,7 +2393,7 @@
<translation type="vanished">سىزدە يېڭى ئۇقتۇرۇش بار</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>كۆرۈش</translation>
</message>
@@ -2470,14 +2509,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">كىرىش</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2653,12 +2692,12 @@
<translation>كۆزنەك id</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/i18n_ts/zh_CN.ts b/i18n_ts/zh_CN.ts
index 888064f..4778213 100644
--- a/i18n_ts/zh_CN.ts
+++ b/i18n_ts/zh_CN.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>我已知晓</translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>重试</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>请%1分钟后再试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>请%1秒后再试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>账号已被永久锁定</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>验证人脸识别或输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation>游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>按压指纹或输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>验证声纹或输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>验证指静脉或输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>验证虹膜或输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>输入密码</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation>用户名:</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation>用户名输入错误</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation>登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>验证%1失败请输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>无法验证%1请输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>网络异常</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
<translation>人脸识别等待超时,请点击刷新或输入密码解锁</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation>指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation>指静脉</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation>虹膜</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation>人脸识别</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation>声纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation>安全密钥</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation>二维码</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>密码不能为空</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>验证%1失败您还有%2次尝试机会</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>认证失败,请重试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>使用绑定的微信扫码或输入密码解锁</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">请将安全密钥插入USB端口</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>密码 </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>登录</translation>
</message>
@@ -282,22 +282,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation>正在充电...</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation>已充满电</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation>电源模式</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation>电池模式</translation>
</message>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation>确认</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation>以下程序正在运行,阻止系统重启!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation>以下程序正在运行,阻止系统关机!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation>以下程序正在运行,阻止系统进入睡眠!</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation>以下程序正在运行,阻止系统进入休眠!</translation>
</message>
@@ -1660,6 +1664,25 @@
<translation type="vanished">获取验证码</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KylinDBus</name>
<message>
@@ -1878,17 +1901,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation>启动会话失败。</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation>登录</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation>游客</translation>
</message>
@@ -1932,7 +1955,7 @@
<translation type="vanished">无线局域网</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
<translation>同时有多个用户处于登录状态,你确定要%1吗?</translation>
</message>
@@ -1940,53 +1963,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>登录选项</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>密码</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>其他</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation>指纹</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation>指静脉</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation>虹膜</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation>人脸识别</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation>声纹</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation>安全密钥</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation>二维码</translation>
</message>
@@ -1995,7 +2018,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>校验设备已移除!</translation>
</message>
@@ -2010,12 +2033,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation>有线网络</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation>无线局域网</translation>
</message>
@@ -2186,41 +2209,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation>休眠</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation>睡眠</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation>重启</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">关机</translation>
+ </message>
+ <message>
<source>Power Off</source>
- <translation>关机</translation>
+ <translation type="vanished">关机</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished">关闭所有应用,然后关闭电脑。</translation>
</message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">关闭所有应用,关闭电脑,然后重新打开电脑。</translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2310,37 +2349,37 @@
<translation>屏幕保护程序未激活</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished">指纹</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished">指静脉</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished">虹膜</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished">人脸识别</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished">声纹</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished">安全密钥</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">二维码</translation>
</message>
@@ -2386,7 +2425,7 @@
<translation type="vanished">您有新的消息</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>预览</translation>
</message>
@@ -2498,14 +2537,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">登录</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2629,6 +2668,16 @@
<source>show blank and delay to lock,param:idle/lid/lowpower</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
+ <source>Backend for the ukui ScreenSaver.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
+ <source>lock the screen by startup</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="40"/>
<source>Dialog for the ukui ScreenSaver.</source>
@@ -2680,15 +2729,5 @@
<source>window id</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
- <source>Backend for the ukui ScreenSaver.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
- <source>lock the screen by startup</source>
- <translation type="unfinished"></translation>
- </message>
</context>
</TS>
diff --git a/i18n_ts/zh_HK.ts b/i18n_ts/zh_HK.ts
index 1303bac..7bac59c 100644
--- a/i18n_ts/zh_HK.ts
+++ b/i18n_ts/zh_HK.ts
@@ -4,7 +4,7 @@
<context>
<name>AgreementWindow</name>
<message>
- <location filename="../src/widgets/agreementwindow.cpp" line="34"/>
+ <location filename="../src/widgets/agreementwindow.cpp" line="51"/>
<source>I know</source>
<translation>我知道</translation>
</message>
@@ -24,7 +24,7 @@
<translation type="obsolete">使用密码认证</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1117"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1135"/>
<source>Retry</source>
<translation>重試</translation>
</message>
@@ -53,130 +53,130 @@
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1186"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1204"/>
<source>Please try again in %1 minutes.</source>
<translation>請在 %1 分鐘後重試。</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1193"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1211"/>
<source>Please try again in %1 seconds.</source>
<translation>請在 %1 秒後重試。</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1200"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1218"/>
<source>Account locked permanently.</source>
<translation>帳戶永久鎖定。</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="549"/>
- <location filename="../src/widgets/authdialog.cpp" line="592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="593"/>
+ <location filename="../src/widgets/authdialog.cpp" line="636"/>
<source>Verify face recognition or enter password to unlock</source>
<translation>驗證人臉識別或輸入密碼解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="348"/>
+ <location filename="../src/widgets/authdialog.cpp" line="390"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="554"/>
+ <location filename="../src/widgets/authdialog.cpp" line="598"/>
<source>Press fingerprint or enter password to unlock</source>
<translation>按指紋或輸入密碼解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="559"/>
+ <location filename="../src/widgets/authdialog.cpp" line="603"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation>驗證聲紋或輸入密碼以解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="564"/>
+ <location filename="../src/widgets/authdialog.cpp" line="608"/>
<source>Verify finger vein or enter password to unlock</source>
<translation>驗證指靜脈或輸入密碼解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="569"/>
+ <location filename="../src/widgets/authdialog.cpp" line="613"/>
<source>Verify iris or enter password to unlock</source>
<translation>驗證虹膜或輸入密碼解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="887"/>
+ <location filename="../src/widgets/authdialog.cpp" line="904"/>
<source>Input Password</source>
<translation>輸入密碼</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="909"/>
<source>Username</source>
<translation type="unfinished">使用者名</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="960"/>
+ <location filename="../src/widgets/authdialog.cpp" line="978"/>
<source>User name input error!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1037"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1055"/>
<source>login</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1420"/>
- <location filename="../src/widgets/authdialog.cpp" line="1572"/>
- <location filename="../src/widgets/authdialog.cpp" line="1713"/>
- <location filename="../src/widgets/authdialog.cpp" line="1890"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1438"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1590"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1908"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>驗證 %1 失敗,請輸入密碼進行解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1422"/>
- <location filename="../src/widgets/authdialog.cpp" line="1574"/>
- <location filename="../src/widgets/authdialog.cpp" line="1717"/>
- <location filename="../src/widgets/authdialog.cpp" line="1719"/>
- <location filename="../src/widgets/authdialog.cpp" line="1892"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1440"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1592"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1735"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1737"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1910"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>無法驗證 %1請輸入密碼進行解鎖</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1765"/>
<source>Abnormal network</source>
<translation>網路異常</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1754"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1772"/>
<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="2020"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2033"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2022"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2035"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2024"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2037"/>
<source>Iris</source>
<translation type="unfinished">虹膜</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2026"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2039"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2028"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2041"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2030"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2043"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="2032"/>
+ <location filename="../src/widgets/authdialog.cpp" line="2045"/>
<source>QRCode</source>
<translation type="unfinished">微信掃碼</translation>
</message>
@@ -185,8 +185,8 @@
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="730"/>
- <location filename="../src/widgets/authdialog.cpp" line="731"/>
+ <location filename="../src/widgets/authdialog.cpp" line="747"/>
+ <location filename="../src/widgets/authdialog.cpp" line="748"/>
<source>Password cannot be empty</source>
<translation>密碼不能為空</translation>
</message>
@@ -199,8 +199,8 @@
<translation type="vanished">无法验证%1请输入密码.</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="1732"/>
- <location filename="../src/widgets/authdialog.cpp" line="1736"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1750"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1754"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>驗證 %1 失敗,您仍有 %2 次驗證機會</translation>
</message>
@@ -229,13 +229,13 @@
<translation type="vanished">请输入密码或者录入指纹</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="963"/>
- <location filename="../src/widgets/authdialog.cpp" line="968"/>
+ <location filename="../src/widgets/authdialog.cpp" line="981"/>
+ <location filename="../src/widgets/authdialog.cpp" line="986"/>
<source>Authentication failure, Please try again</source>
<translation>身份驗證失敗,請重試</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="574"/>
+ <location filename="../src/widgets/authdialog.cpp" line="618"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>使用綁定的微信掃碼或輸入密碼解鎖</translation>
</message>
@@ -248,13 +248,13 @@
<translation type="vanished">將 Ukey 插入 USB 埠</translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="884"/>
+ <location filename="../src/widgets/authdialog.cpp" line="901"/>
<source>Password </source>
<translation>密碼 </translation>
</message>
<message>
- <location filename="../src/widgets/authdialog.cpp" line="346"/>
- <location filename="../src/widgets/authdialog.cpp" line="1108"/>
+ <location filename="../src/widgets/authdialog.cpp" line="388"/>
+ <location filename="../src/widgets/authdialog.cpp" line="1126"/>
<source>Login</source>
<translation>登錄</translation>
</message>
@@ -282,22 +282,26 @@
<context>
<name>BatteryWidget</name>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="113"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="114"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="144"/>
<source>Charging...</source>
<translation>正在充電...</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="115"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="116"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="146"/>
<source>fully charged</source>
<translation>已充滿電</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="119"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="120"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="150"/>
<source>PowerMode</source>
<translation>電源模式</translation>
</message>
<message>
- <location filename="../src/widgets/batterywidget.cpp" line="122"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="123"/>
+ <location filename="../src/widgets/batterywidget.cpp" line="153"/>
<source>BatteryMode</source>
<translation>電池模式</translation>
</message>
@@ -373,36 +377,36 @@
<context>
<name>BlockWidget</name>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="40"/>
- <location filename="../src/widgets/blockwidget.cpp" line="82"/>
- <location filename="../src/widgets/blockwidget.cpp" line="135"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="57"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="99"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="152"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="44"/>
- <location filename="../src/widgets/blockwidget.cpp" line="83"/>
- <location filename="../src/widgets/blockwidget.cpp" line="136"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="61"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="153"/>
<source>Confrim</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/blockwidget.cpp" line="91"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="108"/>
<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="94"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="111"/>
<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="97"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="114"/>
<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="100"/>
+ <location filename="../src/widgets/blockwidget.cpp" line="117"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished">以下程式正在運行以防止系統休眠!</translation>
</message>
@@ -1664,6 +1668,25 @@
<translation type="vanished">獲取代碼</translation>
</message>
</context>
+<context>
+ <name>KBTitle</name>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="49"/>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="86"/>
+ <source>Suspended state</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="60"/>
+ <source>Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/VirtualKeyboard/src/kbtitle.cpp" line="89"/>
+ <source>Welt status</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>KylinDBus</name>
<message>
@@ -1894,17 +1917,17 @@
<context>
<name>LightDMHelper</name>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="111"/>
<source>failed to start session.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="210"/>
<source>Login</source>
<translation type="unfinished">登錄</translation>
</message>
<message>
- <location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
+ <location filename="../src/lock-backend/lightdmhelper.cpp" line="219"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -1948,7 +1971,7 @@
<translation type="vanished">無線局域網</translation>
</message>
<message>
- <location filename="../src/widgets/lockwidget.cpp" line="944"/>
+ <location filename="../src/widgets/lockwidget.cpp" line="1022"/>
<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>
@@ -1956,53 +1979,53 @@
<context>
<name>LoginOptionsWidget</name>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="67"/>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="90"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="84"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="107"/>
<source>Login Options</source>
<translation>登錄選項</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="271"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="288"/>
<source>Password</source>
<translation>密碼</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="297"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="314"/>
<source>Other</source>
<translation>其他</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1040"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1042"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1044"/>
<source>Iris</source>
<translation type="unfinished">虹膜</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1046"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1048"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1050"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="1052"/>
<source>QRCode</source>
<translation type="unfinished">微信掃碼</translation>
</message>
@@ -2011,7 +2034,7 @@
<translation type="vanished">微信</translation>
</message>
<message>
- <location filename="../src/widgets/loginoptionswidget.cpp" line="706"/>
+ <location filename="../src/widgets/loginoptionswidget.cpp" line="723"/>
<source>Identify device removed!</source>
<translation>識別已刪除的設備!</translation>
</message>
@@ -2026,12 +2049,12 @@
<context>
<name>MyNetworkWidget</name>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="52"/>
<source>LAN</source>
<translation type="unfinished">局域網</translation>
</message>
<message>
- <location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
+ <location filename="../src/widgets/mynetworkwidget.cpp" line="54"/>
<source>WLAN</source>
<translation type="unfinished">無線局域網</translation>
</message>
@@ -2206,41 +2229,57 @@
<context>
<name>PowerListWidget</name>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="64"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="164"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="81"/>
<source>Hibernate</source>
<translation type="unfinished">休眠</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="65"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="165"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="82"/>
<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="78"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="168"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="94"/>
<source>Suspend</source>
<translation type="unfinished">睡眠</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="79"/>
- <location filename="../src/widgets/powerlistwidget.h" line="93"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="169"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="173"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="95"/>
<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="92"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="172"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="107"/>
<source>Restart</source>
<translation type="unfinished">重新啟動</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="106"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="176"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="119"/>
+ <source>Shut Down</source>
+ <translation type="unfinished">關閉</translation>
+ </message>
+ <message>
<source>Power Off</source>
- <translation type="unfinished">關機</translation>
+ <translation type="obsolete">關機</translation>
</message>
<message>
- <location filename="../src/widgets/powerlistwidget.h" line="107"/>
+ <location filename="../src/widgets/powerlistwidget.cpp" line="177"/>
+ <location filename="../src/widgets/powerlistwidget.h" line="120"/>
<source>Close all apps, and then shut down your computer</source>
<translation type="unfinished">關閉所有應用,然後關閉電腦</translation>
</message>
+ <message>
+ <location filename="../src/widgets/powerlistwidget.h" line="108"/>
+ <source>Close all apps, turn off your computer, and then turn your computer back on</source>
+ <translation type="unfinished">關閉所有應用,關閉計算機,然後重新打開計算機</translation>
+ </message>
</context>
<context>
<name>PowerManager</name>
@@ -2330,37 +2369,37 @@
<translation>屏幕保護程式處於非活動狀態。</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="29"/>
+ <location filename="../src/common/biodefines.cpp" line="28"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="31"/>
+ <location filename="../src/common/biodefines.cpp" line="30"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="33"/>
+ <location filename="../src/common/biodefines.cpp" line="32"/>
<source>Iris</source>
<translation type="unfinished">虹膜</translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="35"/>
+ <location filename="../src/common/biodefines.cpp" line="34"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="37"/>
+ <location filename="../src/common/biodefines.cpp" line="36"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="39"/>
+ <location filename="../src/common/biodefines.cpp" line="38"/>
<source>Ukey</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/common/biodefines.cpp" line="41"/>
+ <location filename="../src/common/biodefines.cpp" line="40"/>
<source>QRCode</source>
<translation type="unfinished">微信掃碼</translation>
</message>
@@ -2406,7 +2445,7 @@
<translation type="vanished">您有新通知</translation>
</message>
<message>
- <location filename="../src/screensaver/screensaver.cpp" line="1100"/>
+ <location filename="../src/screensaver/screensaver.cpp" line="135"/>
<source>View</source>
<translation>視圖</translation>
</message>
@@ -2522,14 +2561,14 @@
<context>
<name>UserListWidget</name>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="46"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="99"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="63"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="116"/>
<source>Login</source>
<translation type="unfinished">登錄</translation>
</message>
<message>
- <location filename="../src/widgets/userlistwidget.cpp" line="48"/>
- <location filename="../src/widgets/userlistwidget.cpp" line="101"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="65"/>
+ <location filename="../src/widgets/userlistwidget.cpp" line="118"/>
<source>Guest</source>
<translation type="unfinished">游客</translation>
</message>
@@ -2705,12 +2744,12 @@
<translation>窗口標識</translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="49"/>
+ <location filename="../src/lock-backend/main.cpp" line="50"/>
<source>Backend for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/lock-backend/main.cpp" line="55"/>
+ <location filename="../src/lock-backend/main.cpp" line="56"/>
<source>lock the screen by startup</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/widgets/fullbackgroundwidget.cpp b/src/widgets/fullbackgroundwidget.cpp
index 39e768a..b2f2eca 100644
--- a/src/widgets/fullbackgroundwidget.cpp
+++ b/src/widgets/fullbackgroundwidget.cpp
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
-**/
+ **/
#include "fullbackgroundwidget.h"
#include "../lock-dialog/lockdialogmodel.h"
#include "utils.h"
@@ -49,8 +49,7 @@
#include "configuration.h"
FullBackgroundWidget::FullBackgroundWidget(LockDialogModel *model, QWidget *parent)
- : QWidget(parent)
- , m_modelLockDialog(model)
+ : QWidget(parent), m_modelLockDialog(model)
{
initCurrentBackground();
initUI();
@@ -72,17 +71,18 @@ void FullBackgroundWidget::initUI()
if (QX11Info::isPlatformX11()) {
/*捕获键盘如果捕获失败则可能是由于弹出菜单项已经捕获那么模拟一次esc按键来退出菜单如果仍捕获失败则放弃锁屏避免密码无法输入*/
if (establishGrab())
- qDebug()<<"establishGrab : true";
+ qDebug() << "establishGrab : true";
else {
- qDebug()<<"establishGrab : false";
+ qDebug() << "establishGrab : false";
/*检测当前是否存在弹出菜单只有存在弹出菜单时才模拟按键esc*/
if (checkHasPopupMenu()) {
- XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(),XK_Escape), True, 1);
- XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(),XK_Escape), False, 1);
+ qDebug() << "XTestFakeKeyEvent Esc!!";
+ XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(), XK_Escape), True, 1);
+ XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(), XK_Escape), False, 1);
XFlush(QX11Info::display());
sleep(1);
}
- if(!establishGrab()) {
+ if (!establishGrab()) {
exit(1);
}
}
@@ -98,14 +98,15 @@ void FullBackgroundWidget::initUI()
moveToPrimaryScreen();
}
- if(m_modelLockDialog->getAgreementWindowShowLoginPrompt() && (/*IsStartupMode() || */(qgetenv("USER") == "lightdm"))){
+ if (m_modelLockDialog->getAgreementWindowShowLoginPrompt()
+ && (/*IsStartupMode() || */ (qgetenv("USER") == "lightdm"))) {
bool hideTitle = m_modelLockDialog->getAgreementWindowHideTitle();
QString title = m_modelLockDialog->getAgreementWindowPromptTitle();
QString text = m_modelLockDialog->getAgreementWindowText();
//文本内容不为空 且 如果配置了标题,则标题不为空
- if(!text.isEmpty() && (hideTitle || (!hideTitle && !text.isEmpty()))){
- m_agreementWindow = new AgreementWindow(hideTitle,title,text,this);
+ if (!text.isEmpty() && (hideTitle || (!hideTitle && !text.isEmpty()))) {
+ m_agreementWindow = new AgreementWindow(hideTitle, title, text, this);
m_lockWidget->hide();
m_agreementWindow->setGeometry(this->geometry());
m_agreementWindow->show();
@@ -114,15 +115,14 @@ void FullBackgroundWidget::initUI()
m_agreementWindow->setFocusPolicy(Qt::StrongFocus);
setFocusProxy(m_agreementWindow);
m_agreementWindow->setFocus();
- //特别提示窗口抓取键盘,避免焦点在密码框上时输入事件跑到密码框,但会导致我已知晓按钮无法响应回车
- m_agreementWindow->grabKeyboard();
- connect(m_agreementWindow, &AgreementWindow::switchToGreeter, this,
- [this]() {
+ //特别提示窗口抓取键盘,避免焦点在密码框上时输入事件跑到密码框,但会导致我已知晓按钮无法响应回车
+ m_agreementWindow->grabKeyboard();
+ connect(m_agreementWindow, &AgreementWindow::switchToGreeter, this, [this]() {
m_agreementWindow->hide();
m_agreementWindow->releaseKeyboard();
m_agreementWindow->clearFocus();
m_lockWidget->show();
- m_lockWidget->setFocus();
+ m_lockWidget->setFocus();
update();
});
}
@@ -135,9 +135,7 @@ void FullBackgroundWidget::initUI()
if (isGreeterMode()) {
XRRQueryExtension(QX11Info::display(), &m_RREventBase, &m_RRErrorBase);
XRRSelectInput(QX11Info::display(), QX11Info::appRootWindow(), RRScreenChangeNotifyMask);
- QtConcurrent::run([=](){
- RRScreenChangeEvent(true);
- });
+ QtConcurrent::run([=]() { RRScreenChangeEvent(true); });
}
qApp->installNativeEventFilter(this);
@@ -149,22 +147,23 @@ bool FullBackgroundWidget::eventFilter(QObject *obj, QEvent *event)
static bool isFirstActive = true;
if (!QX11Info::isPlatformX11()) {
- if(event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseMove/* || event->type() == 7*/){
- if(screenStatus & SCREEN_SAVER && !isBlank){
+ if (event->type() == QEvent::MouseButtonPress
+ || event->type() == QEvent::MouseMove /* || event->type() == 7*/) {
+ if (screenStatus & SCREEN_SAVER && !isBlank) {
onClearScreensaver();
}
}
}
- if(event->type() == QEvent::WindowDeactivate){
- QTimer::singleShot(50,this,SLOT(laterActivate()));
- } else if(event->type() == QEvent::WindowActivate){
+ if (event->type() == QEvent::WindowDeactivate) {
+ QTimer::singleShot(50, this, SLOT(laterActivate()));
+ } else if (event->type() == QEvent::WindowActivate) {
if (isFirstActive) {
isFirstActive = false;
syslog(LOG_INFO, "[ukui-screensaver-dialog] window active event!!");
}
- QTimer::singleShot(500,this,SLOT(setLockState()));
- //QTimer::singleShot(200,this,SLOT(killWindow()));
+ QTimer::singleShot(500, this, SLOT(setLockState()));
+ // QTimer::singleShot(200,this,SLOT(killWindow()));
}
return QWidget::eventFilter(obj, event);
}
@@ -173,65 +172,58 @@ void FullBackgroundWidget::initConnections()
{
// 监听全屏窗口变化
QDesktopWidget *desktop = QApplication::desktop();
- connect(desktop, &QDesktopWidget::resized,
- this, &FullBackgroundWidget::onDesktopResized);
- connect(desktop, &QDesktopWidget::workAreaResized,
- this, &FullBackgroundWidget::onDesktopResized);
- connect(desktop, &QDesktopWidget::primaryScreenChanged,
- this, &FullBackgroundWidget::onDesktopResized);
- connect(desktop, &QDesktopWidget::screenCountChanged,
- this, &FullBackgroundWidget::onDesktopResized);
+ connect(desktop, &QDesktopWidget::resized, this, &FullBackgroundWidget::onDesktopResized);
+ connect(desktop, &QDesktopWidget::workAreaResized, this, &FullBackgroundWidget::onDesktopResized);
+ connect(desktop, &QDesktopWidget::primaryScreenChanged, this, &FullBackgroundWidget::onDesktopResized);
+ connect(desktop, &QDesktopWidget::screenCountChanged, this, &FullBackgroundWidget::onDesktopResized);
// 监听休眠、睡眠、唤醒
connect(m_modelLockDialog, SIGNAL(prepareForSleep(bool)), this, SLOT(onPrepareForSleep(bool)));
connect(m_modelLockDialog, &LockDialogModel::currentUserChanged, this, &FullBackgroundWidget::onCurUserChanged);
connect(m_modelLockDialog, &LockDialogModel::showLock, this, &FullBackgroundWidget::onShowLock);
- connect(m_modelLockDialog, &LockDialogModel::showBlankScreensaver, this, &FullBackgroundWidget::onShowBlankScreensaver);
- connect(m_modelLockDialog, &LockDialogModel::showLockScreensaver, this, &FullBackgroundWidget::onShowLockScreensaver);
+ connect(
+ m_modelLockDialog, &LockDialogModel::showBlankScreensaver, this, &FullBackgroundWidget::onShowBlankScreensaver);
+ connect(
+ m_modelLockDialog, &LockDialogModel::showLockScreensaver, this, &FullBackgroundWidget::onShowLockScreensaver);
connect(m_modelLockDialog, &LockDialogModel::showScreensaver, this, &FullBackgroundWidget::onShowScreensaver);
connect(m_modelLockDialog, &LockDialogModel::showSessionIdle, this, &FullBackgroundWidget::onShowSessionIdle);
connect(m_modelLockDialog, &LockDialogModel::SecondRunParam, this, &FullBackgroundWidget::onSecondRunParam);
-
}
void FullBackgroundWidget::setLockState()
{
- if(m_bIsLockState == true)
- return ;
+ if (m_bIsLockState == true)
+ return;
m_bIsLockState = true;
QString displayNum = QString(qgetenv("DISPLAY")).replace(":", "").replace(".", "_");
QString sessionDbus = QString("%1%2").arg(QString(SS_DBUS_SERVICE)).arg(displayNum);
- QDBusInterface *interface = new QDBusInterface(sessionDbus,
- SS_DBUS_PATH,
- SS_DBUS_INTERFACE);
+ QDBusInterface *interface = new QDBusInterface(sessionDbus, SS_DBUS_PATH, SS_DBUS_INTERFACE);
if (!interface->isValid()) {
delete interface;
- interface = new QDBusInterface(SS_DBUS_SERVICE,
- SS_DBUS_PATH,
- SS_DBUS_INTERFACE);
+ interface = new QDBusInterface(SS_DBUS_SERVICE, SS_DBUS_PATH, SS_DBUS_INTERFACE);
}
QDBusMessage msg = interface->call("SetLockState");
- if(msg.type() == QDBusMessage::ErrorMessage)
- qDebug() << msg.errorMessage();
+ if (msg.type() == QDBusMessage::ErrorMessage)
+ qDebug() << msg.errorMessage();
interface->deleteLater();
}
void FullBackgroundWidget::onSecondRunParam(const QString &str)
{
- qDebug()<<"onSecondRunParam"<<str;
- if(str == "SleepLock"){
- onShowBlankScreensaver(0,true);
- }else if(str == "ScreensaverLock"){
+ qDebug() << "onSecondRunParam" << str;
+ if (str == "SleepLock") {
+ onShowBlankScreensaver(0, true);
+ } else if (str == "ScreensaverLock") {
onShowLockScreensaver();
- }else if(str == "StartupLock"){
+ } else if (str == "StartupLock") {
onShowLock(true);
- }else if(str == "CmdLock"){
+ } else if (str == "CmdLock") {
onShowLock(false);
- }else if(str == "CloseLock"){
- onShowBlankScreensaver(1000,false);
- }else if(str == "SessionIdle"){
+ } else if (str == "CloseLock") {
+ onShowBlankScreensaver(1000, false);
+ } else if (str == "SessionIdle") {
onShowSessionIdle();
- } else if(str == "Screensaver"){
+ } else if (str == "Screensaver") {
onShowScreensaver();
}
}
@@ -246,9 +238,8 @@ void FullBackgroundWidget::onShowBlankScreensaver(int nDelay, bool isHasLock)
} else {
screenStatus = (ScreenStatus)(screenStatus | SCREEN_SAVER);
}
-
- for(auto screen : QGuiApplication::screens())
- {
+
+ for (auto screen : QGuiApplication::screens()) {
ScreenSaver *saver = m_modelLockDialog->getScreensaver();
saver->mode = SaverMode(SAVER_BLANK_ONLY);
ScreenSaverWidget *saverWidget = new ScreenSaverWidget(saver, this);
@@ -261,15 +252,15 @@ void FullBackgroundWidget::onShowBlankScreensaver(int nDelay, bool isHasLock)
if (0 == nDelay) {
/*在进行压力测试时,可能会出现锁屏界面启动极慢,导致在睡眠之前调用了锁屏,但
- * 锁屏没来得及绑定睡眠唤醒信号,导致唤醒后,锁屏界面没有收到信号从而一直显示黑屏的问题。
- * 因此这里在进入黑色屏保时,通过后台接口,获取一次当前是否应该显示黑色屏保状态*/
+ * 锁屏没来得及绑定睡眠唤醒信号,导致唤醒后,锁屏界面没有收到信号从而一直显示黑屏的问题。
+ * 因此这里在进入黑色屏保时,通过后台接口,获取一次当前是否应该显示黑色屏保状态*/
bool ret = Q_EMIT m_modelLockDialog->GetBlankState();
- if(!ret){
- //isBlank = false;
- //onClearScreensaver();
+ if (!ret) {
+ // isBlank = false;
+ // onClearScreensaver();
}
- }else{
- QTimer::singleShot(nDelay, this, [=](){
+ } else {
+ QTimer::singleShot(nDelay, this, [=]() {
if (isBlank) {
isBlank = false;
onClearScreensaver();
@@ -285,13 +276,13 @@ 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->isHidden())
+ if (m_lockWidget && !m_lockWidget->isHidden())
m_lockWidget->show();
}
void FullBackgroundWidget::onShowSessionIdle()
{
- onShowScreensaver();
+ onShowScreensaver();
delayLockScreen();
Q_EMIT m_modelLockDialog->lockStateChanged(true);
}
@@ -306,23 +297,23 @@ void FullBackgroundWidget::onShowScreensaver()
{
screenStatus = (ScreenStatus)(screenStatus | SCREEN_SAVER);
- for(auto screen : QGuiApplication::screens())
- {
+ for (auto screen : QGuiApplication::screens()) {
ScreenSaver *saver = m_modelLockDialog->getScreensaver();
/*锁屏设置的Qt::WA_TranslucentBackground属性会导致第三方屏保变得透明因此在使用第三方屏保时
- * 取消该属性,清除屏保时再设置回来*/
- if(saver->path != "/usr/lib/ukui-screensaver/ukui-screensaver-default")
- {
- // setAttribute(Qt::WA_TranslucentBackground,false);
+ * 取消该属性,清除屏保时再设置回来*/
+ if (saver->path != "/usr/lib/ukui-screensaver/ukui-screensaver-default") {
+ // setAttribute(Qt::WA_TranslucentBackground,false);
}
ScreenSaverWidget *saverWidget = new ScreenSaverWidget(saver, this);
qDebug() << " new ScreenSaverWidget";
widgetXScreensaverList.push_back(saverWidget);
//深色模式有一像素的白边,所以主屏幕向左,向右移一个像素点;这种操作后,外显上方仍旧会有一个像素的白边,暂时不对外显做偏移处理
- if(screen == qApp->primaryScreen()) {
- saverWidget->setGeometry(screen->geometry().x()-1, screen->geometry().y()-1,
- screen->geometry().width()+1, screen->geometry().height()+1);
+ if (screen == qApp->primaryScreen()) {
+ saverWidget->setGeometry(screen->geometry().x() - 1,
+ screen->geometry().y() - 1,
+ screen->geometry().width() + 1,
+ screen->geometry().height() + 1);
} else {
saverWidget->setGeometry(screen->geometry());
}
@@ -335,28 +326,23 @@ void FullBackgroundWidget::onClearScreensaver()
{
screenStatus = (ScreenStatus)(screenStatus & ~SCREEN_SAVER);
- for(auto widget : widgetXScreensaverList)
- {
+ for (auto widget : widgetXScreensaverList) {
widget->close();
}
widgetXScreensaverList.clear();
unsetCursor();
- if(screenStatus == UNDEFINED)
- {
+ if (screenStatus == UNDEFINED) {
onCloseScreensaver();
- }
- else
- {
+ } else {
onShowLock(false);
}
-
}
void FullBackgroundWidget::delayLockScreen()
{
- qDebug()<<"delayLockScreen"<<m_modelLockDialog->getLockTimeout()<<m_modelLockDialog->getLockEnabled();
+ qDebug() << "delayLockScreen" << m_modelLockDialog->getLockTimeout() << m_modelLockDialog->getLockEnabled();
if (!m_timerLock) {
m_timerLock = new QTimer(this);
@@ -365,7 +351,7 @@ void FullBackgroundWidget::delayLockScreen()
if (m_modelLockDialog->getLockTimeout() != -1 && m_modelLockDialog->getLockEnabled()) {
stopDelayLockScreen();
- m_timerLock->start(m_modelLockDialog->getLockTimeout()*1000);
+ m_timerLock->start(m_modelLockDialog->getLockTimeout() * 1000);
}
}
@@ -378,7 +364,7 @@ void FullBackgroundWidget::stopDelayLockScreen()
void FullBackgroundWidget::onLockScreenTimeout()
{
- qDebug()<<"onLockScreenTimeout:"<<m_modelLockDialog->getLockEnabled();
+ qDebug() << "onLockScreenTimeout:" << m_modelLockDialog->getLockEnabled();
if (m_modelLockDialog->getLockEnabled()) {
screenStatus = (ScreenStatus)(screenStatus | SCREEN_LOCK);
}
@@ -404,7 +390,7 @@ void FullBackgroundWidget::onDesktopResized()
qDebug() << "[FullBackgroundWidget] [onDesktopResized]";
QDesktopWidget *desktop = QApplication::desktop();
setGeometry(desktop->geometry());
- if(m_lockWidget) {
+ if (m_lockWidget) {
moveToPrimaryScreen();
m_lockWidget->reloadRootBackground();
}
@@ -415,45 +401,40 @@ void FullBackgroundWidget::onPrepareForSleep(bool sleep)
{
///系统休眠时,会关闭总线,导致设备不可用,发生错误
///在系统休眠之前停止认证,在系统唤醒后重新开始认证
- qDebug()<<"onPrepareForSleep:"<<sleep;
+ qDebug() << "onPrepareForSleep:" << sleep;
- if(!isVisible()){
- return ;
+ if (!isVisible()) {
+ return;
}
- if(sleep)
- {
- if(m_lockWidget)
+ if (sleep) {
+ if (m_lockWidget)
m_lockWidget->stopAuth();
- //uninhibit();
- }
- else
- {
- if(screenStatus & SCREEN_SAVER)
- {
+ // uninhibit();
+ } else {
+ if (screenStatus & SCREEN_SAVER) {
isBlank = false;
onClearScreensaver();
- }else{
+ } else {
repaint();
- if(m_lockWidget)
+ if (m_lockWidget)
m_lockWidget->startAuth();
- //inhibit();
+ // inhibit();
}
}
-
}
void FullBackgroundWidget::mousePressEvent(QMouseEvent *e)
{
- //close();
+ // close();
}
QString FullBackgroundWidget::getFocusWindowName()
{
Window focus = 0;
- int rev = 0;
+ int rev = 0;
- XGetInputFocus (QX11Info::display(), &focus, &rev);
- return getWindowNameFromWid(focus);
+ XGetInputFocus(QX11Info::display(), &focus, &rev);
+ return getWindowNameFromWid(focus);
}
QString FullBackgroundWidget::getWindowNameFromWid(WId window)
@@ -461,7 +442,7 @@ QString FullBackgroundWidget::getWindowNameFromWid(WId window)
XClassHint ch;
ch.res_name = NULL;
ch.res_class = NULL;
- XGetClassHint (QX11Info::display(),window, &ch);
+ XGetClassHint(QX11Info::display(), window, &ch);
QString nameStr = QString(ch.res_name);
@@ -477,8 +458,8 @@ int FullBackgroundWidget::RegisteSubWnd(quint64 uWndId)
{
if (!m_listWndIds.contains(uWndId) && m_listWndIds.size() < SUBWND_COUNT_MAX) {
m_listWndIds.append(uWndId);
- qDebug()<<"RegisterSubWnd:"<<uWndId;
- //QTimer::singleShot(50,this,SLOT(laterActivate()));
+ qDebug() << "RegisterSubWnd:" << uWndId;
+ // QTimer::singleShot(50,this,SLOT(laterActivate()));
return m_listWndIds.size();
} else {
return -1;
@@ -489,8 +470,8 @@ int FullBackgroundWidget::UnRegisteSubWnd(quint64 uWndId)
{
if (m_listWndIds.contains(uWndId)) {
m_listWndIds.removeAll(uWndId);
- qDebug()<<"UnRegisterSubWnd:"<<uWndId;
- //QTimer::singleShot(50,this,SLOT(laterActivate()));
+ qDebug() << "UnRegisterSubWnd:" << uWndId;
+ // QTimer::singleShot(50,this,SLOT(laterActivate()));
return m_listWndIds.size();
} else {
return -1;
@@ -504,19 +485,18 @@ QList<quint64> FullBackgroundWidget::GetSubWndIds()
void FullBackgroundWidget::moveToPrimaryScreen()
{
- if(!m_lockWidget) {
+ if (!m_lockWidget) {
return;
}
bool chkInOneScreen = false;
- for(auto screen : QGuiApplication::screens())
- {
- if(screen == qApp->primaryScreen()){
- qInfo()<<"LockWidget:"<<screen->geometry()<<m_lockWidget->geometry();
- if(!m_lockWidget->isHidden()){
+ for (auto screen : QGuiApplication::screens()) {
+ if (screen == qApp->primaryScreen()) {
+ qInfo() << "LockWidget:" << screen->geometry() << m_lockWidget->geometry();
+ if (!m_lockWidget->isHidden()) {
m_lockWidget->hide();
m_lockWidget->setGeometry(screen->geometry());
m_lockWidget->show();
- }else{
+ } else {
m_lockWidget->setGeometry(screen->geometry());
}
chkInOneScreen = true;
@@ -524,15 +504,15 @@ void FullBackgroundWidget::moveToPrimaryScreen()
}
}
if (!chkInOneScreen) {
- for(auto screen : QGuiApplication::screens()) {
- if(screen){
+ for (auto screen : QGuiApplication::screens()) {
+ if (screen) {
/*避免切换时闪烁*/
- qInfo()<<"LockWidget:"<<screen->geometry()<<m_lockWidget->geometry()<<","<<screen;
- if(!m_lockWidget->isHidden()){
+ qInfo() << "LockWidget:" << screen->geometry() << m_lockWidget->geometry() << "," << screen;
+ if (!m_lockWidget->isHidden()) {
m_lockWidget->hide();
m_lockWidget->setGeometry(screen->geometry());
m_lockWidget->show();
- }else{
+ } else {
m_lockWidget->setGeometry(screen->geometry());
}
chkInOneScreen = true;
@@ -555,37 +535,35 @@ void FullBackgroundWidget::fakeFocusIn(WId window)
ev.xfocus.window = window;
ev.xfocus.mode = NotifyNormal;
ev.xfocus.detail = NotifyAncestor;
- XSendEvent( QX11Info::display(), window, False, NoEventMask, &ev );
+ XSendEvent(QX11Info::display(), window, False, NoEventMask, &ev);
XFlush(QX11Info::display());
}
void FullBackgroundWidget::laterActivate()
{
- if(!QX11Info::isPlatformX11())
- return ;
- XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
+ if (!QX11Info::isPlatformX11())
+ return;
+ XSetInputFocus(QX11Info::display(), this->winId(), RevertToParent, CurrentTime);
activateWindow();
}
void FullBackgroundWidget::showEvent(QShowEvent *event)
{
- if(QX11Info::isPlatformX11())
+ if (QX11Info::isPlatformX11())
tryGrabKeyboard();
- QTimer::singleShot(10, this, [=](){
- KWindowSystem::setType(this->winId(), NET::ScreenLock);
- });
+ QTimer::singleShot(10, this, [=]() { KWindowSystem::setType(this->winId(), NET::ScreenLock); });
}
void FullBackgroundWidget::keyReleaseEvent(QKeyEvent *e)
{
if (!QX11Info::isPlatformX11()) {
- if(e->key() == Qt::Key_Escape && screenStatus == SCREEN_LOCK) { // "escape"
+ if (e->key() == Qt::Key_Escape && screenStatus == SCREEN_LOCK) { // "escape"
bool canShow = true;
if (m_lockWidget && !m_lockWidget->exitSubWidget())
canShow = false;
if (canShow)
onShowScreensaver();
- } else if(screenStatus & SCREEN_SAVER/* && !isBlank*/) {
+ } else if (screenStatus & SCREEN_SAVER /* && !isBlank*/) {
onClearScreensaver();
}
}
@@ -601,7 +579,7 @@ void FullBackgroundWidget::tryGrabKeyboard()
m_tryGrabTimes++;
if (m_tryGrabTimes == 15) {
- qWarning()<<"setKeyboardGrabEnable failed! focus Window is"<<getFocusWindowName();
+ qWarning() << "setKeyboardGrabEnable failed! focus Window is" << getFocusWindowName();
m_tryGrabTimes = 0;
return;
}
@@ -614,63 +592,62 @@ bool FullBackgroundWidget::nativeEventFilter(const QByteArray &eventType, void *
if (qstrcmp(eventType, "xcb_generic_event_t") != 0) {
return false;
}
- xcb_generic_event_t *event = reinterpret_cast<xcb_generic_event_t*>(message);
+ xcb_generic_event_t *event = reinterpret_cast<xcb_generic_event_t *>(message);
const uint8_t responseType = event->response_type & ~0x80;
-
if (responseType == XCB_FOCUS_OUT) {
//丢焦点时检测抢焦点的窗口是否为锁屏的子窗口比如QMenu,QCombobox等
//如果不是子窗口,则重新给锁屏设置一次焦点
QString focusWindow = getFocusWindowName();
- if(focusWindow == "ukui-screensaver-dialog"){
+ if (focusWindow == "ukui-screensaver-dialog") {
return false;
- }else{
- qDebug()<<"focus out. focus window is"<<focusWindow;
+ } else {
+ qDebug() << "focus out. focus window is" << focusWindow;
}
laterActivate();
- qDebug()<<"XCB_FOCUS_OUT !";
- }else if(responseType == XCB_FOCUS_IN){
+ qDebug() << "XCB_FOCUS_OUT !";
+ } else if (responseType == XCB_FOCUS_IN) {
//因为弹出菜单会释放键盘抓取,所以在锁屏窗口重新获取到焦点时,重新抓取一次键盘焦点
- qDebug()<<"XCB_FOCUS_IN !";
- }else if(responseType == XCB_GE_GENERIC){
+ qDebug() << "XCB_FOCUS_IN !";
+ } else if (responseType == XCB_GE_GENERIC) {
//因为锁屏抓取了键盘,所以锁屏窗口不管有没有焦点,都能够输入,但仍然需要发送一个
//虚拟的focusin事件来激活窗口焦点,同时点击锁屏界面,也能触发锁屏键盘抓取
- xcb_ge_generic_event_t *xc = reinterpret_cast<xcb_ge_generic_event_t*>(event);
- if(xc->event_type == XCB_BUTTON_PRESS){
- if(this->windowHandle()){
+ xcb_ge_generic_event_t *xc = reinterpret_cast<xcb_ge_generic_event_t *>(event);
+ if (xc->event_type == XCB_BUTTON_PRESS) {
+ if (this->windowHandle()) {
bool grabed = this->windowHandle()->setKeyboardGrabEnabled(true);
- if(!grabed){
- qDebug()<<"setKeyboardGrabEnable failed! focus Window is"<<getFocusWindowName();
+ if (!grabed) {
+ qDebug() << "setKeyboardGrabEnable failed! focus Window is" << getFocusWindowName();
}
- }
- onGlobalButtonPressed(QCursor::pos().x(), QCursor::pos().y());
- }else if(xc->event_type == XCB_BUTTON_RELEASE){
- }else if(xc->event_type == XCB_MOTION_NOTIFY){
- onGlobalButtonDrag(QCursor::pos().x(),QCursor::pos().y());
+ }
+ onGlobalButtonPressed(QCursor::pos().x(), QCursor::pos().y());
+ } else if (xc->event_type == XCB_BUTTON_RELEASE) {
+ } else if (xc->event_type == XCB_MOTION_NOTIFY) {
+ onGlobalButtonDrag(QCursor::pos().x(), QCursor::pos().y());
}
- }else if(responseType == XCB_BUTTON_PRESS){
- xcb_button_press_event_t *xc = reinterpret_cast<xcb_button_press_event_t*>(event);
+ } else if (responseType == XCB_BUTTON_PRESS) {
+ xcb_button_press_event_t *xc = reinterpret_cast<xcb_button_press_event_t *>(event);
int x = xc->root_x;
int y = xc->root_y;
onGlobalButtonPressed(x, y);
- qDebug()<<"---------------------XCB_BUTTON_PRESS:"<<x<<","<<y;
- }else if(responseType == XCB_BUTTON_RELEASE){
-
- }else if(responseType == XCB_MOTION_NOTIFY){
- xcb_motion_notify_event_t *xc = reinterpret_cast<xcb_motion_notify_event_t*>(event);
+ qDebug() << "---------------------XCB_BUTTON_PRESS:" << x << "," << y;
+ } else if (responseType == XCB_BUTTON_RELEASE) {
+
+ } else if (responseType == XCB_MOTION_NOTIFY) {
+ xcb_motion_notify_event_t *xc = reinterpret_cast<xcb_motion_notify_event_t *>(event);
int x = xc->root_x;
int y = xc->root_y;
onGlobalButtonDrag(x, y);
- qDebug()<<"---------------------XCB_MOTION_NOTIFY:"<<x<<","<<y;
- }else if (responseType == XCB_KEY_PRESS) {
- xcb_key_press_event_t *xc = reinterpret_cast<xcb_key_press_event_t*>(event);
- //qDebug()<<"---------------------XCB_KEY_PRESS:"<<xc->detail;
+ qDebug() << "---------------------XCB_MOTION_NOTIFY:" << x << "," << y;
+ } else if (responseType == XCB_KEY_PRESS) {
+ xcb_key_press_event_t *xc = reinterpret_cast<xcb_key_press_event_t *>(event);
+ // qDebug()<<"---------------------XCB_KEY_PRESS:"<<xc->detail;
onGlobalKeyPress(xc->detail);
- } else if (responseType == XCB_KEY_RELEASE) {
- xcb_key_release_event_t *xc = reinterpret_cast<xcb_key_release_event_t*>(event);
- qDebug()<<"---------------------XCB_KEY_RELEASE:"<<xc->detail;
+ } else if (responseType == XCB_KEY_RELEASE) {
+ xcb_key_release_event_t *xc = reinterpret_cast<xcb_key_release_event_t *>(event);
+ qDebug() << "---------------------XCB_KEY_RELEASE:" << xc->detail;
onGlobalKeyRelease(xc->detail);
- } else if(responseType == m_RREventBase + RRScreenChangeNotify){
+ } else if (responseType == m_RREventBase + RRScreenChangeNotify) {
if (isGreeterMode()) {
RRScreenChangeEvent(false);
}
@@ -698,41 +675,36 @@ void FullBackgroundWidget::onAuthSucceed(QString strUserName)
}
}
-void FullBackgroundWidget::onGlobalKeyPress(const quint8 &key)
-{
-
-}
+void FullBackgroundWidget::onGlobalKeyPress(const quint8 &key) {}
void FullBackgroundWidget::onGlobalKeyRelease(const quint8 &key)
{
-// if (m_lockWidget && m_lockWidget->isVisible()) {
-// m_lockWidget->onGlobalkeyRelease(key);
-// }
- if(key == 9 && screenStatus == SCREEN_LOCK) { // "escape"
+ // if (m_lockWidget && m_lockWidget->isVisible()) {
+ // m_lockWidget->onGlobalkeyRelease(key);
+ // }
+ if (key == 9 && screenStatus == SCREEN_LOCK) { // "escape"
bool canShow = true;
if (m_lockWidget && !m_lockWidget->exitSubWidget())
canShow = false;
if (canShow)
onShowScreensaver();
- } else if(screenStatus & SCREEN_SAVER/* && !isBlank*/) {
- qDebug() << "clearclear" ;
+ } else if (screenStatus & SCREEN_SAVER /* && !isBlank*/) {
+ qDebug() << "clearclear";
onClearScreensaver();
}
}
void FullBackgroundWidget::onGlobalButtonDrag(int xPos, int yPos)
{
- if(screenStatus & SCREEN_SAVER && !isBlank)
- {
- qDebug() << "clearclear" ;
+ if (screenStatus & SCREEN_SAVER && !isBlank) {
+ qDebug() << "clearclear";
onClearScreensaver();
}
}
void FullBackgroundWidget::onGlobalButtonPressed(int xPos, int yPos)
{
- if(screenStatus & SCREEN_SAVER && !isBlank)
- {
+ if (screenStatus & SCREEN_SAVER && !isBlank) {
onClearScreensaver();
}
}
@@ -745,24 +717,22 @@ void FullBackgroundWidget::initCurrentBackground()
connect(m_backgrondGradationTimer, &QTimer::timeout, this, &FullBackgroundWidget::onTransition);
connect(m_modelLockDialog, &LockDialogModel::setCurrentUser, this, &FullBackgroundWidget::onCurrentUserBackground);
- connect(m_modelLockDialog, &LockDialogModel::currentUserChanged, this, &FullBackgroundWidget::onUpdateUserBackground);
+ connect(
+ m_modelLockDialog, &LockDialogModel::currentUserChanged, this, &FullBackgroundWidget::onUpdateUserBackground);
-// update();
+ // update();
}
-
QString FullBackgroundWidget::getDefaultBackgroundPath()
{
qDebug() << __LINE__ << __FUNCTION__;
QString default_background_path = "/usr/share/backgrounds/1-warty-final-ubuntukylin.jpg";
QFile file(default_background_path);
- if (!file.exists())
- {
+ if (!file.exists()) {
default_background_path = "/usr/share/backgrounds/1-openkylin.jpg";
QFile file(default_background_path);
- if (!file.exists())
- {
+ if (!file.exists()) {
return "";
}
}
@@ -771,10 +741,9 @@ QString FullBackgroundWidget::getDefaultBackgroundPath()
void FullBackgroundWidget::loadingAllUserBackground()
{
- qWarning() << __LINE__ << __FUNCTION__ ;
+ qWarning() << __LINE__ << __FUNCTION__;
if (!getDefaultBackgroundPath().isEmpty())
addBackgroundData(getDefaultBackgroundPath());
-
}
void FullBackgroundWidget::paintEvent(QPaintEvent *event)
@@ -786,12 +755,15 @@ void FullBackgroundWidget::paintEvent(QPaintEvent *event)
int height = rect.height();
QString currentPath = getUserBackgroundPath(m_currentUserName);
QString resolution = QString("%1x%2").arg(width).arg(height);
- QPair<QString,QString> cunrrentKey(currentPath, resolution);
+ QPair<QString, QString> cunrrentKey(currentPath, resolution);
QString oldPath = getUserBackgroundPath(m_oldUserName);
- QPair<QString,QString> oldKey(oldPath, resolution);
+ QPair<QString, QString> oldKey(oldPath, resolution);
if (m_gradualChanging && m_allBackgroundsDataMap.contains(cunrrentKey)) {
- drawBackground(m_allBackgroundsDataMap[cunrrentKey],m_allBackgroundsDataMap.contains(oldKey)?m_allBackgroundsDataMap[oldKey]:nullptr,rect,m_backgroundAlpha);
+ drawBackground(m_allBackgroundsDataMap[cunrrentKey],
+ m_allBackgroundsDataMap.contains(oldKey) ? m_allBackgroundsDataMap[oldKey] : nullptr,
+ rect,
+ m_backgroundAlpha);
} else {
stopTransition();
if (m_allBackgroundsDataMap.contains(cunrrentKey)) {
@@ -814,7 +786,7 @@ void FullBackgroundWidget::paintEvent(QPaintEvent *event)
bool FullBackgroundWidget::isOpenGradation()
{
bool isOpenGradation = false;
-// return true;//test 一直触发渐变效果
+ // return true;//test 一直触发渐变效果
if (m_currentUserName.isEmpty() || m_oldUserName.isEmpty())
return isOpenGradation;
if (m_currentUserName == m_oldUserName)
@@ -829,14 +801,14 @@ bool FullBackgroundWidget::isOpenGradation()
void FullBackgroundWidget::onUpdateUserBackground(const QString &strUserName)
{
- qDebug() << __LINE__ <<__FUNCTION__ << "==========" << strUserName ;
+ qDebug() << __LINE__ << __FUNCTION__ << "==========" << strUserName;
if (m_currentUserName == strUserName)
return;
m_oldUserName = m_currentUserName;
m_currentUserName = strUserName;
//是否需要开启渐变效果
bool gradualChangeEnable = isOpenGradation();
- qDebug() << __LINE__ <<__FUNCTION__ << "==========" << gradualChangeEnable ;
+ qDebug() << __LINE__ << __FUNCTION__ << "==========" << gradualChangeEnable;
if (gradualChangeEnable)
startTransition();
@@ -847,16 +819,16 @@ void FullBackgroundWidget::onTransition()
{
m_backgroundAlpha += 0.05;
- if(m_backgroundAlpha >= 1.0)
+ if (m_backgroundAlpha >= 1.0)
stopTransition();
repaint();
}
void FullBackgroundWidget::startTransition()
{
- if(!m_backgrondGradationTimer){
- m_backgrondGradationTimer = new QTimer(this);
- connect(m_backgrondGradationTimer, &QTimer::timeout, this, &FullBackgroundWidget::onTransition);
+ if (!m_backgrondGradationTimer) {
+ m_backgrondGradationTimer = new QTimer(this);
+ connect(m_backgrondGradationTimer, &QTimer::timeout, this, &FullBackgroundWidget::onTransition);
}
stopTransition();
@@ -868,14 +840,16 @@ void FullBackgroundWidget::startTransition()
void FullBackgroundWidget::stopTransition()
{
- if(m_backgrondGradationTimer && m_backgrondGradationTimer->isActive())
+ if (m_backgrondGradationTimer && m_backgrondGradationTimer->isActive())
m_backgrondGradationTimer->stop();
m_backgroundAlpha = 1.0;
m_gradualChanging = false;
}
-void FullBackgroundWidget::drawBackground(QPixmap * backgroundBack, QPixmap * backgroundFront,
- const QRect &rect, float alpha)
+void FullBackgroundWidget::drawBackground(QPixmap *backgroundBack,
+ QPixmap *backgroundFront,
+ const QRect &rect,
+ float alpha)
{
if (!backgroundBack || backgroundBack->isNull()) {
stopTransition();
@@ -886,7 +860,7 @@ void FullBackgroundWidget::drawBackground(QPixmap * backgroundBack, QPixmap * ba
painter.setOpacity(alpha);
QString color = Configuration::instance(this)->getValue("background-color").toString();
QColor cor;
- if(!color.isEmpty())
+ if (!color.isEmpty())
cor = color;
else
cor = "#035290";
@@ -899,7 +873,7 @@ void FullBackgroundWidget::drawBackground(QPixmap * backgroundBack, QPixmap * ba
QPainterPath path;
QPainter painter1(this);
painter1.setOpacity(0.25);
- painter1.setRenderHint(QPainter::Antialiasing); // 反锯齿;
+ painter1.setRenderHint(QPainter::Antialiasing); // 反锯齿;
painter1.setClipping(true);
painter1.setPen(Qt::transparent);
path.addRect(this->rect());
@@ -948,7 +922,7 @@ void FullBackgroundWidget::addBackgroundData(const QString &bgPath)
QString resolution = QString("%1x%2").arg(width).arg(height);
QPair<QString, QString> key(bgPath, resolution);
if (!m_allBackgroundsDataMap.contains(key)) {
- QPixmap *pixmap = new QPixmap(scaleBlurPixmap(width,height, bgPath));
+ QPixmap *pixmap = new QPixmap(scaleBlurPixmap(width, height, bgPath));
m_allBackgroundsDataMap[key] = pixmap;
}
}
@@ -956,17 +930,14 @@ void FullBackgroundWidget::addBackgroundData(const QString &bgPath)
void FullBackgroundWidget::onAddUserBackground(const QString &strUserName)
{
- m_loadingOneBackgroundFuture = QtConcurrent::run([=](){
+ m_loadingOneBackgroundFuture = QtConcurrent::run([=]() {
QString strBackground = getUserBackgroundPath(strUserName);
addBackgroundData(strBackground);
});
m_loadingOneBackgroundFuture.waitForFinished();
}
-void FullBackgroundWidget::onUserBackgroundChanged(const QString &strUserName)
-{
-
-}
+void FullBackgroundWidget::onUserBackgroundChanged(const QString &strUserName) {}
void FullBackgroundWidget::onCurrentUserBackground(const QString &strUserName)
{
@@ -975,7 +946,7 @@ void FullBackgroundWidget::onCurrentUserBackground(const QString &strUserName)
repaint();
}
-QPixmap* FullBackgroundWidget::getBackground(const QString &path, const QRect &rect)
+QPixmap *FullBackgroundWidget::getBackground(const QString &path, const QRect &rect)
{
if (path.isEmpty() || !QFile(path).exists())
return nullptr;
@@ -983,7 +954,7 @@ QPixmap* FullBackgroundWidget::getBackground(const QString &path, const QRect &r
QString resolution = QString("%1x%2").arg(rect.width()).arg(rect.height());
QPair<QString, QString> key(path, resolution);
- if (m_allBackgroundsDataMap.isEmpty()&& m_loadingOneBackgroundFuture.isRunning()) {
+ if (m_allBackgroundsDataMap.isEmpty() && m_loadingOneBackgroundFuture.isRunning()) {
m_loadingOneBackgroundFuture.waitForFinished();
} else {
if (!m_loadingOneBackgroundFuture.isFinished() && m_loadingOneBackgroundFuture.isStarted()) {
@@ -991,7 +962,7 @@ QPixmap* FullBackgroundWidget::getBackground(const QString &path, const QRect &r
}
}
if (!m_allBackgroundsDataMap.contains(key)) {
- QPixmap *pixmap = new QPixmap(scaleBlurPixmap(width(), height(), path));
+ QPixmap *pixmap = new QPixmap(scaleBlurPixmap(width(), height(), path));
m_allBackgroundsDataMap[key] = pixmap;
}
return m_allBackgroundsDataMap[key];
@@ -1012,7 +983,7 @@ void FullBackgroundWidget::RRScreenChangeEvent(bool isFirst)
XRRFreeOutputInfo(info);
}
- qDebug()<<"monitors = "<<listMonitors;
+ qDebug() << "monitors = " << listMonitors;
if (isFirst && DisplayService::instance()->isSaveParamInUsed()) {
m_listMonitors = listMonitors;
} else {
@@ -1023,7 +994,8 @@ void FullBackgroundWidget::RRScreenChangeEvent(bool isFirst)
void FullBackgroundWidget::onScreensChanged(QList<QString> listMonitors)
{
- qDebug()<<"newList = "<<listMonitors<<" listMonitors = "<<m_listMonitors << DisplayService::instance()->isJJW7200();
+ qDebug() << "newList = " << listMonitors << " listMonitors = " << m_listMonitors
+ << DisplayService::instance()->isJJW7200();
if (DisplayService::instance()->isJJW7200() == 0 && m_listMonitors.size() == listMonitors.size()) {
bool isAllFound = true;
for (auto monitor : listMonitors) {
@@ -1038,7 +1010,7 @@ void FullBackgroundWidget::onScreensChanged(QList<QString> listMonitors)
}
m_listMonitors = listMonitors;
- if(m_listMonitors.size() < 2) {
+ if (m_listMonitors.size() < 2) {
//默认设置显示最大分辨率
DisplayService::instance()->setOneDisplayMode();
} else {
diff --git a/src/widgets/grab-x11.cpp b/src/widgets/grab-x11.cpp
index 6ae94d5..2ad74f2 100644
--- a/src/widgets/grab-x11.cpp
+++ b/src/widgets/grab-x11.cpp
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
-**/
+ **/
#include "grab-x11.h"
#include <QX11Info>
#include <QDebug>
@@ -31,12 +31,15 @@
#define MAX_PROPERTY_VALUE_LEN 4096
-class XServerGraber{
+class XServerGraber
+{
public:
- XServerGraber() {
+ XServerGraber()
+ {
xcb_grab_server(QX11Info::connection());
}
- ~XServerGraber() {
+ ~XServerGraber()
+ {
xcb_ungrab_server(QX11Info::connection());
xcb_flush(QX11Info::connection());
}
@@ -44,18 +47,23 @@ public:
static bool grabKeyboard()
{
- int rv = XGrabKeyboard(QX11Info::display(), QX11Info::appRootWindow(),
- True, GrabModeAsync, GrabModeAsync, CurrentTime);
+ int rv = XGrabKeyboard(
+ QX11Info::display(), QX11Info::appRootWindow(), True, GrabModeAsync, GrabModeAsync, CurrentTime);
return (rv == GrabSuccess);
}
static bool grabMouse()
{
-#define GRABEVENTS ButtonPressMask | ButtonReleaseMask | PointerMotionMask | \
- EnterWindowMask | LeaveWindowMask
- int rv = XGrabPointer(QX11Info::display(), QX11Info::appRootWindow(),
- True, GRABEVENTS, GrabModeAsync, GrabModeAsync, None,
- None, CurrentTime);
+#define GRABEVENTS ButtonPressMask | ButtonReleaseMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask
+ int rv = XGrabPointer(QX11Info::display(),
+ QX11Info::appRootWindow(),
+ True,
+ GRABEVENTS,
+ GrabModeAsync,
+ GrabModeAsync,
+ None,
+ None,
+ CurrentTime);
#undef GRABEVENTS
return (rv == GrabSuccess);
@@ -68,35 +76,34 @@ bool establishGrab()
Q_UNUSED(xserverGraber);
- if(!grabKeyboard())
- return false;
-
-/*抓取鼠标会导致触摸无效,这里暂时取消掉*/
-/*
- if(!grabMouse()) {
- XUngrabKeyboard(QX11Info::display(), CurrentTime);
- XFlush(QX11Info::display());
+ if (!grabKeyboard())
return false;
- }
-*/
+
+ /*抓取鼠标会导致触摸无效,这里暂时取消掉*/
+ /*
+ if(!grabMouse()) {
+ XUngrabKeyboard(QX11Info::display(), CurrentTime);
+ XFlush(QX11Info::display());
+ return false;
+ }
+ */
return true;
}
bool closeGrab()
{
- //XSync(QX11Info::display(), False);
+ // XSync(QX11Info::display(), False);
XServerGraber xserverGraber;
Q_UNUSED(xserverGraber);
XUngrabKeyboard(QX11Info::display(), CurrentTime);
-// XUngrabPointer(QX11Info::display(), CurrentTime);
+ // XUngrabPointer(QX11Info::display(), CurrentTime);
XFlush(QX11Info::display());
return true;
}
-static Bool
-Window_Has_Property(Display * dpy, Window win, Atom atom)
+static Bool Window_Has_Property(Display *dpy, Window win, Atom atom)
{
Atom type_ret;
int format_ret;
@@ -105,16 +112,16 @@ Window_Has_Property(Display * dpy, Window win, Atom atom)
type_ret = None;
prop_ret = NULL;
- XGetWindowProperty(dpy, win, atom, 0, 0, False, AnyPropertyType,
- &type_ret, &format_ret, &num_ret,
- &bytes_after, &prop_ret);
+ XGetWindowProperty(
+ dpy, win, atom, 0, 0, False, AnyPropertyType, &type_ret, &format_ret, &num_ret, &bytes_after, &prop_ret);
if (prop_ret)
XFree(prop_ret);
return (type_ret != None) ? True : False;
}
-int getWindowByPid(Window win){
+int getWindowByPid(Window win)
+{
int ret = -1;
Atom xa_ret_type;
@@ -125,46 +132,44 @@ int getWindowByPid(Window win){
unsigned char *ret_prop;
int id = 0;
-
- Atom xa_prop_name = XInternAtom(QX11Info::display(), "_NET_WM_PID", False); // 取对应字串的AtomID
-
- if (XGetWindowProperty(QX11Info::display(), win, xa_prop_name, 0, // 获取窗口属性
- MAX_PROPERTY_VALUE_LEN / 4,
- False, XA_CARDINAL, &xa_ret_type, // XA_CARDINAL为数值类型
- &ret_format, &ret_nitems, &ret_bytes_after,
- &ret_prop) != Success) // 后五个参数是返回值
- {
- printf("Cannot get %s property.\n", "_NET_WM_PID");
- return -1;
- }
- else
+ Atom xa_prop_name = XInternAtom(QX11Info::display(), "_NET_WM_PID", False); // 取对应字串的AtomID
+
+ if (XGetWindowProperty(QX11Info::display(),
+ win,
+ xa_prop_name,
+ 0, // 获取窗口属性
+ MAX_PROPERTY_VALUE_LEN / 4,
+ False,
+ XA_CARDINAL,
+ &xa_ret_type, // XA_CARDINAL为数值类型
+ &ret_format,
+ &ret_nitems,
+ &ret_bytes_after,
+ &ret_prop)
+ != Success) // 后五个参数是返回值
{
- if(ret_prop)
- memcpy(&id, ret_prop, 4);// 类型传换
- qDebug()<<"window pid: "<<id;
+ printf("Cannot get %s property.\n", "_NET_WM_PID");
+ return -1;
+ } else {
+ if (ret_prop)
+ memcpy(&id, ret_prop, 4); // 类型传换
+ qDebug() << "window pid: " << id;
}
-
}
-static Bool
-Window_Is_Viewable(Display * dpy, Window win)
+static Bool Window_Is_Viewable(Display *dpy, Window win)
{
Bool ok;
XWindowAttributes xwa;
XGetWindowAttributes(dpy, win, &xwa);
- XClassHint ch;
- ch.res_name = NULL;
- ch.res_class = NULL;
- XGetClassHint (QX11Info::display(), win, &ch);
-
ok = (xwa.c_class == InputOutput) && (xwa.map_state == IsViewable);
return ok;
}
-static Bool getIsPopupMenu (Display *disp, Window win,
- Atom xa_prop_type, const char *prop_name, ulong *size) {
+static Bool getIsPopupMenu(Display *disp, Window win, Atom xa_prop_type, const char *prop_name, ulong *size)
+{
Atom xa_prop_name;
Atom xa_ret_type;
int ret_format;
@@ -176,16 +181,26 @@ static Bool getIsPopupMenu (Display *disp, Window win,
xa_prop_name = XInternAtom(disp, prop_name, False);
- qDebug()<<"xa_prop_name = "<<xa_prop_name;
- if (XGetWindowProperty(disp, win, xa_prop_name, 0,
- MAX_PROPERTY_VALUE_LEN / 4, False,
- xa_prop_type, &xa_ret_type, &ret_format,
- &ret_nitems, &ret_bytes_after, &ret_prop) != Success) {
+ qDebug() << "xa_prop_name = " << xa_prop_name;
+ if (XGetWindowProperty(disp,
+ win,
+ xa_prop_name,
+ 0,
+ MAX_PROPERTY_VALUE_LEN / 4,
+ False,
+ xa_prop_type,
+ &xa_ret_type,
+ &ret_format,
+ &ret_nitems,
+ &ret_bytes_after,
+ &ret_prop)
+ != Success) {
printf("Cannot get %s property.\n", prop_name);
return false;
}
- qDebug()<<"xa_ret_type = "<<xa_ret_type<<"ret_format = "<<ret_format<<"ret_nitems = "<<ret_nitems<<"xa_prop_type = "<<xa_prop_type;
+ qDebug() << "xa_ret_type = " << xa_ret_type << "ret_format = " << ret_format << "ret_nitems = " << ret_nitems
+ << "xa_prop_type = " << xa_prop_type;
if (xa_ret_type != xa_prop_type) {
printf("Invalid type of %s property.\n", prop_name);
XFree(ret_prop);
@@ -193,17 +208,16 @@ static Bool getIsPopupMenu (Display *disp, Window win,
}
Atom type, *adata;
- adata = (Atom*)ret_prop;
+ adata = (Atom *)ret_prop;
int i = 0;
- while (i < (int) ret_nitems)
- {
- QString windowType = XGetAtomName(QX11Info::display(),adata[i]);
- if(windowType == "_NET_WM_WINDOW_TYPE_POPUP_MENU")
+ while (i < (int)ret_nitems) {
+ QString windowType = XGetAtomName(QX11Info::display(), adata[i]);
+ if (windowType == "_NET_WM_WINDOW_TYPE_POPUP_MENU")
return true;
i++;
}
- qDebug()<<"ret = "<<ret;
+ qDebug() << "ret = " << ret;
if (size) {
*size = tmp_size;
}
@@ -212,37 +226,59 @@ static Bool getIsPopupMenu (Display *disp, Window win,
return false;
}
-bool checkHasPopupMenu(){
+QString getWindowNameByWid(Window window)
+{
+ XClassHint ch;
+ ch.res_name = NULL;
+ ch.res_class = NULL;
+ XGetClassHint(QX11Info::display(), window, &ch);
+
+ QString res(ch.res_name);
+ if (ch.res_name)
+ XFree(ch.res_name);
+ if (ch.res_class)
+ XFree(ch.res_class);
+ qDebug() << "CurFocusWnd:" << res;
+ return res;
+}
+
+bool checkHasPopupMenu()
+{
Window focus = 0;
- int rev = 0;
+ int rev = 0;
- XGetInputFocus (QX11Info::display(), &focus, &rev);
- if(focus != None && focus != PointerRoot){
- Window root, parent,win;
+ XGetInputFocus(QX11Info::display(), &focus, &rev);
+ if (focus != None && focus != PointerRoot) {
+ Window root, parent;
Window *children;
unsigned int n_children;
int i;
Window root_window = DefaultRootWindow(QX11Info::display());
- int count = 0;
- int ccount = 0;
- if (XQueryTree(QX11Info::display(), root_window, &root, &parent, &children, &n_children)){
- for (i = (int) n_children - 1; i >= 0; i--) {
+
+ if (XQueryTree(QX11Info::display(), root_window, &root, &parent, &children, &n_children)) {
+ for (i = (int)n_children - 1; i >= 0; i--) {
if (!Window_Is_Viewable(QX11Info::display(), children[i])) {
children[i] = None; /* Don't bother descending into this one */
continue;
}
- ccount ++;
- if (!Window_Has_Property(QX11Info::display(), children[i], XInternAtom(QX11Info::display(), "_NET_WM_WINDOW_TYPE", False)))
+
+ if (!Window_Has_Property(QX11Info::display(),
+ children[i],
+ XInternAtom(QX11Info::display(), "_NET_WM_WINDOW_TYPE", False)))
continue;
- count ++ ;
- /* Got one */
- win = children[i];
- return getIsPopupMenu(QX11Info::display(), win, XA_ATOM, "_NET_WM_WINDOW_TYPE", NULL);
+ if (getIsPopupMenu(QX11Info::display(), children[i], XA_ATOM, "_NET_WM_WINDOW_TYPE", NULL)) {
+ return true;
+ }
+
+ if (getWindowNameByWid(children[i]) == "ukui-session-tools") {
+ return true;
+ }
+
+ continue;
}
}
- qDebug()<<"count = "<<count<<"ccount = "<<count;
}
return false;
}
diff --git a/src/widgets/powerlistwidget.cpp b/src/widgets/powerlistwidget.cpp
index 277d904..606c020 100644
--- a/src/widgets/powerlistwidget.cpp
+++ b/src/widgets/powerlistwidget.cpp
@@ -14,33 +14,29 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
-**/
+ **/
#include <QKeyEvent>
#include "powerlistwidget.h"
-PowerListWidget::PowerListWidget(LockDialogModel *model ,QWidget *parent)
- : m_modelLockDialog(model),
- MyListWidget(parent)
+PowerListWidget::PowerListWidget(LockDialogModel *model, QWidget *parent)
+ : m_modelLockDialog(model), MyListWidget(parent)
{
initBtnShowFlag();
initUI();
initConnections();
}
-PowerListWidget::~PowerListWidget()
-{
-
-}
+PowerListWidget::~PowerListWidget() {}
bool PowerListWidget::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyRelease) {
MyListWidget *listWidget = qobject_cast<MyListWidget *>(obj);
if (listWidget) {
- if (listWidget && listWidget->hasFocus()) { //Tab键切入时设置焦点状态
+ if (listWidget && listWidget->hasFocus()) { // Tab键切入时设置焦点状态
listWidget->setCurrentRow(listWidget->currentRow(), QItemSelectionModel::SelectionFlag::SelectCurrent);
listWidget->currentItemChanged(listWidget->currentItem(), nullptr);
- } else { //Tab键切出时清空焦点状态
+ } else { // Tab键切出时清空焦点状态
listWidget->setCurrentRow(listWidget->currentRow(), QItemSelectionModel::SelectionFlag::Clear);
}
}
@@ -59,20 +55,18 @@ void PowerListWidget::initUI()
QString powerListStyle = "QListWidget{background:rgba(255, 255, 255, 0%); border: 0px;}"
"QListWidget::item{background:rgba(255, 255, 255, 0%);}";
setStyleSheet(powerListStyle);
- setFixedSize(QSize(BTN_ITEM_SIZE_WIDTH*sizeof(powerBtnList)/sizeof(powerBtnList[0])+1, BTN_ITEM_SIZE_HEIGHT));
-// powerBtnList[0].func = &PowerListWidget::setSystemSuspend1();
+ setFixedSize(QSize(BTN_ITEM_SIZE_WIDTH * sizeof(powerBtnList) / sizeof(powerBtnList[0]) + 1, BTN_ITEM_SIZE_HEIGHT));
+ // powerBtnList[0].func = &PowerListWidget::setSystemSuspend1();
onUpdateListInfo();
}
void PowerListWidget::initConnections()
{
connect(this, &PowerListWidget::itemClicked, this, &PowerListWidget::onListItemClicked);
-
}
void PowerListWidget::initBtnShowFlag()
{
- for (int i = 0; i < sizeof(powerBtnList)/sizeof(powerBtnList[0]) ; i++)
- {
+ for (int i = 0; i < sizeof(powerBtnList) / sizeof(powerBtnList[0]); i++) {
if (powerBtnList[i].canFuncName == QString("CanPowerOff"))
powerBtnList[i].m_show_flag = m_modelLockDialog->getCanPowerOff();
@@ -84,23 +78,20 @@ void PowerListWidget::initBtnShowFlag()
if (powerBtnList[i].canFuncName == QString("CanHibernate"))
powerBtnList[i].m_show_flag = m_modelLockDialog->getCanHibernate();
-
}
-
}
void PowerListWidget::onUpdateListInfo()
{
this->clear();
- for (int i = 0; i < sizeof(powerBtnList)/sizeof(powerBtnList[0]) ; i++)
- {
- qWarning() << __LINE__ << __FUNCTION__<< "11111111111" << i << powerBtnList[i].m_strName << powerBtnList[i].m_show_flag ;
+ for (int i = 0; i < sizeof(powerBtnList) / sizeof(powerBtnList[0]); i++) {
+ qDebug() << powerBtnList[i].m_strName << powerBtnList[i].setFuncName << powerBtnList[i].m_show_flag;
if (!powerBtnList[i].m_show_flag)
continue;
PowerItemWidget *btnWdg = new PowerItemWidget(this);
- btnWdg->setObjectName(powerBtnList[i].m_strName);
+ btnWdg->setObjectName(powerBtnList[i].setFuncName);
QListWidgetItem *btnItem = new QListWidgetItem();
btnItem->setSizeHint(QSize(powerBtnList[i].m_item_width, powerBtnList[i].m_item_height));
@@ -108,19 +99,18 @@ void PowerListWidget::onUpdateListInfo()
this->setItemWidget(btnItem, btnWdg);
btnWdg->setText(powerBtnList[i].m_strName);
btnWdg->setToolTip(powerBtnList[i].m_strToolTip);
- btnWdg->setIcon(QIcon(powerBtnList[i].m_strIcon).pixmap(powerBtnList[i].m_icon_width, powerBtnList[i].m_icon_width));
+ btnWdg->setIcon(
+ QIcon(powerBtnList[i].m_strIcon).pixmap(powerBtnList[i].m_icon_width, powerBtnList[i].m_icon_width));
}
}
void PowerListWidget::onListItemClicked(QListWidgetItem *item)
{
- qWarning() << __FUNCTION__ << __LINE__ ;
+ qWarning() << __FUNCTION__ << __LINE__;
QWidget *widget = itemWidget(item);
PowerItemWidget *currentItem = qobject_cast<PowerItemWidget *>(widget);
- for (int i = 0; i < sizeof(powerBtnList)/sizeof(powerBtnList[0]) ; i++)
- {
- if(powerBtnList[i].m_strName == currentItem->objectName())
- {
+ for (int i = 0; i < sizeof(powerBtnList) / sizeof(powerBtnList[0]); i++) {
+ if (powerBtnList[i].setFuncName == currentItem->objectName()) {
if (powerBtnList[i].setFuncName == "Hibernate" || powerBtnList[i].setFuncName == "Suspend") {
QStringList sleepLockcheck = m_modelLockDialog->getSleepLockcheck();
if (!sleepLockcheck.isEmpty()) {
@@ -138,7 +128,7 @@ void PowerListWidget::onListItemClicked(QListWidgetItem *item)
break;
}
}
- qWarning() << __LINE__ << "=================" << powerBtnList[i].setFuncName << __FUNCTION__;
+ qWarning() << __LINE__ << "=================" << powerBtnList[i].setFuncName << __FUNCTION__;
Q_EMIT m_modelLockDialog->setPowerManager(powerBtnList[i].setFuncName);
break;
}
@@ -157,35 +147,35 @@ void PowerListWidget::updateWidgetSize()
void PowerListWidget::setSystemPowerStatus(QString statusName)
{
- qWarning() << __LINE__ << __FUNCTION__ << statusName;
-
+ qWarning() << __LINE__ << __FUNCTION__ << statusName;
}
void PowerListWidget::changeEvent(QEvent *event)
{
- if(event->type() == QEvent::LanguageChange){
+ if (event->type() == QEvent::LanguageChange) {
refreshTranslate();
}
}
void PowerListWidget::refreshTranslate()
{
- for (int i = 0; i < sizeof(powerBtnList)/sizeof(powerBtnList[0]) ; i++)
- {
+ for (int i = 0; i < sizeof(powerBtnList) / sizeof(powerBtnList[0]); i++) {
if (powerBtnList[i].setFuncName == "Hibernate") {
powerBtnList[i].m_strName = tr("Hibernate");
- powerBtnList[i].m_strToolTip = tr("Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left");
+ powerBtnList[i].m_strToolTip = tr("Turn off your computer, but the app stays open. When the computer is "
+ "turned on, it can be restored to the state you left");
} else if (powerBtnList[i].setFuncName == "Suspend") {
powerBtnList[i].m_strName = tr("Suspend");
- powerBtnList[i].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");
+ powerBtnList[i].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");
} else if (powerBtnList[i].setFuncName == "Reboot") {
powerBtnList[i].m_strName = tr("Restart");
- powerBtnList[i].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");
+ powerBtnList[i].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");
} else if (powerBtnList[i].setFuncName == "PowerOff") {
- powerBtnList[i].m_strName = tr("Power Off");
+ powerBtnList[i].m_strName = tr("Shut Down");
powerBtnList[i].m_strToolTip = tr("Close all apps, and then shut down your computer");
}
}
onUpdateListInfo();
}
-
diff --git a/src/widgets/powerlistwidget.h b/src/widgets/powerlistwidget.h
index 5efc3a8..d0a9927 100644
--- a/src/widgets/powerlistwidget.h
+++ b/src/widgets/powerlistwidget.h
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
-**/
+ **/
#ifndef POWERLISTWIDGET_H
#define POWERLISTWIDGET_H
@@ -34,14 +34,15 @@ class MyListWidget;
class PowerItemWidget;
class QListWidgetItem;
class LockDialogModel;
-#define LISTSZIE(x) (sizeof(x)/sizeof(x[0]))
+#define LISTSZIE(x) (sizeof(x) / sizeof(x[0]))
//电源管理界面
-#define BTN_ITEM_SIZE_WIDTH 204
-#define BTN_ITEM_SIZE_HEIGHT 200
-#define BTN_ICON_SIZE_WIDTH 48
-#define BTN_ICON_SIZE_HEIGHT 48
+#define BTN_ITEM_SIZE_WIDTH 204
+#define BTN_ITEM_SIZE_HEIGHT 200
+#define BTN_ICON_SIZE_WIDTH 48
+#define BTN_ICON_SIZE_HEIGHT 48
-enum stateType {
+enum stateType
+{
REBOOT,
SHUTDOWN,
SLEEP,
@@ -53,15 +54,15 @@ class PowerListWidget : public MyListWidget
{
Q_OBJECT
public:
-
- explicit PowerListWidget(LockDialogModel *model,QWidget *parent = nullptr);
+ explicit PowerListWidget(LockDialogModel *model, QWidget *parent = nullptr);
~PowerListWidget();
- LockDialogModel * m_modelLockDialog;
+ LockDialogModel *m_modelLockDialog;
void updateWidgetSize();
void setSystemSuspend1();
- struct Btn_Data_Struct {
+ struct Btn_Data_Struct
+ {
QString m_strName;
QString m_strToolTip;
QString m_strIcon;
@@ -74,65 +75,59 @@ public:
QString canFuncName;
QString setFuncName;
int m_inhibitType;
-// void (*func)();
- } powerBtnList[4] = {
- //1.Hibernate
- {
- .m_strName = tr("Hibernate"),
- .m_strToolTip = tr("Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left"),
- .m_strIcon = ":/image/assets/hibernate.svg",
- .m_show_flag = true,
- .m_item_width = BTN_ITEM_SIZE_WIDTH,
- .m_item_height = BTN_ITEM_SIZE_HEIGHT,
- .m_icon_width = BTN_ICON_SIZE_WIDTH,
- .m_icon_height = BTN_ICON_SIZE_HEIGHT,
- .canFuncName = "CanHibernate",
- .setFuncName = "Hibernate",
- .m_inhibitType = HIBERNATE
- },
- //2.Suspend
- {
- .m_strName = tr("Suspend"),
- .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/suspend.svg",
- .m_show_flag = true,
- .m_item_width = BTN_ITEM_SIZE_WIDTH,
- .m_item_height = BTN_ITEM_SIZE_HEIGHT,
- .m_icon_width = BTN_ICON_SIZE_WIDTH,
- .m_icon_height = BTN_ICON_SIZE_HEIGHT,
- .canFuncName = "CanSuspend",
- .setFuncName = "Suspend",
- .m_inhibitType = SLEEP
- },
- //3.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,
- .m_item_width = BTN_ITEM_SIZE_WIDTH,
- .m_item_height = BTN_ITEM_SIZE_HEIGHT,
- .m_icon_width = BTN_ICON_SIZE_WIDTH,
- .m_icon_height = BTN_ICON_SIZE_HEIGHT,
- .canFuncName = "CanReboot",
- .setFuncName = "Reboot",
- .m_inhibitType = REBOOT
- },
- //4.Shut Down
- {
- .m_strName = tr("Power Off"),
- .m_strToolTip = tr("Close all apps, and then shut down your computer"),
- .m_strIcon = ":/image/assets/shutdown.svg",
- .m_show_flag = true,
- .m_item_width = BTN_ITEM_SIZE_WIDTH,
- .m_item_height = BTN_ITEM_SIZE_HEIGHT,
- .m_icon_width = BTN_ICON_SIZE_WIDTH,
- .m_icon_height = BTN_ICON_SIZE_HEIGHT,
- .canFuncName = "CanPowerOff",
- .setFuncName = "PowerOff",
- .m_inhibitType = SHUTDOWN
- }
- };
+ // void (*func)();
+ } powerBtnList[4]
+ = { // 1.Hibernate
+ { .m_strName = tr("Hibernate"),
+ .m_strToolTip = tr("Turn off your computer, but the app stays open. When the computer is turned on, it "
+ "can be restored to the state you left"),
+ .m_strIcon = ":/image/assets/hibernate.svg",
+ .m_show_flag = true,
+ .m_item_width = BTN_ITEM_SIZE_WIDTH,
+ .m_item_height = BTN_ITEM_SIZE_HEIGHT,
+ .m_icon_width = BTN_ICON_SIZE_WIDTH,
+ .m_icon_height = BTN_ICON_SIZE_HEIGHT,
+ .canFuncName = "CanHibernate",
+ .setFuncName = "Hibernate",
+ .m_inhibitType = HIBERNATE },
+ // 2.Suspend
+ { .m_strName = tr("Suspend"),
+ .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/suspend.svg",
+ .m_show_flag = true,
+ .m_item_width = BTN_ITEM_SIZE_WIDTH,
+ .m_item_height = BTN_ITEM_SIZE_HEIGHT,
+ .m_icon_width = BTN_ICON_SIZE_WIDTH,
+ .m_icon_height = BTN_ICON_SIZE_HEIGHT,
+ .canFuncName = "CanSuspend",
+ .setFuncName = "Suspend",
+ .m_inhibitType = SLEEP },
+ // 3.reboot
+ { .m_strName = tr("Restart"),
+ .m_strToolTip = tr("Close all apps, turn off your computer, and then turn your computer back on"),
+ .m_strIcon = ":/image/assets/reboot.svg",
+ .m_show_flag = true,
+ .m_item_width = BTN_ITEM_SIZE_WIDTH,
+ .m_item_height = BTN_ITEM_SIZE_HEIGHT,
+ .m_icon_width = BTN_ICON_SIZE_WIDTH,
+ .m_icon_height = BTN_ICON_SIZE_HEIGHT,
+ .canFuncName = "CanReboot",
+ .setFuncName = "Reboot",
+ .m_inhibitType = REBOOT },
+ // 4.Shut Down
+ { .m_strName = tr("Shut Down"),
+ .m_strToolTip = tr("Close all apps, and then shut down your computer"),
+ .m_strIcon = ":/image/assets/shutdown.svg",
+ .m_show_flag = true,
+ .m_item_width = BTN_ITEM_SIZE_WIDTH,
+ .m_item_height = BTN_ITEM_SIZE_HEIGHT,
+ .m_icon_width = BTN_ICON_SIZE_WIDTH,
+ .m_icon_height = BTN_ICON_SIZE_HEIGHT,
+ .canFuncName = "CanPowerOff",
+ .setFuncName = "PowerOff",
+ .m_inhibitType = SHUTDOWN }
+ };
void setSystemPowerStatus(QString);
@@ -149,21 +144,19 @@ public Q_SLOTS:
void onListItemClicked(QListWidgetItem *item);
private:
+ // QDBusInterface *sessionInterface;
+ // QDBusInterface *loginInterface;
-// QDBusInterface *sessionInterface;
-// QDBusInterface *loginInterface;
-
- bool m_canSuspend;
- bool m_canHibernate;
- bool m_canReboot ;
- bool m_canShutDown ;
+ bool m_canSuspend;
+ bool m_canHibernate;
+ bool m_canReboot;
+ bool m_canShutDown;
void initUI();
void initBtnShowFlag();
void initConnections();
void refreshTranslate();
-// void initDBusInterface();
-
+ // void initDBusInterface();
};
#endif // POWERLISTWIDGET_H