commit
409d97d40b
143
i18n_ts/bo.ts
143
i18n_ts/bo.ts
|
@ -12,163 +12,169 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AuthDialog</name>
|
<name>AuthDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -200,31 +206,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -240,17 +250,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -389,17 +400,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -407,7 +418,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LockWidget</name>
|
<name>LockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -474,12 +485,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -487,12 +498,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -614,6 +626,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Widget</name>
|
<name>Widget</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -729,12 +756,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
143
i18n_ts/bo_CN.ts
143
i18n_ts/bo_CN.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>བསྐྱར་དུ་ཞིབ་བཤེར་བྱ་དགོས།</translation>
|
<translation>བསྐྱར་དུ་ཞིབ་བཤེར་བྱ་དགོས།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>ཁྱོད་ཀྱིས་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།</translation>
|
<translation>ཁྱོད་ཀྱིས་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>ཁྱོད་ཀྱིས་དུས་ཚོད་སྐར་ཆ་གཅིག་གི་ནང་དུ་ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།</translation>
|
<translation>ཁྱོད་ཀྱིས་དུས་ཚོད་སྐར་ཆ་གཅིག་གི་ནང་དུ་ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>དུས་གཏན་དུ་ཟྭ་བརྒྱབ་པའི་རྩིས་ཐོ།</translation>
|
<translation>དུས་གཏན་དུ་ཟྭ་བརྒྱབ་པའི་རྩིས་ཐོ།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>ངོ་གདོང་ངོས་འཛིན་ལ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་</translation>
|
<translation>ངོ་གདོང་ངོས་འཛིན་ལ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>མཛུབ་རིས་མནན་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་</translation>
|
<translation>མཛུབ་རིས་མནན་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>སྒྲ་པར་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག</translation>
|
<translation>སྒྲ་པར་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>མཛུབ་མོའི་ནང་དུ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་</translation>
|
<translation>མཛུབ་མོའི་ནང་དུ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>iris ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་</translation>
|
<translation>iris ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>ནང་འཇུག་གི་གསང་གྲངས།</translation>
|
<translation>ནང་འཇུག་གི་གསང་གྲངས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">སྤྱོད་མཁན་གྱི་མིང་།</translation>
|
<translation type="unfinished">སྤྱོད་མཁན་གྱི་མིང་།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས།</translation>
|
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་ཐབས་བྲལ་བ་དང་། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས།</translation>
|
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་ཐབས་བྲལ་བ་དང་། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>རྒྱུན་ལྡན་མིན་པའི་དྲ་</translation>
|
<translation>རྒྱུན་ལྡན་མིན་པའི་དྲ་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation>མིའི་གདོང་ལ་དབྱེ་འབྱེད་བྱེད་པར་རེ་སྒུག་བྱེད་དུས་གསང་གྲངས་ཀྱི་སྒོ་ལྕགས་རྒྱག་རོགས།</translation>
|
<translation>མིའི་གདོང་ལ་དབྱེ་འབྱེད་བྱེད་པར་རེ་སྒུག་བྱེད་དུས་གསང་གྲངས་ཀྱི་སྒོ་ལྕགས་རྒྱག་རོགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation>མིའི་གདོང་།</translation>
|
<translation>མིའི་གདོང་།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation>སྒྲ་རིས།</translation>
|
<translation>སྒྲ་རིས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished">བདེ་འཇགས་གསང་ལྡེ་</translation>
|
<translation type="unfinished">བདེ་འཇགས་གསང་ལྡེ་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">དོན་ཚན་གཉིས་པ།</translation>
|
<translation type="unfinished">དོན་ཚན་གཉིས་པ།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>གསང་གྲངས་སྟོང་པ་ཡིན་མི་སྲིད།</translation>
|
<translation>གསང་གྲངས་སྟོང་པ་ཡིན་མི་སྲིད།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། ཁྱེད་ཚོར་ད་དུང་%2ལ་ཞིབ་བཤེར་བྱེད་པའི་གོ་སྐབས་ཡོད།</translation>
|
<translation>%1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། ཁྱེད་ཚོར་ད་དུང་%2ལ་ཞིབ་བཤེར་བྱེད་པའི་གོ་སྐབས་ཡོད།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་ན། ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག</translation>
|
<translation>བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་ན། ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>འབྲེལ་མཐུད་ཀྱི་འཕྲིན་ཕྲན་ཞིབ་བཤེར་ཨང་གྲངས་སམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་པ།</translation>
|
<translation>འབྲེལ་མཐུད་ཀྱི་འཕྲིན་ཕྲན་ཞིབ་བཤེར་ཨང་གྲངས་སམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་པ།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">བདེ་འཇགས་ཀྱི་གསང་བའི་ལྡེ་མིག་དེ་USBཡི་སྣེ་འདྲེན་དུ་འཇུག་རོགས།</translation>
|
<translation type="vanished">བདེ་འཇགས་ཀྱི་གསང་བའི་ལྡེ་མིག་དེ་USBཡི་སྣེ་འདྲེན་དུ་འཇུག་རོགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>གསང་གྲངས། </translation>
|
<translation>གསང་གྲངས། </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>ཐོ་འགོད་བྱེད་པ།</translation>
|
<translation>ཐོ་འགོད་བྱེད་པ།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">ཕྱིར་འཐེན།</translation>
|
<translation type="unfinished">ཕྱིར་འཐེན།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་བསྐྱར་དུ་འབྱུང་བར་སྔོན་འགོག་བྱེད་ཆེད་ཡིན།</translation>
|
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་བསྐྱར་དུ་འབྱུང་བར་སྔོན་འགོག་བྱེད་ཆེད་ཡིན།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་གི་སྒོ་རྒྱག་པར་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
|
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་གི་སྒོ་རྒྱག་པར་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་གནས་སྐབས་མཚམས་འཇོག་པར་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
|
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་གནས་སྐབས་མཚམས་འཇོག་པར་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་ལ་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
|
<translation type="unfinished">གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་ལ་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -413,17 +423,18 @@
|
||||||
<translation>དེ་བས་ཀྱང་མང་</translation>
|
<translation>དེ་བས་ཀྱང་མང་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>དེ་བས་ཀྱང་མང་</translation>
|
<translation>དེ་བས་ཀྱང་མང་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1887,17 +1898,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">ཐོ་འགོད་བྱེད་པ།</translation>
|
<translation type="unfinished">ཐོ་འགོད་བྱེད་པ།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1941,7 +1952,7 @@
|
||||||
<translation type="vanished">སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ།</translation>
|
<translation type="vanished">སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2019,12 +2030,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ།</translation>
|
<translation type="unfinished">སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2032,12 +2043,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>ཕྱིར་ལོག་པ།</translation>
|
<translation>ཕྱིར་ལོག་པ།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2511,6 +2523,21 @@
|
||||||
<translation type="vanished">བྲོས་བྱོལ་དུ་སོང་བ།</translation>
|
<translation type="vanished">བྲོས་བྱོལ་དུ་སོང་བ།</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2682,12 +2709,12 @@
|
||||||
<translation>སྒེའུ་ཁུང་གི་ཐོབ་ཐང་</translation>
|
<translation>སྒེའུ་ཁུང་གི་ཐོབ་ཐང་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
209
i18n_ts/de.ts
209
i18n_ts/de.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>Wiederholen</translation>
|
<translation>Wiederholen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>Versuchen Sie es in %1 Minuten erneut.</translation>
|
<translation>Versuchen Sie es in %1 Minuten erneut.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>Bitte versuchen Sie es in %1 Sekunden erneut.</translation>
|
<translation>Bitte versuchen Sie es in %1 Sekunden erneut.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>Das Konto wurde dauerhaft gesperrt.</translation>
|
<translation>Das Konto wurde dauerhaft gesperrt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>Überprüfen Sie die Gesichtserkennung oder geben Sie das Passwort ein, um zu entsperren</translation>
|
<translation>Überprüfen Sie die Gesichtserkennung oder geben Sie das Passwort ein, um zu entsperren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>Drücken Sie den Fingerabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
|
<translation>Drücken Sie den Fingerabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>Überprüfen Sie den Stimmabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
|
<translation>Überprüfen Sie den Stimmabdruck oder geben Sie das Passwort ein, um zu entsperren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>Überprüfen Sie die Fingervene oder geben Sie das Passwort ein, um zu entsperren</translation>
|
<translation>Überprüfen Sie die Fingervene oder geben Sie das Passwort ein, um zu entsperren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>Überprüfen Sie die Iris oder geben Sie das Passwort ein, um zu entsperren</translation>
|
<translation>Überprüfen Sie die Iris oder geben Sie das Passwort ein, um zu entsperren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>Passwort eingeben</translation>
|
<translation>Passwort eingeben</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">Nutzername</translation>
|
<translation type="unfinished">Nutzername</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<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>
|
<translation>%1 konnte nicht verifiziert werden, bitte geben Sie das Kennwort zum Entsperren ein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<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>
|
<translation>%1 kann nicht verifiziert werden, bitte geben Sie das Kennwort zum Entsperren ein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>Ungewöhnliches Netzwerk</translation>
|
<translation>Ungewöhnliches Netzwerk</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished">Ukey</translation>
|
<translation type="unfinished">Ukey</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">QRCode</translation>
|
<translation type="unfinished">QRCode</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>Das Kennwort darf nicht leer sein.</translation>
|
<translation>Das Kennwort darf nicht leer sein.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<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>
|
<translation>%1 konnte nicht verifiziert werden, Sie haben immer noch %2 Überprüfungsmöglichkeiten</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>Authentifizierungsfehler, Bitte versuchen Sie es erneut</translation>
|
<translation>Authentifizierungsfehler, Bitte versuchen Sie es erneut</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>Verwenden Sie den gebundenen Wechat-Scan-Code oder geben Sie das Passwort zum Entsperren ein</translation>
|
<translation>Verwenden Sie den gebundenen Wechat-Scan-Code oder geben Sie das Passwort zum Entsperren ein</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">Stecken Sie den Ukey in den USB-Anschluss</translation>
|
<translation type="vanished">Stecken Sie den Ukey in den USB-Anschluss</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>Passwort </translation>
|
<translation>Passwort </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>Einloggen</translation>
|
<translation>Einloggen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">Abbrechen</translation>
|
<translation type="unfinished">Abbrechen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<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>
|
<translation type="unfinished">Das folgende Programm wird ausgeführt, um einen Neustart des Systems zu verhindern!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<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>
|
<translation type="unfinished">Das folgende Programm wird ausgeführt, um das Herunterfahren des Systems zu verhindern!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<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>
|
<translation type="unfinished">Das folgende Programm wird ausgeführt, um zu verhindern, dass das System angehalten wird!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<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>
|
<translation type="unfinished">Das folgende Programm wird ausgeführt, um zu verhindern, dass das System in den Ruhezustand versetzt wird!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -408,17 +418,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>Mehr</translation>
|
<translation>Mehr</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation>ABC</translation>
|
<translation>ABC</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation>123</translation>
|
<translation>123</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1883,17 +1894,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">Einloggen</translation>
|
<translation type="unfinished">Einloggen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1937,7 +1948,7 @@
|
||||||
<translation type="vanished">WLAN</translation>
|
<translation type="vanished">WLAN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2015,12 +2026,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">LAN</translation>
|
<translation type="unfinished">LAN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">WLAN</translation>
|
<translation type="unfinished">WLAN</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2028,12 +2039,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation>&&?!</translation>
|
<translation>&&?!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>Rückgabe</translation>
|
<translation>Rückgabe</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2358,72 +2370,6 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
||||||
<source></source>
|
<source></source>
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="313"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="337"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>laptop primary battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="341"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>battery-backed AC power source</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="345"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>a monitor is a device to measure voltage and current</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="349"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless mice with internal batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="353"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless keyboard with internal battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="357"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>portable device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="361"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>cell phone (mobile...)</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="365"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>media player, mp3 etc</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="369"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="373"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
<comment>tablet device</comment>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2573,6 +2519,21 @@
|
||||||
<translation type="vanished">Hüpfen</translation>
|
<translation type="vanished">Hüpfen</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2744,12 +2705,12 @@
|
||||||
<translation>Fenster-ID</translation>
|
<translation>Fenster-ID</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
209
i18n_ts/es.ts
209
i18n_ts/es.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>Reintentar</translation>
|
<translation>Reintentar</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>Inténtelo de nuevo en %1 minutos.</translation>
|
<translation>Inténtelo de nuevo en %1 minutos.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>Inténtelo de nuevo en %1 segundos.</translation>
|
<translation>Inténtelo de nuevo en %1 segundos.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>Cuenta bloqueada permanentemente.</translation>
|
<translation>Cuenta bloqueada permanentemente.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>Verifique el reconocimiento facial o ingrese la contraseña para desbloquear</translation>
|
<translation>Verifique el reconocimiento facial o ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>Presione la huella dactilar o ingrese la contraseña para desbloquear</translation>
|
<translation>Presione la huella dactilar o ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>Verifica la huella de voz o ingresa la contraseña para desbloquear</translation>
|
<translation>Verifica la huella de voz o ingresa la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>Verifique la vena del dedo o ingrese la contraseña para desbloquear</translation>
|
<translation>Verifique la vena del dedo o ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>Verifique el iris o ingrese la contraseña para desbloquear</translation>
|
<translation>Verifique el iris o ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>Contraseña de entrada</translation>
|
<translation>Contraseña de entrada</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">Nombre de usuario</translation>
|
<translation type="unfinished">Nombre de usuario</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>No se pudo verificar %1, ingrese la contraseña para desbloquear</translation>
|
<translation>No se pudo verificar %1, ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>No se puede verificar %1, ingrese la contraseña para desbloquear</translation>
|
<translation>No se puede verificar %1, ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>Red anormal</translation>
|
<translation>Red anormal</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished">Ukey</translation>
|
<translation type="unfinished">Ukey</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">QRCode</translation>
|
<translation type="unfinished">QRCode</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>La contraseña no puede estar vacía</translation>
|
<translation>La contraseña no puede estar vacía</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<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>
|
<translation>No se pudo verificar %1, todavía tiene %2 oportunidades de verificación</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>Error de autenticación, inténtelo de nuevo</translation>
|
<translation>Error de autenticación, inténtelo de nuevo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>Use el código de escaneo de wechat vinculado o ingrese la contraseña para desbloquear</translation>
|
<translation>Use el código de escaneo de wechat vinculado o ingrese la contraseña para desbloquear</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">Inserte la ukey en el puerto USB</translation>
|
<translation type="vanished">Inserte la ukey en el puerto USB</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>Contraseña </translation>
|
<translation>Contraseña </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>Iniciar sesión</translation>
|
<translation>Iniciar sesión</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">Cancelar</translation>
|
<translation type="unfinished">Cancelar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<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>
|
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema se reinicie!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<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>
|
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema se apague!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<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>
|
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema se suspenda!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<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>
|
<translation type="unfinished">¡El siguiente programa se está ejecutando para evitar que el sistema hiberne!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -408,17 +418,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>Más</translation>
|
<translation>Más</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation>ABECEDARIO</translation>
|
<translation>ABECEDARIO</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation>123</translation>
|
<translation>123</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1883,17 +1894,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">Iniciar sesión</translation>
|
<translation type="unfinished">Iniciar sesión</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1941,7 +1952,7 @@
|
||||||
<translation type="vanished">WLAN</translation>
|
<translation type="vanished">WLAN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2019,12 +2030,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">LAN</translation>
|
<translation type="unfinished">LAN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">WLAN</translation>
|
<translation type="unfinished">WLAN</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2032,12 +2043,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation>&&?!</translation>
|
<translation>&&?!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>Devolución</translation>
|
<translation>Devolución</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2362,72 +2374,6 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
||||||
<source></source>
|
<source></source>
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="313"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="337"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>laptop primary battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="341"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>battery-backed AC power source</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="345"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>a monitor is a device to measure voltage and current</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="349"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless mice with internal batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="353"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless keyboard with internal battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="357"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>portable device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="361"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>cell phone (mobile...)</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="365"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>media player, mp3 etc</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="369"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="373"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
<comment>tablet device</comment>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2577,6 +2523,21 @@
|
||||||
<translation type="vanished">Saltarse</translation>
|
<translation type="vanished">Saltarse</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2748,12 +2709,12 @@
|
||||||
<translation>ID de ventana</translation>
|
<translation>ID de ventana</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
209
i18n_ts/fr.ts
209
i18n_ts/fr.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>Réessayer</translation>
|
<translation>Réessayer</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>Veuillez réessayer dans %1 minutes.</translation>
|
<translation>Veuillez réessayer dans %1 minutes.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>Veuillez réessayer dans %1 secondes.</translation>
|
<translation>Veuillez réessayer dans %1 secondes.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>Compte verrouillé définitivement.</translation>
|
<translation>Compte verrouillé définitivement.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>Vérifier la reconnaissance faciale ou saisir le mot de passe pour déverrouiller</translation>
|
<translation>Vérifier la reconnaissance faciale ou saisir le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>Appuyez sur l’empreinte digitale ou entrez le mot de passe pour déverrouiller</translation>
|
<translation>Appuyez sur l’empreinte digitale ou entrez le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>Vérifier l’empreinte vocale ou saisir le mot de passe pour déverrouiller</translation>
|
<translation>Vérifier l’empreinte vocale ou saisir le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>Vérifiez la veine du doigt ou entrez le mot de passe pour déverrouiller</translation>
|
<translation>Vérifiez la veine du doigt ou entrez le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>Vérifiez l’iris ou entrez le mot de passe pour déverrouiller</translation>
|
<translation>Vérifiez l’iris ou entrez le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>Mot de passe d’entrée</translation>
|
<translation>Mot de passe d’entrée</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">Nom d’utilisateur</translation>
|
<translation type="unfinished">Nom d’utilisateur</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<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>
|
<translation>Impossible de vérifier %1, veuillez entrer le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<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>
|
<translation>Impossible de vérifier %1, veuillez entrer le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>Réseau anormal</translation>
|
<translation>Réseau anormal</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished">Ukey (en anglais seulement)</translation>
|
<translation type="unfinished">Ukey (en anglais seulement)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">QRCode</translation>
|
<translation type="unfinished">QRCode</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>Le mot de passe ne peut pas être vide</translation>
|
<translation>Le mot de passe ne peut pas être vide</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<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>
|
<translation>Échec de la vérification %1, vous avez encore %2 possibilités de vérification</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>Échec de l’authentification, veuillez réessayer</translation>
|
<translation>Échec de l’authentification, veuillez réessayer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>Utilisez le code d’analyse wechat lié ou entrez le mot de passe pour déverrouiller</translation>
|
<translation>Utilisez le code d’analyse wechat lié ou entrez le mot de passe pour déverrouiller</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">Insérez l’ukey dans le port USB</translation>
|
<translation type="vanished">Insérez l’ukey dans le port USB</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>Mot de passe </translation>
|
<translation>Mot de passe </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>Connectez-vous</translation>
|
<translation>Connectez-vous</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">Annuler</translation>
|
<translation type="unfinished">Annuler</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de redémarrer !</translation>
|
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de redémarrer !</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de s’arrêter !</translation>
|
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de s’arrêter !</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de se suspendre !</translation>
|
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de se suspendre !</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de hiberner !</translation>
|
<translation type="unfinished">Le programme suivant est en cours d’exécution pour empêcher le système de hiberner !</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -408,17 +418,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>Plus</translation>
|
<translation>Plus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation>ABC</translation>
|
<translation>ABC</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation>123</translation>
|
<translation>123</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1883,17 +1894,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">Connectez-vous</translation>
|
<translation type="unfinished">Connectez-vous</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1937,7 +1948,7 @@
|
||||||
<translation type="vanished">Réseau local sans fil (WLAN)</translation>
|
<translation type="vanished">Réseau local sans fil (WLAN)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2015,12 +2026,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">LAN</translation>
|
<translation type="unfinished">LAN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">Réseau local sans fil (WLAN)</translation>
|
<translation type="unfinished">Réseau local sans fil (WLAN)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2028,12 +2039,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation>&&?!</translation>
|
<translation>&&?!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>Rendre</translation>
|
<translation>Rendre</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2358,72 +2370,6 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
||||||
<source></source>
|
<source></source>
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="313"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="337"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>laptop primary battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="341"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>battery-backed AC power source</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="345"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>a monitor is a device to measure voltage and current</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="349"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless mice with internal batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="353"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless keyboard with internal battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="357"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>portable device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="361"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>cell phone (mobile...)</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="365"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>media player, mp3 etc</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="369"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="373"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
<comment>tablet device</comment>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2573,6 +2519,21 @@
|
||||||
<translation type="vanished">Sautiller</translation>
|
<translation type="vanished">Sautiller</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2744,12 +2705,12 @@
|
||||||
<translation>ID de la fenêtre</translation>
|
<translation>ID de la fenêtre</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
209
i18n_ts/kk.ts
209
i18n_ts/kk.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>Ретри</translation>
|
<translation>Ретри</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>% 1 минутта қайталап көріңіз.</translation>
|
<translation>% 1 минутта қайталап көріңіз.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>% 1 секундта қайталап көріңіз.</translation>
|
<translation>% 1 секундта қайталап көріңіз.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>Тіркелгі біржолата құлыпталады.</translation>
|
<translation>Тіркелгі біржолата құлыпталады.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>Бет тануды тексеру немесе құлыптан босату үшін құпия сөзді енгізу</translation>
|
<translation>Бет тануды тексеру немесе құлыптан босату үшін құпия сөзді енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>Құлыптан босату үшін дактилоскопияны басу немесе құпия сөзді енгізу</translation>
|
<translation>Құлыптан босату үшін дактилоскопияны басу немесе құпия сөзді енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>Құлыптан босату үшін дауыстық ізді тексеру немесе құпия сөзді енгізу</translation>
|
<translation>Құлыптан босату үшін дауыстық ізді тексеру немесе құпия сөзді енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>Құлыптан босату үшін саусақ көктамырын тексеру немесе құпия сөзді енгізу</translation>
|
<translation>Құлыптан босату үшін саусақ көктамырын тексеру немесе құпия сөзді енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>Құлыптан босату үшін IRIS тексеру немесе құпиясөзді енгізу</translation>
|
<translation>Құлыптан босату үшін IRIS тексеру немесе құпиясөзді енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>Құпиясөзді енгізу</translation>
|
<translation>Құпиясөзді енгізу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">Пайдаланушы аты</translation>
|
<translation type="unfinished">Пайдаланушы аты</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>% 1 дегенді тексеру мүмкін болмады, құлыптан босату үшін құпия сөзді енгізіңіз</translation>
|
<translation>% 1 дегенді тексеру мүмкін болмады, құлыптан босату үшін құпия сөзді енгізіңіз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>% 1 дегенді тексеру мүмкін болмады, құлыптан босату үшін құпия сөзді енгізіңіз</translation>
|
<translation>% 1 дегенді тексеру мүмкін болмады, құлыптан босату үшін құпия сөзді енгізіңіз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>Аномальды желі</translation>
|
<translation>Аномальды желі</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">QRCode</translation>
|
<translation type="unfinished">QRCode</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>Құпия сөз бос болмады</translation>
|
<translation>Құпия сөз бос болмады</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>% 1 дегенді тексеру мүмкін болмады, сізде әлі де% 2 тексеру мүмкіндіктері бар</translation>
|
<translation>% 1 дегенді тексеру мүмкін болмады, сізде әлі де% 2 тексеру мүмкіндіктері бар</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,23 +229,24 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>Аутентификация сәтсіздігі, қайталап көріңіз</translation>
|
<translation>Аутентификация сәтсіздігі, қайталап көріңіз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>Байланыстыратын wechat сканерлеу кодын пайдаланыңыз немесе құлыптан босату үшін құпия сөзді енгізіңіз</translation>
|
<translation>Байланыстыратын wechat сканерлеу кодын пайдаланыңыз немесе құлыптан босату үшін құпия сөзді енгізіңіз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>Пароль </translation>
|
<translation>Пароль </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>Кіру</translation>
|
<translation>Кіру</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -360,31 +366,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">Болдырмау</translation>
|
<translation type="unfinished">Болдырмау</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">Жүйені қайта жүктеуге жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
<translation type="unfinished">Жүйені қайта жүктеуге жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">Жүйенің тоқтап қалуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
<translation type="unfinished">Жүйенің тоқтап қалуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">Жүйенің тоқтатылуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
<translation type="unfinished">Жүйенің тоқтатылуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">Жүйенің жорыққа шығуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
<translation type="unfinished">Жүйенің жорыққа шығуына жол бермеу үшін келесі бағдарлама іске асырылуда!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -400,17 +410,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1863,17 +1874,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">Кіру</translation>
|
<translation type="unfinished">Кіру</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1901,7 +1912,7 @@
|
||||||
<translation type="vanished">Бірнеше пайдаланушы бір уақытта кіргізіледі. Бұл жүйені қайта жүктеу керек пе?</translation>
|
<translation type="vanished">Бірнеше пайдаланушы бір уақытта кіргізіледі. Бұл жүйені қайта жүктеу керек пе?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1979,12 +1990,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">ЛАН</translation>
|
<translation type="unfinished">ЛАН</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">WLAN</translation>
|
<translation type="unfinished">WLAN</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1992,12 +2003,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2306,72 +2318,6 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
||||||
<source></source>
|
<source></source>
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="313"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="337"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>laptop primary battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="341"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>battery-backed AC power source</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="345"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>a monitor is a device to measure voltage and current</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="349"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless mice with internal batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="353"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless keyboard with internal battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="357"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>portable device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="361"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>cell phone (mobile...)</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="365"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>media player, mp3 etc</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="369"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="373"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
<comment>tablet device</comment>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2521,6 +2467,21 @@
|
||||||
<translation type="vanished">Өткізіп жіберу</translation>
|
<translation type="vanished">Өткізіп жіберу</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2692,12 +2653,12 @@
|
||||||
<translation>терезе идентифика- ты</translation>
|
<translation>терезе идентифика- ты</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
209
i18n_ts/ky.ts
209
i18n_ts/ky.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>Ретри</translation>
|
<translation>Ретри</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>%1 мүнөттө кайра аракет кылыңыз.</translation>
|
<translation>%1 мүнөттө кайра аракет кылыңыз.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>%1 секунданын ичинде кайра аракет кылыңыз.</translation>
|
<translation>%1 секунданын ичинде кайра аракет кылыңыз.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>Эсеп биротоло кулпуланган.</translation>
|
<translation>Эсеп биротоло кулпуланган.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>Беттин таанылышын текшерүү же кулпуну ачуу үчүн сырсөз киргизүү</translation>
|
<translation>Беттин таанылышын текшерүү же кулпуну ачуу үчүн сырсөз киргизүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>Манжа изин басуу же кулпуну ачуу үчүн сырсөз киргизүү</translation>
|
<translation>Манжа изин басуу же кулпуну ачуу үчүн сырсөз киргизүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>Үн изин текшерүү же сырсөз киргизүү</translation>
|
<translation>Үн изин текшерүү же сырсөз киргизүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>Манжа тамырын текшерүү же кулпуну ачуу үчүн сырсөз киргизүү</translation>
|
<translation>Манжа тамырын текшерүү же кулпуну ачуу үчүн сырсөз киргизүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>Ирис текшерүү же кулпусун ачуу үчүн сырсөз киргизүү</translation>
|
<translation>Ирис текшерүү же кулпусун ачуу үчүн сырсөз киргизүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>Сырсөз киргизүү</translation>
|
<translation>Сырсөз киргизүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">Колдонуучунун аты</translation>
|
<translation type="unfinished">Колдонуучунун аты</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>%1 текшерүүгө болбоду, кулпусун ачуу үчүн сырсөздү киргизиңиз</translation>
|
<translation>%1 текшерүүгө болбоду, кулпусун ачуу үчүн сырсөздү киргизиңиз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>%1 текшерүүгө болбоду, кулпусун ачуу үчүн сырсөздү киргизиңиз</translation>
|
<translation>%1 текшерүүгө болбоду, кулпусун ачуу үчүн сырсөздү киргизиңиз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>Аномалдуу тармак</translation>
|
<translation>Аномалдуу тармак</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">QRCode</translation>
|
<translation type="unfinished">QRCode</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>Сырсөз бош болушу мүмкүн эмес</translation>
|
<translation>Сырсөз бош болушу мүмкүн эмес</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>%1 текшерүүгө болбоду, сизде дагы эле %2 текшерүү мүмкүнчүлүктөрү бар</translation>
|
<translation>%1 текшерүүгө болбоду, сизде дагы эле %2 текшерүү мүмкүнчүлүктөрү бар</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,23 +229,24 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>Аутентификациянын жетишсиздиги, сураныч, кайрадан аракет кылыңыз</translation>
|
<translation>Аутентификациянын жетишсиздиги, сураныч, кайрадан аракет кылыңыз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>Чектелген вечат сканерлеу кодын колдонуңуз же сырсөздү ачуу үчүн киргизиңиз</translation>
|
<translation>Чектелген вечат сканерлеу кодын колдонуңуз же сырсөздү ачуу үчүн киргизиңиз</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>Сырсөз </translation>
|
<translation>Сырсөз </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>Кирүү</translation>
|
<translation>Кирүү</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -360,31 +366,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">Жокко чыгаруу</translation>
|
<translation type="unfinished">Жокко чыгаруу</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">Системаны кайра жүктөөдөн алдын алуу үчүн төмөнкү программа иштеп жатат!</translation>
|
<translation type="unfinished">Системаны кайра жүктөөдөн алдын алуу үчүн төмөнкү программа иштеп жатат!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">Системанын жабылышына жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
|
<translation type="unfinished">Системанын жабылышына жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">Системанын токтотулушуна жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
|
<translation type="unfinished">Системанын токтотулушуна жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">Системанын уктап кетишине жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
|
<translation type="unfinished">Системанын уктап кетишине жол бербөө үчүн төмөнкү программа иштеп жатат!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -400,17 +410,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1863,17 +1874,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">Кирүү</translation>
|
<translation type="unfinished">Кирүү</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1901,7 +1912,7 @@
|
||||||
<translation type="vanished">Бир эле учурда бир нече колдонуучулар катталган. Сиз бул системаны кайра жүктөп келет деп ишенесизби?</translation>
|
<translation type="vanished">Бир эле учурда бир нече колдонуучулар катталган. Сиз бул системаны кайра жүктөп келет деп ишенесизби?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1979,12 +1990,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">ЛАН</translation>
|
<translation type="unfinished">ЛАН</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">ВЛАН</translation>
|
<translation type="unfinished">ВЛАН</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1992,12 +2003,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2306,72 +2318,6 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
||||||
<source></source>
|
<source></source>
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="313"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="337"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>laptop primary battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="341"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>battery-backed AC power source</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="345"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>a monitor is a device to measure voltage and current</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="349"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless mice with internal batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="353"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless keyboard with internal battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="357"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>portable device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="361"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>cell phone (mobile...)</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="365"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>media player, mp3 etc</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="369"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="373"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
<comment>tablet device</comment>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2521,6 +2467,21 @@
|
||||||
<translation type="vanished">Өтүү</translation>
|
<translation type="vanished">Өтүү</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2692,12 +2653,12 @@
|
||||||
<translation>терезе идентификату</translation>
|
<translation>терезе идентификату</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
143
i18n_ts/mn.ts
143
i18n_ts/mn.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠬᠤ</translation>
|
<translation>ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠬᠤ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>%1 ᠮᠢᠨᠦ᠋ᠲᠦᠨ ᠳᠠᠷᠠᠭᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ</translation>
|
<translation>%1 ᠮᠢᠨᠦ᠋ᠲᠦᠨ ᠳᠠᠷᠠᠭᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>%1 ᠮᠢᠨᠦ᠋ᠲᠦᠨ ᠳᠠᠷᠠᠭᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ</translation>
|
<translation>%1 ᠮᠢᠨᠦ᠋ᠲᠦᠨ ᠳᠠᠷᠠᠭᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>ᠳᠠᠩᠰᠠ ᠨᠢᠭᠡᠨᠳᠡ ᠦᠨᠢᠳᠡ ᠤᠨᠢᠰᠤᠯᠠᠭᠳᠠᠪᠠ᠃</translation>
|
<translation>ᠳᠠᠩᠰᠠ ᠨᠢᠭᠡᠨᠳᠡ ᠦᠨᠢᠳᠡ ᠤᠨᠢᠰᠤᠯᠠᠭᠳᠠᠪᠠ᠃</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>ᠨᠢᠭᠤᠷ ᠱᠢᠷᠪᠢᠵᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠨᠢᠭᠤᠷ ᠱᠢᠷᠪᠢᠵᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>ᠬᠤᠷᠤᠭᠤᠨᠤ ᠤᠷᠤᠮ ᠳᠠᠷᠤᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠬᠤᠷᠤᠭᠤᠨᠤ ᠤᠷᠤᠮ ᠳᠠᠷᠤᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>ᠳᠠᠭᠤᠪᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠳᠠᠭᠤᠪᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>ᠬᠤᠷᠤᠭᠤᠨᠤ ᠨᠠᠮᠵᠢᠭᠤᠨ ᠰᠤᠳᠠᠯᠢᠶᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠬᠤᠷᠤᠭᠤᠨᠤ ᠨᠠᠮᠵᠢᠭᠤᠨ ᠰᠤᠳᠠᠯᠢᠶᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>ᠰᠤᠯᠤᠩᠭᠠ ᠪᠦᠷᠬᠦᠪᠴᠢᠶᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠰᠤᠯᠤᠩᠭᠠ ᠪᠦᠷᠬᠦᠪᠴᠢᠶᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠬᠤ</translation>
|
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠬᠤ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>%1ᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>%1ᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>%1ᠶᠢ/ᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠠᠷᠭᠠ ᠦᠬᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>%1ᠶᠢ/ᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠠᠷᠭᠠ ᠦᠬᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>ᠰᠦᠯᠵᠢᠶᠡ ᠬᠡᠪᠦᠨ ᠪᠤᠰᠤ</translation>
|
<translation>ᠰᠦᠯᠵᠢᠶᠡ ᠬᠡᠪᠦᠨ ᠪᠤᠰᠤ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋</translation>
|
<translation type="unfinished">ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠬᠤᠭᠤᠰᠤᠨ ᠪᠠᠢᠵᠤ ᠪᠤᠯᠬᠤ ᠦᠬᠡᠢ</translation>
|
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠬᠤᠭᠤᠰᠤᠨ ᠪᠠᠢᠵᠤ ᠪᠤᠯᠬᠤ ᠦᠬᠡᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>%1ᠶᠢᠨ/ᠦᠨ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠲᠠ ᠪᠠᠰᠠ%2 ᠤᠳᠠᠭᠠᠨᠤ ᠳᠤᠷᠱᠢᠬᠤ ᠵᠠᠪᠱᠢᠶᠠᠨ ᠲᠠᠢ</translation>
|
<translation>%1ᠶᠢᠨ/ᠦᠨ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠲᠠ ᠪᠠᠰᠠ%2 ᠤᠳᠠᠭᠠᠨᠤ ᠳᠤᠷᠱᠢᠬᠤ ᠵᠠᠪᠱᠢᠶᠠᠨ ᠲᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>ᠤᠶᠠᠭᠰᠠᠨ ᠸᠢᠴᠠᠲᠢᠶᠠᠷ ᠺᠤᠳ᠋ ᠱᠢᠷᠪᠢᠬᠦ᠌ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
<translation>ᠤᠶᠠᠭᠰᠠᠨ ᠸᠢᠴᠠᠲᠢᠶᠠᠷ ᠺᠤᠳ᠋ ᠱᠢᠷᠪᠢᠬᠦ᠌ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">ᠠᠮᠤᠷ ᠲᠦᠪᠰᠢᠨ ᠦ ᠨᠢᠭᠤᠴᠠ ᠶᠢ USB ᠦᠵᠦᠭᠦᠷ ᠲᠦ ᠬᠠᠳᠬᠤᠵᠤ ᠣᠷᠣᠭᠠᠷᠠᠢ ᠃</translation>
|
<translation type="vanished">ᠠᠮᠤᠷ ᠲᠦᠪᠰᠢᠨ ᠦ ᠨᠢᠭᠤᠴᠠ ᠶᠢ USB ᠦᠵᠦᠭᠦᠷ ᠲᠦ ᠬᠠᠳᠬᠤᠵᠤ ᠣᠷᠣᠭᠠᠷᠠᠢ ᠃</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ </translation>
|
<translation>ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
|
<translation>ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠳᠠᠬᠢᠵᠤ ᠡᠬᠢᠯᠡᠬᠦ᠌ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠳᠠᠬᠢᠵᠤ ᠡᠬᠢᠯᠡᠬᠦ᠌ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠬᠠᠭᠠᠬᠤᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠬᠠᠭᠠᠬᠤᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠤᠨᠳᠠᠬᠤᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠤᠨᠳᠠᠬᠤᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠢᠴᠡᠬᠡᠯᠡᠬᠦ᠌ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
<translation type="unfinished">ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮᠦᠨ ᠢᠴᠡᠬᠡᠯᠡᠬᠦ᠌ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨᠠ!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -408,17 +418,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>ᠨᠡᠩ ᠠᠷᠪᠢᠨ ᠃</translation>
|
<translation>ᠨᠡᠩ ᠠᠷᠪᠢᠨ ᠃</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation>ABC</translation>
|
<translation>ABC</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation>123</translation>
|
<translation>123</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1890,17 +1901,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
|
<translation type="unfinished">ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1944,7 +1955,7 @@
|
||||||
<translation type="vanished">ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨᠦ ᠰᠦᠯᠵᠢᠶᠡ</translation>
|
<translation type="vanished">ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨᠦ ᠰᠦᠯᠵᠢᠶᠡ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2022,12 +2033,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">ᠤᠳᠠᠰᠤᠳᠤ ᠰᠦᠯᠵᠢᠶᠡ</translation>
|
<translation type="unfinished">ᠤᠳᠠᠰᠤᠳᠤ ᠰᠦᠯᠵᠢᠶᠡ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨᠦ ᠰᠦᠯᠵᠢᠶᠡ</translation>
|
<translation type="unfinished">ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨᠦ ᠰᠦᠯᠵᠢᠶᠡ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2035,12 +2046,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation>&&?!</translation>
|
<translation>&&?!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>ᠪᠤᠴᠠᠵᠤ ᠢᠷᠡᠨᠡ ᠃</translation>
|
<translation>ᠪᠤᠴᠠᠵᠤ ᠢᠷᠡᠨᠡ ᠃</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2514,6 +2526,21 @@
|
||||||
<translation type="vanished">ᠦᠰᠦᠷᠴᠤ᠌ ᠭᠠᠷᠬᠤ</translation>
|
<translation type="vanished">ᠦᠰᠦᠷᠴᠤ᠌ ᠭᠠᠷᠬᠤ</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2685,12 +2712,12 @@
|
||||||
<translation>ᠴᠣᠩᠬᠣᠨᠤ᠋ id</translation>
|
<translation>ᠴᠣᠩᠬᠣᠨᠤ᠋ id</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -158,6 +158,10 @@
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">Convidado</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BatteryWidget</name>
|
<name>BatteryWidget</name>
|
||||||
|
@ -723,6 +727,17 @@
|
||||||
<translation type="obsolete">TextLabel</translation>
|
<translation type="obsolete">TextLabel</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<source>Login</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">Convidado</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Widget</name>
|
<name>Widget</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -158,6 +158,10 @@
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">гость</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BatteryWidget</name>
|
<name>BatteryWidget</name>
|
||||||
|
@ -723,6 +727,17 @@
|
||||||
<translation type="obsolete">TextLabel</translation>
|
<translation type="obsolete">TextLabel</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<source>Login</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">гость</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Widget</name>
|
<name>Widget</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
143
i18n_ts/tr.ts
143
i18n_ts/tr.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">Parola</translation>
|
<translation type="obsolete">Parola</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation type="unfinished">Yeniden Dene</translation>
|
<translation type="unfinished">Yeniden Dene</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -49,158 +49,164 @@
|
||||||
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
|
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<source>Guest</source>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<translation type="unfinished">Misafir</translation>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
</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"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished">Parmak İzi</translation>
|
<translation type="unfinished">Parmak İzi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished">Göz</translation>
|
<translation type="unfinished">Göz</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished">Yüz</translation>
|
<translation type="unfinished">Yüz</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished">Ses İzi</translation>
|
<translation type="unfinished">Ses İzi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -312,31 +318,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -352,17 +362,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -587,17 +598,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">Misafir</translation>
|
<translation type="unfinished">Misafir</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -621,7 +632,7 @@
|
||||||
<translation type="vanished">Kullanıcı Değiştir</translation>
|
<translation type="vanished">Kullanıcı Değiştir</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -688,12 +699,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -701,12 +712,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -887,6 +899,21 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">Misafir</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Widget</name>
|
<name>Widget</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -1002,12 +1029,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
209
i18n_ts/ug.ts
209
i18n_ts/ug.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>قايتا قايتا تىرشىش</translation>
|
<translation>قايتا قايتا تىرشىش</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>٪1 مىنۇت ئىچىدە قايتا سىناپ بېقىڭ.</translation>
|
<translation>٪1 مىنۇت ئىچىدە قايتا سىناپ بېقىڭ.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>٪1 سېكۇنت ئىچىدە قايتا سىناپ بېقىڭ.</translation>
|
<translation>٪1 سېكۇنت ئىچىدە قايتا سىناپ بېقىڭ.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>ھېسابات مەڭگۈلۈك قۇلۇپلىنىدۇ.</translation>
|
<translation>ھېسابات مەڭگۈلۈك قۇلۇپلىنىدۇ.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>چىراي تونۇشنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
<translation>چىراي تونۇشنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>بارماق ئىزىنى بېسىش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
<translation>بارماق ئىزىنى بېسىش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>ئاۋاز ئىزىنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
<translation>ئاۋاز ئىزىنى دەلىللەش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>بارماق تومۇرىنى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
<translation>بارماق تومۇرىنى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>Iris نى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
<translation>Iris نى ئېنىقلاش ياكى مەخپىي نومۇر كىرگۈزۈش ئارقىلىق قۇلۇپ ئېچىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>ئىم كىرگۈزۈش</translation>
|
<translation>ئىم كىرگۈزۈش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">ئىشلەتكۈچى نامى</translation>
|
<translation type="unfinished">ئىشلەتكۈچى نامى</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>٪1 نى دەلىللەش مەغلۇپ بولدى، مەخپى نۇمۇر كىرگۈزۈڭ</translation>
|
<translation>٪1 نى دەلىللەش مەغلۇپ بولدى، مەخپى نۇمۇر كىرگۈزۈڭ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>٪1 نى دەلىللەشكە ئامالسىز، مەخپىي نومۇرنى كىرگۈزۈپ قۇلۇپنى ئاچ</translation>
|
<translation>٪1 نى دەلىللەشكە ئامالسىز، مەخپىي نومۇرنى كىرگۈزۈپ قۇلۇپنى ئاچ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>بىنورمال تور</translation>
|
<translation>بىنورمال تور</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">QRCode</translation>
|
<translation type="unfinished">QRCode</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>مەخپىي نومۇرنى بوش قويۇشقا بولمايدۇ</translation>
|
<translation>مەخپىي نومۇرنى بوش قويۇشقا بولمايدۇ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>٪1 نى دەلىللەش مەغلۇپ بولدى، سىزدە يەنىلا ٪2 دەلىللەش پۇرسىتى بار</translation>
|
<translation>٪1 نى دەلىللەش مەغلۇپ بولدى، سىزدە يەنىلا ٪2 دەلىللەش پۇرسىتى بار</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,23 +229,24 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>دەلىللەش مەغلۇپ بولدى، قايتا سىناپ بېقىڭ</translation>
|
<translation>دەلىللەش مەغلۇپ بولدى، قايتا سىناپ بېقىڭ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>باغلانغان ئۈندىدارنى سىكاننېرلاش كودى ياكى مەخپىي نومۇرىنى كىرگۈزۈپ قۇلۇپ ئېچىش</translation>
|
<translation>باغلانغان ئۈندىدارنى سىكاننېرلاش كودى ياكى مەخپىي نومۇرىنى كىرگۈزۈپ قۇلۇپ ئېچىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>ئىم </translation>
|
<translation>ئىم </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>كىرىش</translation>
|
<translation>كىرىش</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -360,31 +366,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">ئەمەلدىن قالدۇرۇش</translation>
|
<translation type="unfinished">ئەمەلدىن قالدۇرۇش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">سېستىمىنىڭ قايتا قوزغىلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا بولىۋاتىدۇ!</translation>
|
<translation type="unfinished">سېستىمىنىڭ قايتا قوزغىلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا بولىۋاتىدۇ!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">تۆۋەندىكى پروگرامما سىستېمىنىڭ تاقىلىپ قېلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن يۈگۈرۈۋاتىدۇ!</translation>
|
<translation type="unfinished">تۆۋەندىكى پروگرامما سىستېمىنىڭ تاقىلىپ قېلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن يۈگۈرۈۋاتىدۇ!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">سېستىمىنىڭ توختىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا قىلىنىۋاتىدۇ!</translation>
|
<translation type="unfinished">سېستىمىنىڭ توختىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا قىلىنىۋاتىدۇ!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">سېستىمىنىڭ تىزگىنلەپ قېلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا بولىۋاتىدۇ!</translation>
|
<translation type="unfinished">سېستىمىنىڭ تىزگىنلەپ قېلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن تۆۋەندىكى پروگرامما ئىجرا بولىۋاتىدۇ!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -400,17 +410,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1863,17 +1874,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">كىرىش</translation>
|
<translation type="unfinished">كىرىش</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1901,7 +1912,7 @@
|
||||||
<translation type="vanished">بىرلا ۋاقىتتا كۆپ ئابونت تىزىملىتىپ كىرىدۇ. سىز بۇ سىستېمىنى قايتىدىن قوزغىماقچى ئىكەنلىكىڭىزنى جەزىملەشتۈرەلەمسىز؟</translation>
|
<translation type="vanished">بىرلا ۋاقىتتا كۆپ ئابونت تىزىملىتىپ كىرىدۇ. سىز بۇ سىستېمىنى قايتىدىن قوزغىماقچى ئىكەنلىكىڭىزنى جەزىملەشتۈرەلەمسىز؟</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1979,12 +1990,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">LAN</translation>
|
<translation type="unfinished">LAN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">WLAN</translation>
|
<translation type="unfinished">WLAN</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1992,12 +2003,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2306,72 +2318,6 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
<location filename="../src/dbusifs/enginedevice.cpp" line="308"/>
|
||||||
<source></source>
|
<source></source>
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="313"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>this is only shown for laptops with multiple batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="337"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>laptop primary battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="341"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>battery-backed AC power source</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="345"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>a monitor is a device to measure voltage and current</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="349"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless mice with internal batteries</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="353"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>wireless keyboard with internal battery</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="357"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>portable device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="361"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>cell phone (mobile...)</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="365"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>media player, mp3 etc</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="369"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/dbusifs/enginedevice.cpp" line="373"/>
|
|
||||||
<source></source>
|
|
||||||
<comment>tablet device</comment>
|
<comment>tablet device</comment>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2521,6 +2467,21 @@
|
||||||
<translation type="vanished">ئاتلاندۇق</translation>
|
<translation type="vanished">ئاتلاندۇق</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2692,12 +2653,12 @@
|
||||||
<translation>كۆزنەك id</translation>
|
<translation>كۆزنەك id</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
187
i18n_ts/zh_CN.ts
187
i18n_ts/zh_CN.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>重试</translation>
|
<translation>重试</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -46,132 +46,137 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Password: </source>
|
<source>Password: </source>
|
||||||
<translation>密码:</translation>
|
<translation type="vanished">密码:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Account locked %1 minutes due to %2 fail attempts</source>
|
<source>Account locked %1 minutes due to %2 fail attempts</source>
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>请%1分钟后再试</translation>
|
<translation>请%1分钟后再试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>请%1秒后再试</translation>
|
<translation>请%1秒后再试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>账号已被永久锁定</translation>
|
<translation>账号已被永久锁定</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>验证人脸识别或输入密码解锁</translation>
|
<translation>验证人脸识别或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation>游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>按压指纹或输入密码解锁</translation>
|
<translation>按压指纹或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>验证声纹或输入密码解锁</translation>
|
<translation>验证声纹或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>验证指静脉或输入密码解锁</translation>
|
<translation>验证指静脉或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>验证虹膜或输入密码解锁</translation>
|
<translation>验证虹膜或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>输入密码</translation>
|
<translation>输入密码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation>用户名:</translation>
|
<translation>用户名:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation>用户名输入错误</translation>
|
<translation>用户名输入错误</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation>登录</translation>
|
<translation>登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>验证%1失败,请输入密码解锁</translation>
|
<translation>验证%1失败,请输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>无法验证%1,请输入密码解锁</translation>
|
<translation>无法验证%1,请输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>网络异常</translation>
|
<translation>网络异常</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation>人脸识别等待超时,请点击刷新或输入密码解锁</translation>
|
<translation>人脸识别等待超时,请点击刷新或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation>指纹</translation>
|
<translation>指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation>指静脉</translation>
|
<translation>指静脉</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation>虹膜</translation>
|
<translation>虹膜</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation>人脸识别</translation>
|
<translation>人脸识别</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation>声纹</translation>
|
<translation>声纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation>安全密钥</translation>
|
<translation>安全密钥</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation>二维码</translation>
|
<translation>二维码</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>密码不能为空</translation>
|
<translation>密码不能为空</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>验证%1失败,您还有%2次尝试机会</translation>
|
<translation>验证%1失败,您还有%2次尝试机会</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>认证失败,请重试</translation>
|
<translation>认证失败,请重试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>使用绑定的微信扫码或输入密码解锁</translation>
|
<translation>使用绑定的微信扫码或输入密码解锁</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">请将安全密钥插入USB端口</translation>
|
<translation type="vanished">请将安全密钥插入USB端口</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>密码 </translation>
|
<translation>密码 </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>登录</translation>
|
<translation>登录</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation>取消</translation>
|
<translation>取消</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation>确认</translation>
|
<translation>确认</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation>以下程序正在运行,阻止系统重启!</translation>
|
<translation>以下程序正在运行,阻止系统重启!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation>以下程序正在运行,阻止系统关机!</translation>
|
<translation>以下程序正在运行,阻止系统关机!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation>以下程序正在运行,阻止系统进入睡眠!</translation>
|
<translation>以下程序正在运行,阻止系统进入睡眠!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation>以下程序正在运行,阻止系统进入休眠!</translation>
|
<translation>以下程序正在运行,阻止系统进入休眠!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -408,17 +418,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>更多</translation>
|
<translation>更多</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1867,19 +1878,19 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>启动会话失败。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">登录</translation>
|
<translation>登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation>游客</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1910,7 +1921,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
|
||||||
<translation>同时有多个用户登录系统,您确定要退出系统吗?</translation>
|
<translation type="vanished">同时有多个用户登录系统,您确定要退出系统吗?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
|
@ -1921,9 +1932,9 @@
|
||||||
<translation type="vanished">无线局域网</translation>
|
<translation type="vanished">无线局域网</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="931"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>同时有多个用户处于登录状态,你确定要%1吗?</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1947,37 +1958,37 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1023"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished">指纹</translation>
|
<translation>指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1025"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished">指静脉</translation>
|
<translation>指静脉</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1027"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished">虹膜</translation>
|
<translation>虹膜</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1029"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>人脸识别</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1031"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished">声纹</translation>
|
<translation>声纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1033"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished">安全密钥</translation>
|
<translation>安全密钥</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
|
<location filename="../src/widgets/loginoptionswidget.cpp" line="1035"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">二维码</translation>
|
<translation>二维码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Wechat</source>
|
<source>Wechat</source>
|
||||||
|
@ -1999,25 +2010,26 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">有线网络</translation>
|
<translation>有线网络</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">无线局域网</translation>
|
<translation>无线局域网</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>返回</translation>
|
<translation>返回</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2176,7 +2188,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="64"/>
|
||||||
<source>Hibernate</source>
|
<source>Hibernate</source>
|
||||||
<translation type="unfinished">休眠</translation>
|
<translation>休眠</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="65"/>
|
||||||
|
@ -2186,7 +2198,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="78"/>
|
||||||
<source>Suspend</source>
|
<source>Suspend</source>
|
||||||
<translation type="unfinished">睡眠</translation>
|
<translation>睡眠</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="79"/>
|
||||||
|
@ -2197,12 +2209,12 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="92"/>
|
||||||
<source>Restart</source>
|
<source>Restart</source>
|
||||||
<translation type="unfinished">重启</translation>
|
<translation>重启</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="106"/>
|
||||||
<source>Power Off</source>
|
<source>Power Off</source>
|
||||||
<translation type="unfinished">关机</translation>
|
<translation>关机</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
|
<location filename="../src/widgets/powerlistwidget.h" line="107"/>
|
||||||
|
@ -2315,7 +2327,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/common/biodefines.cpp" line="35"/>
|
<location filename="../src/common/biodefines.cpp" line="35"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">人脸识别</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/common/biodefines.cpp" line="37"/>
|
<location filename="../src/common/biodefines.cpp" line="37"/>
|
||||||
|
@ -2483,6 +2495,21 @@
|
||||||
<translation type="vanished">跳过</translation>
|
<translation type="vanished">跳过</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2557,7 +2584,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
|
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="59"/>
|
||||||
<source>how long to show lock</source>
|
<source>how long to show lock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">多久显示锁屏</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2565,7 +2592,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="62"/>
|
<location filename="../src/lock-dialog/lockdialogmodel.cpp" line="62"/>
|
||||||
<source>if show lock</source>
|
<source>if show lock</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">是否锁屏</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -2654,12 +2681,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
143
i18n_ts/zh_HK.ts
143
i18n_ts/zh_HK.ts
|
@ -24,7 +24,7 @@
|
||||||
<translation type="obsolete">使用密码认证</translation>
|
<translation type="obsolete">使用密码认证</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1085"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1117"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>重試</translation>
|
<translation>重試</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -53,125 +53,130 @@
|
||||||
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
<translation type="vanished">账户锁定%1分钟由于%2次错误尝试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1148"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1186"/>
|
||||||
<source>Please try again in %1 minutes.</source>
|
<source>Please try again in %1 minutes.</source>
|
||||||
<translation>請在 %1 分鐘後重試。</translation>
|
<translation>請在 %1 分鐘後重試。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1155"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1193"/>
|
||||||
<source>Please try again in %1 seconds.</source>
|
<source>Please try again in %1 seconds.</source>
|
||||||
<translation>請在 %1 秒後重試。</translation>
|
<translation>請在 %1 秒後重試。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1162"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1200"/>
|
||||||
<source>Account locked permanently.</source>
|
<source>Account locked permanently.</source>
|
||||||
<translation>帳戶永久鎖定。</translation>
|
<translation>帳戶永久鎖定。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="522"/>
|
<location filename="../src/widgets/authdialog.cpp" line="549"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="565"/>
|
<location filename="../src/widgets/authdialog.cpp" line="592"/>
|
||||||
<source>Verify face recognition or enter password to unlock</source>
|
<source>Verify face recognition or enter password to unlock</source>
|
||||||
<translation>驗證人臉識別或輸入密碼解鎖</translation>
|
<translation>驗證人臉識別或輸入密碼解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="527"/>
|
<location filename="../src/widgets/authdialog.cpp" line="348"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="554"/>
|
||||||
<source>Press fingerprint or enter password to unlock</source>
|
<source>Press fingerprint or enter password to unlock</source>
|
||||||
<translation>按指紋或輸入密碼解鎖</translation>
|
<translation>按指紋或輸入密碼解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="532"/>
|
<location filename="../src/widgets/authdialog.cpp" line="559"/>
|
||||||
<source>Verify voiceprint or enter password to unlock</source>
|
<source>Verify voiceprint or enter password to unlock</source>
|
||||||
<translation>驗證聲紋或輸入密碼以解鎖</translation>
|
<translation>驗證聲紋或輸入密碼以解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="537"/>
|
<location filename="../src/widgets/authdialog.cpp" line="564"/>
|
||||||
<source>Verify finger vein or enter password to unlock</source>
|
<source>Verify finger vein or enter password to unlock</source>
|
||||||
<translation>驗證指靜脈或輸入密碼解鎖</translation>
|
<translation>驗證指靜脈或輸入密碼解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="542"/>
|
<location filename="../src/widgets/authdialog.cpp" line="569"/>
|
||||||
<source>Verify iris or enter password to unlock</source>
|
<source>Verify iris or enter password to unlock</source>
|
||||||
<translation>驗證虹膜或輸入密碼解鎖</translation>
|
<translation>驗證虹膜或輸入密碼解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="860"/>
|
<location filename="../src/widgets/authdialog.cpp" line="887"/>
|
||||||
<source>Input Password</source>
|
<source>Input Password</source>
|
||||||
<translation>輸入密碼</translation>
|
<translation>輸入密碼</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="865"/>
|
<location filename="../src/widgets/authdialog.cpp" line="892"/>
|
||||||
<source>Username</source>
|
<source>Username</source>
|
||||||
<translation type="unfinished">使用者名</translation>
|
<translation type="unfinished">使用者名</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="928"/>
|
<location filename="../src/widgets/authdialog.cpp" line="960"/>
|
||||||
<source>User name input error!</source>
|
<source>User name input error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1005"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1037"/>
|
||||||
<source>login</source>
|
<source>login</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1382"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1420"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1534"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1572"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1675"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1713"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1852"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1890"/>
|
||||||
<source>Failed to verify %1, please enter password to unlock</source>
|
<source>Failed to verify %1, please enter password to unlock</source>
|
||||||
<translation>驗證 %1 失敗,請輸入密碼進行解鎖</translation>
|
<translation>驗證 %1 失敗,請輸入密碼進行解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1384"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1422"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1536"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1574"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1679"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1717"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1681"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1719"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1854"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1892"/>
|
||||||
<source>Unable to verify %1, please enter password to unlock</source>
|
<source>Unable to verify %1, please enter password to unlock</source>
|
||||||
<translation>無法驗證 %1,請輸入密碼進行解鎖</translation>
|
<translation>無法驗證 %1,請輸入密碼進行解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1709"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1747"/>
|
||||||
<source>Abnormal network</source>
|
<source>Abnormal network</source>
|
||||||
<translation>網路異常</translation>
|
<translation>網路異常</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1716"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1754"/>
|
||||||
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
<source>Face recognition waiting time out, please click refresh or enter the password to unlock.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1982"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2020"/>
|
||||||
<source>FingerPrint</source>
|
<source>FingerPrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1984"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2022"/>
|
||||||
<source>FingerVein</source>
|
<source>FingerVein</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1986"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2024"/>
|
||||||
<source>Iris</source>
|
<source>Iris</source>
|
||||||
<translation type="unfinished">虹膜</translation>
|
<translation type="unfinished">虹膜</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1988"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2026"/>
|
||||||
<source>Face</source>
|
<source>Face</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1990"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2028"/>
|
||||||
<source>VoicePrint</source>
|
<source>VoicePrint</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1992"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2030"/>
|
||||||
<source>Ukey</source>
|
<source>Ukey</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1994"/>
|
<location filename="../src/widgets/authdialog.cpp" line="2032"/>
|
||||||
<source>QRCode</source>
|
<source>QRCode</source>
|
||||||
<translation type="unfinished">微信掃碼</translation>
|
<translation type="unfinished">微信掃碼</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -180,8 +185,8 @@
|
||||||
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
<translation type="vanished">使用绑定的微信扫码或输入密码登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="703"/>
|
<location filename="../src/widgets/authdialog.cpp" line="730"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="704"/>
|
<location filename="../src/widgets/authdialog.cpp" line="731"/>
|
||||||
<source>Password cannot be empty</source>
|
<source>Password cannot be empty</source>
|
||||||
<translation>密碼不能為空</translation>
|
<translation>密碼不能為空</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -194,8 +199,8 @@
|
||||||
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
<translation type="vanished">无法验证%1,请输入密码.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1694"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1732"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1698"/>
|
<location filename="../src/widgets/authdialog.cpp" line="1736"/>
|
||||||
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
<source>Failed to verify %1, you still have %2 verification opportunities</source>
|
||||||
<translation>驗證 %1 失敗,您仍有 %2 次驗證機會</translation>
|
<translation>驗證 %1 失敗,您仍有 %2 次驗證機會</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -224,13 +229,13 @@
|
||||||
<translation type="vanished">请输入密码或者录入指纹</translation>
|
<translation type="vanished">请输入密码或者录入指纹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="931"/>
|
<location filename="../src/widgets/authdialog.cpp" line="963"/>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="936"/>
|
<location filename="../src/widgets/authdialog.cpp" line="968"/>
|
||||||
<source>Authentication failure, Please try again</source>
|
<source>Authentication failure, Please try again</source>
|
||||||
<translation>身份驗證失敗,請重試</translation>
|
<translation>身份驗證失敗,請重試</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="547"/>
|
<location filename="../src/widgets/authdialog.cpp" line="574"/>
|
||||||
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
<source>Use the bound wechat scanning code or enter the password to unlock</source>
|
||||||
<translation>使用綁定的微信掃碼或輸入密碼解鎖</translation>
|
<translation>使用綁定的微信掃碼或輸入密碼解鎖</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -243,12 +248,13 @@
|
||||||
<translation type="vanished">將 Ukey 插入 USB 埠</translation>
|
<translation type="vanished">將 Ukey 插入 USB 埠</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="857"/>
|
<location filename="../src/widgets/authdialog.cpp" line="884"/>
|
||||||
<source>Password </source>
|
<source>Password </source>
|
||||||
<translation>密碼 </translation>
|
<translation>密碼 </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/authdialog.cpp" line="1076"/>
|
<location filename="../src/widgets/authdialog.cpp" line="346"/>
|
||||||
|
<location filename="../src/widgets/authdialog.cpp" line="1108"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>登錄</translation>
|
<translation>登錄</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -368,31 +374,35 @@
|
||||||
<name>BlockWidget</name>
|
<name>BlockWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="40"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="82"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="135"/>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">取消</translation>
|
<translation type="unfinished">取消</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="44"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="83"/>
|
||||||
|
<location filename="../src/widgets/blockwidget.cpp" line="136"/>
|
||||||
<source>Confrim</source>
|
<source>Confrim</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="89"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="91"/>
|
||||||
<source>The following program is running to prevent the system from reboot!</source>
|
<source>The following program is running to prevent the system from reboot!</source>
|
||||||
<translation type="unfinished">以下程式正在運行以防止系統重新啟動!</translation>
|
<translation type="unfinished">以下程式正在運行以防止系統重新啟動!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="92"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="94"/>
|
||||||
<source>The following program is running to prevent the system from shutting down!</source>
|
<source>The following program is running to prevent the system from shutting down!</source>
|
||||||
<translation type="unfinished">以下程式正在運行以防止系統關閉!</translation>
|
<translation type="unfinished">以下程式正在運行以防止系統關閉!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="95"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="97"/>
|
||||||
<source>The following program is running to prevent the system from suspend!</source>
|
<source>The following program is running to prevent the system from suspend!</source>
|
||||||
<translation type="unfinished">以下程式正在運行以防止系統掛起!</translation>
|
<translation type="unfinished">以下程式正在運行以防止系統掛起!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/blockwidget.cpp" line="98"/>
|
<location filename="../src/widgets/blockwidget.cpp" line="100"/>
|
||||||
<source>The following program is running to prevent the system from hibernate!</source>
|
<source>The following program is running to prevent the system from hibernate!</source>
|
||||||
<translation type="unfinished">以下程式正在運行以防止系統休眠!</translation>
|
<translation type="unfinished">以下程式正在運行以防止系統休眠!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -408,17 +418,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CharsWidget</name>
|
<name>CharsWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="114"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="115"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="273"/>
|
||||||
<source>More</source>
|
<source>More</source>
|
||||||
<translation>更多</translation>
|
<translation>更多</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="128"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="129"/>
|
||||||
<source>ABC</source>
|
<source>ABC</source>
|
||||||
<translation>美國廣播公司</translation>
|
<translation>美國廣播公司</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="141"/>
|
<location filename="../src/VirtualKeyboard/src/charswidget.cpp" line="142"/>
|
||||||
<source>123</source>
|
<source>123</source>
|
||||||
<translation>123</translation>
|
<translation>123</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1883,17 +1894,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LightDMHelper</name>
|
<name>LightDMHelper</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="99"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="105"/>
|
||||||
<source>failed to start session.</source>
|
<source>failed to start session.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="234"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="204"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation type="unfinished">登錄</translation>
|
<translation type="unfinished">登錄</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/lightdmhelper.cpp" line="242"/>
|
<location filename="../src/lock-backend/lightdmhelper.cpp" line="213"/>
|
||||||
<source>Guest</source>
|
<source>Guest</source>
|
||||||
<translation type="unfinished">游客</translation>
|
<translation type="unfinished">游客</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1937,7 +1948,7 @@
|
||||||
<translation type="vanished">無線局域網</translation>
|
<translation type="vanished">無線局域網</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/lockwidget.cpp" line="923"/>
|
<location filename="../src/widgets/lockwidget.cpp" line="944"/>
|
||||||
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
<source>Multiple users are logged in at the same time.Are you sure you want to %1 this system?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2015,12 +2026,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MyNetworkWidget</name>
|
<name>MyNetworkWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="36"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="35"/>
|
||||||
<source>LAN</source>
|
<source>LAN</source>
|
||||||
<translation type="unfinished">局域網</translation>
|
<translation type="unfinished">局域網</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/mynetworkwidget.cpp" line="38"/>
|
<location filename="../src/widgets/mynetworkwidget.cpp" line="37"/>
|
||||||
<source>WLAN</source>
|
<source>WLAN</source>
|
||||||
<translation type="unfinished">無線局域網</translation>
|
<translation type="unfinished">無線局域網</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2028,12 +2039,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>NumbersWidget</name>
|
<name>NumbersWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="160"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="161"/>
|
||||||
<source>&&?!</source>
|
<source>&&?!</source>
|
||||||
<translation>&&?!</translation>
|
<translation>&&?!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="174"/>
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="175"/>
|
||||||
|
<location filename="../src/VirtualKeyboard/src/numberswidget.cpp" line="310"/>
|
||||||
<source>Return</source>
|
<source>Return</source>
|
||||||
<translation>返回</translation>
|
<translation>返回</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2507,6 +2519,21 @@
|
||||||
<translation type="vanished">跳</translation>
|
<translation type="vanished">跳</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>UserListWidget</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="46"/>
|
||||||
|
<location filename="../src/widgets/userlistwidget.cpp" line="99"/>
|
||||||
|
<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"/>
|
||||||
|
<source>Guest</source>
|
||||||
|
<translation type="unfinished">游客</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Utils</name>
|
<name>Utils</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -2678,12 +2705,12 @@
|
||||||
<translation>窗口標識</translation>
|
<translation>窗口標識</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="48"/>
|
<location filename="../src/lock-backend/main.cpp" line="49"/>
|
||||||
<source>Backend for the ukui ScreenSaver.</source>
|
<source>Backend for the ukui ScreenSaver.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/lock-backend/main.cpp" line="54"/>
|
<location filename="../src/lock-backend/main.cpp" line="55"/>
|
||||||
<source>lock the screen by startup</source>
|
<source>lock the screen by startup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -153,7 +153,7 @@ set(backend_SRC
|
||||||
dbusifs/upowerhelper.cpp
|
dbusifs/upowerhelper.cpp
|
||||||
dbusifs/enginedevice.cpp
|
dbusifs/enginedevice.cpp
|
||||||
dbusifs/device.cpp
|
dbusifs/device.cpp
|
||||||
dbusifs/accountservicehelper.cpp
|
dbusifs/accountshelper.cpp
|
||||||
dbusifs/sessionhelper.cpp
|
dbusifs/sessionhelper.cpp
|
||||||
dbusifs/uniauthservice.cpp
|
dbusifs/uniauthservice.cpp
|
||||||
dbusifs/biometrichelper.cpp
|
dbusifs/biometrichelper.cpp
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "charswidget.h"
|
#include "charswidget.h"
|
||||||
|
|
||||||
#include "commondef.h"
|
#include "commondef.h"
|
||||||
|
#include <QEvent>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
CharsWidget::CharsWidget(QWidget *parent/* = nullptr*/)
|
CharsWidget::CharsWidget(QWidget *parent/* = nullptr*/)
|
||||||
|
@ -253,3 +254,25 @@ void CharsWidget::onBtnClicked(QChar charId)
|
||||||
Q_EMIT specialBtnClicked(keyName);
|
Q_EMIT specialBtnClicked(keyName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CharsWidget::changeEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::LanguageChange){
|
||||||
|
refreshTranslate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CharsWidget::refreshTranslate()
|
||||||
|
{
|
||||||
|
QMap<KBButton*, QRect>::iterator itGeometry = m_mapBtnGeometrys.begin();
|
||||||
|
for (; itGeometry != m_mapBtnGeometrys.end(); itGeometry ++) {
|
||||||
|
KBButton *button = itGeometry.key();
|
||||||
|
if (button) {
|
||||||
|
if (button->objectName() == "btn_more") {
|
||||||
|
button->setText(tr("More"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,12 @@ Q_SIGNALS:
|
||||||
void specialBtnClicked(QString keyName);
|
void specialBtnClicked(QString keyName);
|
||||||
void normalBtnClicked(QChar c);
|
void normalBtnClicked(QChar c);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void changeEvent(QEvent *event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void initUI();
|
void initUI();
|
||||||
|
void refreshTranslate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMap<KBButton*, QRect> m_mapBtnGeometrys;
|
QMap<KBButton*, QRect> m_mapBtnGeometrys;
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
#include <QEvent>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
NumbersWidget::NumbersWidget(QWidget *parent)
|
NumbersWidget::NumbersWidget(QWidget *parent)
|
||||||
|
@ -291,3 +292,23 @@ void NumbersWidget::onBtnClicked(QChar charId)
|
||||||
Q_EMIT specialBtnClicked(keyName);
|
Q_EMIT specialBtnClicked(keyName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NumbersWidget::changeEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::LanguageChange){
|
||||||
|
refreshTranslate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void NumbersWidget::refreshTranslate()
|
||||||
|
{
|
||||||
|
QMap<QWidget*, QRect>::iterator itGeometry = m_mapBtnGeometrys.begin();
|
||||||
|
for (; itGeometry != m_mapBtnGeometrys.end(); itGeometry ++) {
|
||||||
|
KBButton *button = qobject_cast<KBButton *>(itGeometry.key());
|
||||||
|
if (button) {
|
||||||
|
if (button->objectName() == "btn_return") {
|
||||||
|
button->setText(tr("Return"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -42,8 +42,12 @@ Q_SIGNALS:
|
||||||
void specialBtnClicked(QString keyName);
|
void specialBtnClicked(QString keyName);
|
||||||
void narmalBtnClicked(QChar charId);
|
void narmalBtnClicked(QChar charId);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void changeEvent(QEvent *event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void initUI();
|
void initUI();
|
||||||
|
void refreshTranslate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMap<QWidget*, QRect> m_mapBtnGeometrys;
|
QMap<QWidget*, QRect> m_mapBtnGeometrys;
|
||||||
|
|
|
@ -41,7 +41,7 @@ VirtualKeyboardWidget::VirtualKeyboardWidget(QWidget *parent)
|
||||||
, m_isVertical(false)
|
, m_isVertical(false)
|
||||||
{
|
{
|
||||||
Q_INIT_RESOURCE(keyboard);
|
Q_INIT_RESOURCE(keyboard);
|
||||||
setAttribute(Qt::WA_TranslucentBackground);//背景透明
|
//setAttribute(Qt::WA_TranslucentBackground);//背景透明
|
||||||
//setAutoFillBackground(true);
|
//setAutoFillBackground(true);
|
||||||
setWindowFlags(Qt::FramelessWindowHint |
|
setWindowFlags(Qt::FramelessWindowHint |
|
||||||
Qt::WindowStaysOnTopHint |
|
Qt::WindowStaysOnTopHint |
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QTranslator>
|
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
#include <QGSettings>
|
#include <QGSettings>
|
||||||
|
|
||||||
|
|
|
@ -203,6 +203,7 @@ enum SessionStatus
|
||||||
#define DM_DBUS_PATH "/org/freedesktop/DisplayManager"
|
#define DM_DBUS_PATH "/org/freedesktop/DisplayManager"
|
||||||
#define DM_DBUS_INTERFACE "org.freedesktop.DisplayManager"
|
#define DM_DBUS_INTERFACE "org.freedesktop.DisplayManager"
|
||||||
#define DM_SEAT_INTERFACE "org.freedesktop.DisplayManager.Seat"
|
#define DM_SEAT_INTERFACE "org.freedesktop.DisplayManager.Seat"
|
||||||
|
#define DM_SESSION_INTERFACE "org.freedesktop.DisplayManager.Session"
|
||||||
|
|
||||||
#define SSWND_DBUS_SERVICE "org.ukui.ScreenSaverWnd"
|
#define SSWND_DBUS_SERVICE "org.ukui.ScreenSaverWnd"
|
||||||
#define SSWND_DBUS_PATH "/"
|
#define SSWND_DBUS_PATH "/"
|
||||||
|
@ -310,5 +311,13 @@ typedef enum {
|
||||||
#define FD_DBUS_SERVICE "org.freedesktop.DBus"
|
#define FD_DBUS_SERVICE "org.freedesktop.DBus"
|
||||||
#define FD_DBUS_PATH "/org/freedesktop/DBus"
|
#define FD_DBUS_PATH "/org/freedesktop/DBus"
|
||||||
#define FD_DBUS_INTERFACE "org.freedesktop.DBus"
|
#define FD_DBUS_INTERFACE "org.freedesktop.DBus"
|
||||||
|
#define FD_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties"
|
||||||
|
|
||||||
|
#define ACCOUNTS_DBUS_SERVICE "org.freedesktop.Accounts"
|
||||||
|
#define ACCOUNTS_DBUS_PATH "/org/freedesktop/Accounts"
|
||||||
|
#define ACCOUNTS_DBUS_INTERFACE "org.freedesktop.Accounts"
|
||||||
|
|
||||||
|
#define ACCOUNTS_USER_DBUS_INTERFACE "org.freedesktop.Accounts.User"
|
||||||
|
#define ACCOUNTS_USER_LDM_SERVICE_INTERFACE "org.freedesktop.DisplayManager.AccountsService"
|
||||||
|
|
||||||
#endif // DEFINETYPES_H
|
#endif // DEFINETYPES_H
|
||||||
|
|
|
@ -15,34 +15,27 @@
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
#include "accountservicehelper.h"
|
#include "accountshelper.h"
|
||||||
|
#include "definetypes.h"
|
||||||
#include <QDBusConnection>
|
#include <QDBusConnection>
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
#include <QDBusConnectionInterface>
|
#include <QDBusConnectionInterface>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include "userinfo.h"
|
||||||
|
|
||||||
const static QString accountsService = QStringLiteral("org.freedesktop.Accounts");
|
AccountsHelper::AccountsHelper(QObject *parent)
|
||||||
const static QString accountsPath = QStringLiteral("/org/freedesktop/Accounts");
|
|
||||||
const static QString accountsInterface = QStringLiteral("org.freedesktop.Accounts");
|
|
||||||
const static QString propertiesInterface = QStringLiteral("org.freedesktop.DBus.Properties");
|
|
||||||
const static QString accountsUserInterface = QStringLiteral("org.freedesktop.Accounts.User");
|
|
||||||
|
|
||||||
AccountServiceHelper::AccountServiceHelper(QObject *parent)
|
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
{
|
{
|
||||||
m_accountsInterface = new QDBusInterface(accountsService,
|
initData();
|
||||||
accountsPath,
|
initConnections();
|
||||||
accountsInterface,
|
|
||||||
QDBusConnection::systemBus(),
|
|
||||||
this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AccountServiceHelper::~AccountServiceHelper()
|
AccountsHelper::~AccountsHelper()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AccountServiceHelper::getUserLanguageByName(QString strUserName)
|
QString AccountsHelper::getUserLanguageByName(QString strUserName)
|
||||||
{
|
{
|
||||||
QString strLanguage = "";
|
QString strLanguage = "";
|
||||||
if(!m_accountsInterface)
|
if(!m_accountsInterface)
|
||||||
|
@ -51,9 +44,9 @@ QString AccountServiceHelper::getUserLanguageByName(QString strUserName)
|
||||||
if(!userPath.isValid())
|
if(!userPath.isValid())
|
||||||
qWarning() << "Get UserPath error:" << userPath.error();
|
qWarning() << "Get UserPath error:" << userPath.error();
|
||||||
else {
|
else {
|
||||||
QDBusInterface userIface(accountsService, userPath.value().path(),
|
QDBusInterface userIface(ACCOUNTS_DBUS_SERVICE, userPath.value().path(),
|
||||||
propertiesInterface, QDBusConnection::systemBus());
|
FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
QDBusReply<QDBusVariant> languageReply = userIface.call("Get", accountsUserInterface, "Language");
|
QDBusReply<QDBusVariant> languageReply = userIface.call("Get", ACCOUNTS_USER_DBUS_INTERFACE, "Language");
|
||||||
if(!languageReply.isValid())
|
if(!languageReply.isValid())
|
||||||
qWarning() << "Get User's language error" << languageReply.error();
|
qWarning() << "Get User's language error" << languageReply.error();
|
||||||
else {
|
else {
|
||||||
|
@ -63,7 +56,7 @@ QString AccountServiceHelper::getUserLanguageByName(QString strUserName)
|
||||||
return strLanguage;
|
return strLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AccountServiceHelper::getUserBackgroundByName(QString strUserName)
|
QString AccountsHelper::getUserBackgroundByName(QString strUserName)
|
||||||
{
|
{
|
||||||
QString strBackground = "";
|
QString strBackground = "";
|
||||||
if(!m_accountsInterface)
|
if(!m_accountsInterface)
|
||||||
|
@ -72,9 +65,9 @@ QString AccountServiceHelper::getUserBackgroundByName(QString strUserName)
|
||||||
if(!userPath.isValid())
|
if(!userPath.isValid())
|
||||||
qWarning() << "Get UserPath error:" << userPath.error();
|
qWarning() << "Get UserPath error:" << userPath.error();
|
||||||
else {
|
else {
|
||||||
QDBusInterface userIface(accountsService, userPath.value().path(),
|
QDBusInterface userIface(ACCOUNTS_DBUS_SERVICE, userPath.value().path(),
|
||||||
propertiesInterface, QDBusConnection::systemBus());
|
FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
QDBusReply<QDBusVariant> backgroundReply = userIface.call("Get", accountsUserInterface, "BackgroundFile");
|
QDBusReply<QDBusVariant> backgroundReply = userIface.call("Get", ACCOUNTS_USER_DBUS_INTERFACE, "BackgroundFile");
|
||||||
if(!backgroundReply.isValid())
|
if(!backgroundReply.isValid())
|
||||||
qWarning() << "Get User's background error" << backgroundReply.error();
|
qWarning() << "Get User's background error" << backgroundReply.error();
|
||||||
else {
|
else {
|
||||||
|
@ -84,7 +77,7 @@ QString AccountServiceHelper::getUserBackgroundByName(QString strUserName)
|
||||||
return strBackground;
|
return strBackground;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AccountServiceHelper::getUserSessionByName(QString strUserName)
|
QString AccountsHelper::getUserSessionByName(QString strUserName)
|
||||||
{
|
{
|
||||||
QString strSession = "";
|
QString strSession = "";
|
||||||
if(!m_accountsInterface)
|
if(!m_accountsInterface)
|
||||||
|
@ -93,9 +86,9 @@ QString AccountServiceHelper::getUserSessionByName(QString strUserName)
|
||||||
if(!userPath.isValid())
|
if(!userPath.isValid())
|
||||||
qWarning() << "Get UserPath error:" << userPath.error();
|
qWarning() << "Get UserPath error:" << userPath.error();
|
||||||
else {
|
else {
|
||||||
QDBusInterface userIface(accountsService, userPath.value().path(),
|
QDBusInterface userIface(ACCOUNTS_DBUS_SERVICE, userPath.value().path(),
|
||||||
propertiesInterface, QDBusConnection::systemBus());
|
FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
QDBusReply<QDBusVariant> sessionReply = userIface.call("Get", accountsUserInterface, "XSession");
|
QDBusReply<QDBusVariant> sessionReply = userIface.call("Get", ACCOUNTS_USER_DBUS_INTERFACE, "XSession");
|
||||||
if(!sessionReply.isValid())
|
if(!sessionReply.isValid())
|
||||||
qWarning() << "Get User's xsession error" << sessionReply.error();
|
qWarning() << "Get User's xsession error" << sessionReply.error();
|
||||||
else {
|
else {
|
||||||
|
@ -105,7 +98,7 @@ QString AccountServiceHelper::getUserSessionByName(QString strUserName)
|
||||||
return strSession;
|
return strSession;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AccountServiceHelper::getAccountBackground(uid_t uid)
|
QString AccountsHelper::getAccountBackground(uid_t uid)
|
||||||
{
|
{
|
||||||
QString strBackground = "";
|
QString strBackground = "";
|
||||||
if(!m_accountsInterface)
|
if(!m_accountsInterface)
|
||||||
|
@ -114,9 +107,9 @@ QString AccountServiceHelper::getAccountBackground(uid_t uid)
|
||||||
if(!userPath.isValid())
|
if(!userPath.isValid())
|
||||||
qWarning() << "Get UserPath error:" << userPath.error();
|
qWarning() << "Get UserPath error:" << userPath.error();
|
||||||
else {
|
else {
|
||||||
QDBusInterface userIface(accountsService, userPath.value().path(),
|
QDBusInterface userIface(ACCOUNTS_DBUS_SERVICE, userPath.value().path(),
|
||||||
propertiesInterface, QDBusConnection::systemBus());
|
FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
QDBusReply<QDBusVariant> backgroundReply = userIface.call("Get", accountsUserInterface, "BackgroundFile");
|
QDBusReply<QDBusVariant> backgroundReply = userIface.call("Get", ACCOUNTS_USER_DBUS_INTERFACE, "BackgroundFile");
|
||||||
if(!backgroundReply.isValid())
|
if(!backgroundReply.isValid())
|
||||||
qWarning() << "Get User's BackgroundFile error" << backgroundReply.error();
|
qWarning() << "Get User's BackgroundFile error" << backgroundReply.error();
|
||||||
else {
|
else {
|
||||||
|
@ -125,3 +118,39 @@ QString AccountServiceHelper::getAccountBackground(uid_t uid)
|
||||||
}
|
}
|
||||||
return strBackground;
|
return strBackground;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AccountsHelper::initData()
|
||||||
|
{
|
||||||
|
if (!m_accountsInterface) {
|
||||||
|
m_accountsInterface = new QDBusInterface(ACCOUNTS_DBUS_SERVICE,
|
||||||
|
ACCOUNTS_DBUS_PATH,
|
||||||
|
ACCOUNTS_DBUS_INTERFACE,
|
||||||
|
QDBusConnection::systemBus(),
|
||||||
|
this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void AccountsHelper::initConnections()
|
||||||
|
{
|
||||||
|
connect(m_accountsInterface, SIGNAL(UserAdded(QDBusObjectPath)), this, SIGNAL(UserAdded(QDBusObjectPath)));
|
||||||
|
connect(m_accountsInterface, SIGNAL(UserDeleted(QDBusObjectPath)), this, SIGNAL(UserRemoved(QDBusObjectPath)));
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList AccountsHelper::getUserList()
|
||||||
|
{
|
||||||
|
QStringList listUsers;
|
||||||
|
if (!m_accountsInterface)
|
||||||
|
return listUsers;
|
||||||
|
QDBusMessage ret = m_accountsInterface->call("ListCachedUsers");
|
||||||
|
QList<QVariant> outArgs = ret.arguments();
|
||||||
|
QVariant first = outArgs.at(0);
|
||||||
|
const QDBusArgument &dbusArgs = first.value<QDBusArgument>();
|
||||||
|
QDBusObjectPath path;
|
||||||
|
dbusArgs.beginArray();
|
||||||
|
while (!dbusArgs.atEnd()) {
|
||||||
|
dbusArgs >> path;
|
||||||
|
listUsers << path.path();
|
||||||
|
}
|
||||||
|
dbusArgs.endArray();
|
||||||
|
return listUsers;
|
||||||
|
}
|
|
@ -20,14 +20,16 @@
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
|
#include <QMap>
|
||||||
|
#include <QDBusObjectPath>
|
||||||
|
|
||||||
class AccountServiceHelper : public QObject
|
class AccountsHelper : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit AccountServiceHelper(QObject *parent = nullptr);
|
explicit AccountsHelper(QObject *parent = nullptr);
|
||||||
|
|
||||||
virtual ~AccountServiceHelper();
|
virtual ~AccountsHelper();
|
||||||
|
|
||||||
QString getUserLanguageByName(QString strUserName);
|
QString getUserLanguageByName(QString strUserName);
|
||||||
|
|
||||||
|
@ -37,6 +39,16 @@ public:
|
||||||
|
|
||||||
QString getAccountBackground(uid_t uid);
|
QString getAccountBackground(uid_t uid);
|
||||||
|
|
||||||
|
QStringList getUserList();
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void UserAdded(const QDBusObjectPath &path);
|
||||||
|
void UserRemoved(const QDBusObjectPath &path);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void initData();
|
||||||
|
void initConnections();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QDBusInterface *m_accountsInterface = nullptr;
|
QDBusInterface *m_accountsInterface = nullptr;
|
||||||
};
|
};
|
|
@ -33,7 +33,7 @@
|
||||||
#include "switchuserutils.h"
|
#include "switchuserutils.h"
|
||||||
#include "pamauthenticate.h"
|
#include "pamauthenticate.h"
|
||||||
#include "upowerhelper.h"
|
#include "upowerhelper.h"
|
||||||
#include "accountservicehelper.h"
|
#include "accountshelper.h"
|
||||||
#include "sessionhelper.h"
|
#include "sessionhelper.h"
|
||||||
#include "sessionwatcher.h"
|
#include "sessionwatcher.h"
|
||||||
#include "freedesktophelper.h"
|
#include "freedesktophelper.h"
|
||||||
|
@ -56,7 +56,7 @@ void DbusUpperInterface::initData()
|
||||||
{
|
{
|
||||||
m_bLockState = false;
|
m_bLockState = false;
|
||||||
m_bSlpState = false;
|
m_bSlpState = false;
|
||||||
m_accountsHelper = new AccountServiceHelper(this);
|
m_accountsHelper = new AccountsHelper(this);
|
||||||
m_lightDmHelper = new LightDMHelper(m_accountsHelper, this);
|
m_lightDmHelper = new LightDMHelper(m_accountsHelper, this);
|
||||||
m_login1Helper = new Login1Helper(this);
|
m_login1Helper = new Login1Helper(this);
|
||||||
m_config = new Configuration(this);
|
m_config = new Configuration(this);
|
||||||
|
|
|
@ -37,7 +37,7 @@ class QJsonObject;
|
||||||
class PamAuthenticate;
|
class PamAuthenticate;
|
||||||
class UsdHelper;
|
class UsdHelper;
|
||||||
class UpowerHelper;
|
class UpowerHelper;
|
||||||
class AccountServiceHelper;
|
class AccountsHelper;
|
||||||
class SessionHelper;
|
class SessionHelper;
|
||||||
class SessionWatcher;
|
class SessionWatcher;
|
||||||
class BioAuthenticate;
|
class BioAuthenticate;
|
||||||
|
@ -381,7 +381,7 @@ private:
|
||||||
PamAuthenticate *m_pamAuth = nullptr;
|
PamAuthenticate *m_pamAuth = nullptr;
|
||||||
UsdHelper *m_usdHelper = nullptr;
|
UsdHelper *m_usdHelper = nullptr;
|
||||||
UpowerHelper *m_upowerHelper = nullptr;
|
UpowerHelper *m_upowerHelper = nullptr;
|
||||||
AccountServiceHelper *m_accountsHelper = nullptr;
|
AccountsHelper *m_accountsHelper = nullptr;
|
||||||
bool lockState = false;
|
bool lockState = false;
|
||||||
SessionHelper *m_sessionHelper = nullptr;
|
SessionHelper *m_sessionHelper = nullptr;
|
||||||
SessionWatcher *m_sessionWatcher = nullptr;
|
SessionWatcher *m_sessionWatcher = nullptr;
|
||||||
|
|
|
@ -22,14 +22,21 @@
|
||||||
#include "securityuser.h"
|
#include "securityuser.h"
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include "proxymodel.h"
|
#include "proxymodel.h"
|
||||||
#include "accountservicehelper.h"
|
#include "accountshelper.h"
|
||||||
|
#include "definetypes.h"
|
||||||
|
#include <QDBusArgument>
|
||||||
|
#include <QDBusMessage>
|
||||||
|
#include <QVariantMap>
|
||||||
|
|
||||||
LightDMHelper::LightDMHelper(AccountServiceHelper *accountHelper, QObject *parent)
|
LightDMHelper::LightDMHelper(AccountsHelper *accountHelper, QObject *parent)
|
||||||
: QLightDM::Greeter(parent)
|
: QLightDM::Greeter(parent)
|
||||||
, m_sessionsModel(nullptr)
|
, m_sessionsModel(nullptr)
|
||||||
, m_secUser(SecurityUser::instance())
|
, m_secUser(SecurityUser::instance())
|
||||||
, m_strCurUserName("")
|
, m_strCurUserName("")
|
||||||
, m_accountServiceHelper(accountHelper)
|
, m_accountServiceHelper(accountHelper)
|
||||||
|
, m_ldmSessions(new QMap<QString, std::shared_ptr<LightDMSessionInfo>>())
|
||||||
|
, m_mapUsers(new QMap<QString, UserInfoPtr>())
|
||||||
|
, m_dbusIfsLDM(nullptr)
|
||||||
{
|
{
|
||||||
//连接到lightdm
|
//连接到lightdm
|
||||||
if(!connectToDaemonSync()){
|
if(!connectToDaemonSync()){
|
||||||
|
@ -46,11 +53,10 @@ void LightDMHelper::initData()
|
||||||
updateSessionsInfo();
|
updateSessionsInfo();
|
||||||
setSession(defaultSessionHint());
|
setSession(defaultSessionHint());
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
|
initLDMSessionsInfo();
|
||||||
m_isShowManualLogin = showManualLoginHint();
|
m_isShowManualLogin = showManualLoginHint();
|
||||||
if(!hideUsersHint()){
|
if(!hideUsersHint()){
|
||||||
m_modelUsers = new UsersModel(this);
|
initAccountsUsersInfo();
|
||||||
m_modelUsers->setSourceModel(new QLightDM::UsersModel(this));
|
|
||||||
connect(m_modelUsers, &UsersModel::userInfoChanged, this, &LightDMHelper::onUsersChanged);
|
|
||||||
if(hasValidUsers() == 0) {
|
if(hasValidUsers() == 0) {
|
||||||
m_isShowManualLogin = true;
|
m_isShowManualLogin = true;
|
||||||
}
|
}
|
||||||
|
@ -127,7 +133,7 @@ bool LightDMHelper::setCurrentUser(QString strUserName)
|
||||||
|
|
||||||
UserInfoPtr LightDMHelper::findUserByUid(uid_t id)
|
UserInfoPtr LightDMHelper::findUserByUid(uid_t id)
|
||||||
{
|
{
|
||||||
for (auto userInfoPtr : m_listUsers) {
|
for (auto userInfoPtr : m_mapUsers->values()) {
|
||||||
if (userInfoPtr->uid() == id) {
|
if (userInfoPtr->uid() == id) {
|
||||||
return userInfoPtr;
|
return userInfoPtr;
|
||||||
}
|
}
|
||||||
|
@ -137,7 +143,7 @@ UserInfoPtr LightDMHelper::findUserByUid(uid_t id)
|
||||||
|
|
||||||
UserInfoPtr LightDMHelper::findUserByName(QString strName)
|
UserInfoPtr LightDMHelper::findUserByName(QString strName)
|
||||||
{
|
{
|
||||||
for (auto userInfoPtr : m_listUsers) {
|
for (auto userInfoPtr : m_mapUsers->values()) {
|
||||||
if (userInfoPtr->name() == strName) {
|
if (userInfoPtr->name() == strName) {
|
||||||
return userInfoPtr;
|
return userInfoPtr;
|
||||||
}
|
}
|
||||||
|
@ -147,7 +153,7 @@ UserInfoPtr LightDMHelper::findUserByName(QString strName)
|
||||||
|
|
||||||
bool LightDMHelper::hasSameUser(const UserInfoPtr userInfoPtr)
|
bool LightDMHelper::hasSameUser(const UserInfoPtr userInfoPtr)
|
||||||
{
|
{
|
||||||
for (auto user : m_listUsers) {
|
for (auto user : m_mapUsers->values()) {
|
||||||
if (user->uid() == userInfoPtr->uid()
|
if (user->uid() == userInfoPtr->uid()
|
||||||
&& user->name() == userInfoPtr->name()) {
|
&& user->name() == userInfoPtr->name()) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -158,12 +164,9 @@ bool LightDMHelper::hasSameUser(const UserInfoPtr userInfoPtr)
|
||||||
|
|
||||||
bool LightDMHelper::hasValidUsers()
|
bool LightDMHelper::hasValidUsers()
|
||||||
{
|
{
|
||||||
if (!m_modelUsers)
|
|
||||||
return false;
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for(int i = 0; i < m_modelUsers->rowCount(QModelIndex()); i++){
|
for (auto user : m_mapUsers->values()) {
|
||||||
QString name = m_modelUsers->index(i).data(QLightDM::UsersModel::NameRole).toString();
|
if(m_secUser->isSecrityUser(user->name()))
|
||||||
if(m_secUser->isSecrityUser(name))
|
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
return (bool)(count>0);
|
return (bool)(count>0);
|
||||||
|
@ -182,51 +185,18 @@ bool LightDMHelper::isSameUser(UserInfoPtr userA, UserInfoPtr userB)
|
||||||
|
|
||||||
void LightDMHelper::onUsersChanged()
|
void LightDMHelper::onUsersChanged()
|
||||||
{
|
{
|
||||||
if (!m_modelUsers)
|
|
||||||
return ;
|
|
||||||
updateUsersInfo();
|
updateUsersInfo();
|
||||||
Q_EMIT usersInfoChanged();
|
Q_EMIT usersInfoChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LightDMHelper::updateUsersInfo()
|
void LightDMHelper::updateUsersInfo()
|
||||||
{
|
{
|
||||||
m_listUsers.clear();
|
QList<UserInfoPtr> userInfos = m_mapUsers->values();
|
||||||
if (m_modelUsers) {
|
for (auto user : userInfos) {
|
||||||
for(int i = 0; i < m_modelUsers->rowCount(QModelIndex()); i++){
|
if (isUserLoggined(user->name())) {
|
||||||
QString name = m_modelUsers->index(i).data(QLightDM::UsersModel::NameRole).toString();
|
user->updateLoggedIn(true);
|
||||||
if(m_secUser->isSecrityUser(name)) {
|
} else {
|
||||||
std::shared_ptr<UserInfo> userInfoPtr = std::make_shared<UserInfo>();
|
user->updateLoggedIn(false);
|
||||||
userInfoPtr->updateName(name);
|
|
||||||
uid_t uid = m_modelUsers->index(i).data(QLightDM::UsersModel::UidRole).toUInt();
|
|
||||||
userInfoPtr->updateUid(uid);
|
|
||||||
QString strRealName = m_modelUsers->index(i).data(QLightDM::UsersModel::RealNameRole).toString();
|
|
||||||
if (strRealName.isEmpty()) {
|
|
||||||
strRealName = name;
|
|
||||||
}
|
|
||||||
userInfoPtr->updateFullName(strRealName);
|
|
||||||
QString strBackGround = m_modelUsers->index(i).data(QLightDM::UsersModel::BackgroundPathRole).toString();
|
|
||||||
if (!strBackGround.isEmpty() && QFileInfo(strBackGround).exists()){
|
|
||||||
userInfoPtr->updateBackground(strBackGround);
|
|
||||||
} else {
|
|
||||||
if (m_accountServiceHelper) {
|
|
||||||
strBackGround = m_accountServiceHelper->getAccountBackground(uid);
|
|
||||||
if (!strBackGround.isEmpty() && QFileInfo(strBackGround).exists()){
|
|
||||||
userInfoPtr->updateBackground(strBackGround);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
QString strImgHead = m_modelUsers->index(i).data(QLightDM::UsersModel::ImagePathRole).toString();
|
|
||||||
if (!strImgHead.isEmpty() && QFileInfo(strImgHead).exists()){
|
|
||||||
userInfoPtr->updateHeadImage(strImgHead);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isLoggedIn = m_modelUsers->index(i).data(QLightDM::UsersModel::LoggedInRole).toBool();
|
|
||||||
userInfoPtr->updateLoggedIn(isLoggedIn);
|
|
||||||
|
|
||||||
if (!hasSameUser(userInfoPtr)) {
|
|
||||||
m_listUsers.append(userInfoPtr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_isShowManualLogin) {
|
if (m_isShowManualLogin) {
|
||||||
|
@ -234,7 +204,8 @@ void LightDMHelper::updateUsersInfo()
|
||||||
userInfoPtr->updateFullName(tr("Login"));
|
userInfoPtr->updateFullName(tr("Login"));
|
||||||
userInfoPtr->updateName("*login");
|
userInfoPtr->updateName("*login");
|
||||||
if (!hasSameUser(userInfoPtr)) {
|
if (!hasSameUser(userInfoPtr)) {
|
||||||
m_listUsers.append(userInfoPtr);
|
const QString path = userInfoPtr->path().isEmpty() ? userInfoPtr->name() : userInfoPtr->path();
|
||||||
|
m_mapUsers->insert(path, userInfoPtr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hasGuestAccountHint()) {
|
if (hasGuestAccountHint()) {
|
||||||
|
@ -242,7 +213,8 @@ void LightDMHelper::updateUsersInfo()
|
||||||
userInfoPtr->updateFullName(tr("Guest"));
|
userInfoPtr->updateFullName(tr("Guest"));
|
||||||
userInfoPtr->updateName("*guest");
|
userInfoPtr->updateName("*guest");
|
||||||
if (!hasSameUser(userInfoPtr)) {
|
if (!hasSameUser(userInfoPtr)) {
|
||||||
m_listUsers.append(userInfoPtr);
|
const QString path = userInfoPtr->path().isEmpty() ? userInfoPtr->name() : userInfoPtr->path();
|
||||||
|
m_mapUsers->insert(path, userInfoPtr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,5 +233,201 @@ void LightDMHelper::updateSessionsInfo()
|
||||||
|
|
||||||
QList<UserInfoPtr> LightDMHelper::getUsersInfo()
|
QList<UserInfoPtr> LightDMHelper::getUsersInfo()
|
||||||
{
|
{
|
||||||
return m_listUsers;
|
return m_mapUsers->values();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LightDMHelper::isUserLoggined(const QString &strUserName)
|
||||||
|
{
|
||||||
|
QList<std::shared_ptr<LightDMSessionInfo>> sessionList = m_ldmSessions->values();
|
||||||
|
auto it = std::find_if(sessionList.begin(), sessionList.end(), [strUserName](std::shared_ptr<LightDMSessionInfo> &session) {
|
||||||
|
return session->userName() == strUserName;
|
||||||
|
});
|
||||||
|
if (it != sessionList.end()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMHelper::initLDMSessionsInfo()
|
||||||
|
{
|
||||||
|
if (!m_dbusIfsLDM) {
|
||||||
|
m_dbusIfsLDM = new QDBusInterface(DM_DBUS_SERVICE, DM_DBUS_PATH, DM_DBUS_INTERFACE, QDBusConnection::systemBus(), this);
|
||||||
|
connect(m_dbusIfsLDM, SIGNAL(SessionAdded(QDBusObjectPath)), this, SLOT(onLDMSessionAdded(QDBusObjectPath)));
|
||||||
|
connect(m_dbusIfsLDM, SIGNAL(SessionRemoved(QDBusObjectPath)), this, SLOT(onLDMSessionRemoved(QDBusObjectPath)));
|
||||||
|
|
||||||
|
QStringList listSessions;
|
||||||
|
QDBusInterface ifLDMProp(DM_DBUS_SERVICE, DM_DBUS_PATH, FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
|
QDBusMessage ret = ifLDMProp.call("GetAll", DM_DBUS_INTERFACE);
|
||||||
|
QList<QVariant> outArgs = ret.arguments();
|
||||||
|
QVariant first = outArgs.at(0);
|
||||||
|
const QDBusArgument &dbusArgs = first.value<QDBusArgument>();
|
||||||
|
dbusArgs.beginMap();
|
||||||
|
while(!dbusArgs.atEnd()) {
|
||||||
|
QString key;
|
||||||
|
QVariant value;
|
||||||
|
dbusArgs.beginMapEntry();
|
||||||
|
dbusArgs >> key >> value;
|
||||||
|
if (key == "Sessions") {
|
||||||
|
const QDBusArgument &dbusObjPaths = value.value<QDBusArgument>();
|
||||||
|
QDBusObjectPath path;
|
||||||
|
dbusObjPaths.beginArray();
|
||||||
|
while (!dbusObjPaths.atEnd()) {
|
||||||
|
dbusObjPaths >> path;
|
||||||
|
listSessions << path.path();
|
||||||
|
}
|
||||||
|
dbusObjPaths.endArray();
|
||||||
|
}
|
||||||
|
dbusArgs.endMapEntry();
|
||||||
|
}
|
||||||
|
dbusArgs.endMap();
|
||||||
|
for (auto session : listSessions) {
|
||||||
|
std::shared_ptr<LightDMSessionInfo> ldmSessionInfo(new LightDMSessionInfo(session, this));
|
||||||
|
m_ldmSessions->insert(session, ldmSessionInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMHelper::onLDMSessionAdded(QDBusObjectPath objPath)
|
||||||
|
{
|
||||||
|
qDebug()<< "Add LDM Session, path:"<<objPath.path();
|
||||||
|
|
||||||
|
if (m_ldmSessions->contains(objPath.path())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::shared_ptr<LightDMSessionInfo> ldmSessionInfo(new LightDMSessionInfo(objPath.path(), this));
|
||||||
|
m_ldmSessions->insert(objPath.path(), ldmSessionInfo);
|
||||||
|
onUsersChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMHelper::onLDMSessionRemoved(QDBusObjectPath objPath)
|
||||||
|
{
|
||||||
|
if (!m_ldmSessions->contains(objPath.path())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const std::shared_ptr<LightDMSessionInfo> session = m_ldmSessions->value(objPath.path());
|
||||||
|
m_ldmSessions->remove(objPath.path());
|
||||||
|
onUsersChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMHelper::initAccountsUsersInfo()
|
||||||
|
{
|
||||||
|
if (m_accountServiceHelper) {
|
||||||
|
QStringList listUsers = m_accountServiceHelper->getUserList();
|
||||||
|
for (auto user : listUsers) {
|
||||||
|
LocalUserInfoPtr userInfo(new LocalUserInfo(user, this));
|
||||||
|
connect(userInfo.get(), &UserInfo::userPropChanged, this, &LightDMHelper::onUsersChanged);
|
||||||
|
m_mapUsers->insert(user, userInfo);
|
||||||
|
}
|
||||||
|
connect(m_accountServiceHelper, SIGNAL(UserAdded(QDBusObjectPath)), this, SLOT(onUserAdded(QDBusObjectPath)));
|
||||||
|
connect(m_accountServiceHelper, SIGNAL(UserRemoved(QDBusObjectPath)), this, SLOT(onUserRemoved(QDBusObjectPath)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMHelper::onUserAdded(QDBusObjectPath objPath)
|
||||||
|
{
|
||||||
|
qDebug()<< "Add Accounts User, path:"<<objPath.path();
|
||||||
|
|
||||||
|
if (m_mapUsers->contains(objPath.path())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LocalUserInfoPtr userInfo(new LocalUserInfo(objPath.path(), this));
|
||||||
|
connect(userInfo.get(), &UserInfo::userPropChanged, this, &LightDMHelper::onUsersChanged);
|
||||||
|
m_mapUsers->insert(objPath.path(), userInfo);
|
||||||
|
onUsersChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMHelper::onUserRemoved(QDBusObjectPath objPath)
|
||||||
|
{
|
||||||
|
if (!m_mapUsers->contains(objPath.path())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const UserInfoPtr userInfo = m_mapUsers->value(objPath.path());
|
||||||
|
qDebug()<< "Remove Accounts User, name:"<<userInfo->name();
|
||||||
|
m_mapUsers->remove(objPath.path());
|
||||||
|
onUsersChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
LightDMSessionInfo::LightDMSessionInfo(const QString &strPath, QObject* parent)
|
||||||
|
: QObject(parent)
|
||||||
|
, m_strPath(strPath)
|
||||||
|
{
|
||||||
|
initData();
|
||||||
|
initConnections();
|
||||||
|
}
|
||||||
|
|
||||||
|
LightDMSessionInfo::~LightDMSessionInfo()
|
||||||
|
{
|
||||||
|
if (m_propertiesChangedConnected) {
|
||||||
|
QDBusConnection::systemBus().disconnect(DM_DBUS_SERVICE,
|
||||||
|
m_strPath,
|
||||||
|
FD_PROPERTIES_INTERFACE,
|
||||||
|
"PropertiesChanged",
|
||||||
|
this,
|
||||||
|
SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
|
||||||
|
m_propertiesChangedConnected = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMSessionInfo::initData()
|
||||||
|
{
|
||||||
|
QDBusInterface ifaceExtra(DM_DBUS_SERVICE, m_strPath, FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
|
QDBusMessage ret = ifaceExtra.call("GetAll", DM_SESSION_INTERFACE);
|
||||||
|
QList<QVariant> outArgs = ret.arguments();
|
||||||
|
QVariant first = outArgs.at(0);
|
||||||
|
const QDBusArgument &dbusArgs = first.value<QDBusArgument>();
|
||||||
|
dbusArgs.beginMap();
|
||||||
|
while(!dbusArgs.atEnd()) {
|
||||||
|
QString key;
|
||||||
|
QVariant value;
|
||||||
|
dbusArgs.beginMapEntry();
|
||||||
|
dbusArgs >> key >> value;
|
||||||
|
if (key == "Seat") {
|
||||||
|
m_strSeatPath = value.toString();
|
||||||
|
} else if (key == "UserName") {
|
||||||
|
m_strUserName = value.toString();
|
||||||
|
}
|
||||||
|
dbusArgs.endMapEntry();
|
||||||
|
}
|
||||||
|
dbusArgs.endMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMSessionInfo::initConnections()
|
||||||
|
{
|
||||||
|
if (!m_propertiesChangedConnected) {
|
||||||
|
QDBusConnection::systemBus().connect(DM_DBUS_SERVICE,
|
||||||
|
m_strPath,
|
||||||
|
FD_PROPERTIES_INTERFACE,
|
||||||
|
"PropertiesChanged",
|
||||||
|
this,
|
||||||
|
SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
|
||||||
|
m_propertiesChangedConnected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LightDMSessionInfo::onPropertiesChanged(const QString& interfaceName,
|
||||||
|
const QVariantMap& changedProperties,
|
||||||
|
const QStringList& invalidatedProperties)
|
||||||
|
{
|
||||||
|
Q_UNUSED(invalidatedProperties);
|
||||||
|
if (interfaceName == DM_SESSION_INTERFACE) {
|
||||||
|
QVariantMap::const_iterator itVar = changedProperties.constBegin();
|
||||||
|
for ( ; itVar != changedProperties.constEnd(); itVar++) {
|
||||||
|
QVariant varValue = itVar.value();
|
||||||
|
if(itVar.key() == "Seat") {
|
||||||
|
m_strSeatPath = varValue.toString();
|
||||||
|
} else if(itVar.key() == "UserName") {
|
||||||
|
m_strUserName = varValue.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QDebug operator <<(QDebug stream, const LightDMSessionInfo &sessionInfo)
|
||||||
|
{
|
||||||
|
stream << "["
|
||||||
|
<< sessionInfo.path()
|
||||||
|
<< sessionInfo.userName()
|
||||||
|
<< sessionInfo.seatPath()
|
||||||
|
<< "]";
|
||||||
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,11 +24,13 @@
|
||||||
#include <QLightDM/UsersModel>
|
#include <QLightDM/UsersModel>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QModelIndex>
|
#include <QModelIndex>
|
||||||
|
#include <QDBusInterface>
|
||||||
#include "userinfo.h"
|
#include "userinfo.h"
|
||||||
|
|
||||||
class SecurityUser;
|
class SecurityUser;
|
||||||
class UsersModel;
|
class UsersModel;
|
||||||
class AccountServiceHelper;
|
class AccountsHelper;
|
||||||
|
class LightDMSessionInfo;
|
||||||
/**
|
/**
|
||||||
* @brief lightdm工具类
|
* @brief lightdm工具类
|
||||||
*
|
*
|
||||||
|
@ -42,7 +44,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param parent 父指针
|
* @param parent 父指针
|
||||||
*/
|
*/
|
||||||
explicit LightDMHelper(AccountServiceHelper *accountHelper, QObject *parent = nullptr);
|
explicit LightDMHelper(AccountsHelper *accountHelper, QObject *parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -103,6 +105,14 @@ public Q_SLOTS:
|
||||||
*/
|
*/
|
||||||
void onUsersChanged();
|
void onUsersChanged();
|
||||||
|
|
||||||
|
void onLDMSessionAdded(QDBusObjectPath objPath);
|
||||||
|
|
||||||
|
void onLDMSessionRemoved(QDBusObjectPath objPath);
|
||||||
|
|
||||||
|
void onUserAdded(QDBusObjectPath objPath);
|
||||||
|
|
||||||
|
void onUserRemoved(QDBusObjectPath objPath);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
/**
|
/**
|
||||||
* @brief 认证成功
|
* @brief 认证成功
|
||||||
|
@ -153,16 +163,51 @@ private:
|
||||||
|
|
||||||
void updateSessionsInfo();
|
void updateSessionsInfo();
|
||||||
|
|
||||||
|
void initLDMSessionsInfo();
|
||||||
|
|
||||||
|
bool isUserLoggined(const QString &strUserName);
|
||||||
|
|
||||||
|
void initAccountsUsersInfo();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_isShowManualLogin; /**< 是否显示手动登录 */
|
bool m_isShowManualLogin; /**< 是否显示手动登录 */
|
||||||
QString m_strSession; /**< 当前会话 */
|
QString m_strSession; /**< 当前会话 */
|
||||||
QString m_strCurUserName; /**< 当前选择用户 */
|
QString m_strCurUserName; /**< 当前选择用户 */
|
||||||
QList<UserInfoPtr> m_listUsers; /**< 用户信息列表 */
|
|
||||||
SecurityUser *m_secUser = nullptr; /**< 安全用户信息指针 */
|
SecurityUser *m_secUser = nullptr; /**< 安全用户信息指针 */
|
||||||
QLightDM::SessionsModel *m_sessionsModel; /**< lightdm 会话数据指针 */
|
QLightDM::SessionsModel *m_sessionsModel; /**< lightdm 会话数据指针 */
|
||||||
QList<QString> m_listSessions; /**< 会话列表 */
|
QList<QString> m_listSessions; /**< 会话列表 */
|
||||||
UsersModel *m_modelUsers = nullptr; /**< lightdm 用户数据指针 */
|
QMap<QString, UserInfoPtr> *m_mapUsers; /**< accounts 用户信息列表指针 */
|
||||||
AccountServiceHelper *m_accountServiceHelper = nullptr;
|
AccountsHelper *m_accountServiceHelper = nullptr;
|
||||||
|
QMap<QString, std::shared_ptr<LightDMSessionInfo>> *m_ldmSessions;
|
||||||
|
QDBusInterface *m_dbusIfsLDM;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class LightDMSessionInfo : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit LightDMSessionInfo(const QString &strPath, QObject* parent = nullptr);
|
||||||
|
|
||||||
|
virtual ~LightDMSessionInfo();
|
||||||
|
|
||||||
|
inline QString path() const { return m_strPath; }
|
||||||
|
inline QString userName() const { return m_strUserName; }
|
||||||
|
inline QString seatPath() const { return m_strSeatPath; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
void initData();
|
||||||
|
void initConnections();
|
||||||
|
|
||||||
|
private Q_SLOTS:
|
||||||
|
void onPropertiesChanged(const QString&, const QVariantMap&, const QStringList&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_strPath;
|
||||||
|
bool m_propertiesChangedConnected = false;
|
||||||
|
QString m_strSeatPath;
|
||||||
|
QString m_strUserName;
|
||||||
|
};
|
||||||
|
|
||||||
|
QDebug operator <<(QDebug stream, const LightDMSessionInfo &userInfo);
|
||||||
|
|
||||||
#endif // LIGHTDMHELPER_H
|
#endif // LIGHTDMHELPER_H
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
#include "languagesetting.h"
|
||||||
|
#include <QApplication>
|
||||||
|
#include "definetypes.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
LanguageSetting* LanguageSetting::m_singleInstance = nullptr;
|
||||||
|
|
||||||
|
LanguageSetting::LanguageSetting(QObject *parent)
|
||||||
|
: QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
LanguageSetting::~LanguageSetting()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
LanguageSetting* LanguageSetting::instance(QObject *parent)
|
||||||
|
{
|
||||||
|
if(m_singleInstance == nullptr)
|
||||||
|
m_singleInstance = new LanguageSetting(parent);
|
||||||
|
return m_singleInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LanguageSetting::onLanguageChanged(QString languageCode)
|
||||||
|
{
|
||||||
|
if(languageCode == "")
|
||||||
|
return ;
|
||||||
|
|
||||||
|
if(m_strLanguageCode == languageCode) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug()<<"onLanguageChanged "<<languageCode;
|
||||||
|
Q_EMIT languageChanged(false);
|
||||||
|
if (m_translator) {
|
||||||
|
qApp->removeTranslator(m_translator);
|
||||||
|
delete m_translator;
|
||||||
|
m_translator = nullptr;
|
||||||
|
}
|
||||||
|
m_translator = new QTranslator(this);
|
||||||
|
QString qmFile;
|
||||||
|
|
||||||
|
if (languageCode.startsWith("zh_CN")) { /*这里写的有问题,忘记之前为什么写了,会导致繁体也会加载zh_CN*/
|
||||||
|
qmFile = QString(WORKING_DIRECTORY"/i18n_qm/%1.qm").arg("zh_CN");
|
||||||
|
setenv("LANGUAGE","zh_CN",1);
|
||||||
|
setenv("LANG","zh_CN",1);
|
||||||
|
setlocale(LC_ALL,"zh_CN.utf8");
|
||||||
|
QLocale lang("zh_CN");
|
||||||
|
/*这里设置一个QLocale的默认值,用来影响插件的语言。插件加载翻译文件时,不使用QLocale::system().name()来获取语言,
|
||||||
|
* 应该使用QLocale local; local.name() 来获取语言,这样可以识别到登录界面设置的的语言环境*/
|
||||||
|
QLocale::setDefault(lang);
|
||||||
|
} else {
|
||||||
|
qmFile = QString(WORKING_DIRECTORY"/i18n_qm/%1.qm").arg(languageCode);
|
||||||
|
setenv("LANGUAGE",languageCode.toLatin1().data(),1);
|
||||||
|
setenv("LANG",languageCode.toLatin1().data(),1);
|
||||||
|
setlocale(LC_ALL,"");
|
||||||
|
QLocale lang(languageCode);
|
||||||
|
/*这里设置一个QLocale的默认值,用来影响插件的语言。插件加载翻译文件时,不使用QLocale::system().name()来获取语言,
|
||||||
|
* 应该使用QLocale local; local.name() 来获取语言,这样可以识别到登录界面设置的的语言环境*/
|
||||||
|
QLocale::setDefault(languageCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_translator->load(qmFile);
|
||||||
|
qApp->installTranslator(m_translator);
|
||||||
|
qDebug() << "load translation file " << qmFile;
|
||||||
|
|
||||||
|
m_strLanguageCode = languageCode;
|
||||||
|
Q_EMIT languageChanged(true);
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef LANGUAGESETTING_H
|
||||||
|
#define LANGUAGESETTING_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QTranslator>
|
||||||
|
|
||||||
|
class LanguageSetting : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
static LanguageSetting *instance(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
void onLanguageChanged(QString languageCode);
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void languageChanged(bool isCompleted);
|
||||||
|
|
||||||
|
private:
|
||||||
|
LanguageSetting(QObject *parent = nullptr);
|
||||||
|
virtual ~LanguageSetting();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static LanguageSetting *m_singleInstance;
|
||||||
|
QTranslator *m_translator = nullptr;
|
||||||
|
QString m_strLanguageCode;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LANGUAGESETTING_H
|
|
@ -178,7 +178,26 @@ void LockDialogModel::updateSessionsInfo(QStringList list)
|
||||||
|
|
||||||
void LockDialogModel::updateUsersInfo(QList<UserInfoPtr> list)
|
void LockDialogModel::updateUsersInfo(QList<UserInfoPtr> list)
|
||||||
{
|
{
|
||||||
m_listUsersInfo = list;
|
for (auto userinfo : list) {
|
||||||
|
if (m_listUsersInfo.contains(userinfo)) {
|
||||||
|
UserInfoPtr changedUserInfo = findUserByName(userinfo->name());
|
||||||
|
if (changedUserInfo) {
|
||||||
|
changedUserInfo->updateUid(userinfo->uid());
|
||||||
|
changedUserInfo->updateFullName(userinfo->fullName());
|
||||||
|
changedUserInfo->updateHeadImage(userinfo->headImage());
|
||||||
|
changedUserInfo->updateLang(userinfo->lang());
|
||||||
|
changedUserInfo->updateLoggedIn(userinfo->isLoggedIn());
|
||||||
|
changedUserInfo->updateBackground(userinfo->backGround());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
m_listUsersInfo.append(userinfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (auto userinfo, m_listUsersInfo) {
|
||||||
|
if (!list.contains(userinfo)) {
|
||||||
|
m_listUsersInfo.removeOne(userinfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
Q_EMIT usersInfoChanged();
|
Q_EMIT usersInfoChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,7 +209,26 @@ void LockDialogModel::updateAgreementInfo(AgreementInfoPtr agreementInfo)
|
||||||
|
|
||||||
void LockDialogModel::onUsersInfoChanged(QList<UserInfoPtr> list)
|
void LockDialogModel::onUsersInfoChanged(QList<UserInfoPtr> list)
|
||||||
{
|
{
|
||||||
m_listUsersInfo = list;
|
for (auto userinfo : list) {
|
||||||
|
if (m_listUsersInfo.contains(userinfo)) {
|
||||||
|
UserInfoPtr changedUserInfo = findUserByName(userinfo->name());
|
||||||
|
if (changedUserInfo) {
|
||||||
|
changedUserInfo->updateUid(userinfo->uid());
|
||||||
|
changedUserInfo->updateFullName(userinfo->fullName());
|
||||||
|
changedUserInfo->updateHeadImage(userinfo->headImage());
|
||||||
|
changedUserInfo->updateLang(userinfo->lang());
|
||||||
|
changedUserInfo->updateLoggedIn(userinfo->isLoggedIn());
|
||||||
|
changedUserInfo->updateBackground(userinfo->backGround());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
m_listUsersInfo.append(userinfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (auto userinfo, m_listUsersInfo) {
|
||||||
|
if (!list.contains(userinfo)) {
|
||||||
|
m_listUsersInfo.removeOne(userinfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
Q_EMIT usersInfoChanged();
|
Q_EMIT usersInfoChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#include "screensaverwndadaptor.h"
|
#include "screensaverwndadaptor.h"
|
||||||
#include "pluginsloader.h"
|
#include "pluginsloader.h"
|
||||||
#include "msysdbus.h"
|
#include "msysdbus.h"
|
||||||
|
#include "languagesetting.h"
|
||||||
|
|
||||||
FullBackgroundWidget *window = nullptr;
|
FullBackgroundWidget *window = nullptr;
|
||||||
|
|
||||||
|
@ -122,12 +123,7 @@ int main(int argc, char *argv[])
|
||||||
qInfo()<<"Start "<<app.arguments();
|
qInfo()<<"Start "<<app.arguments();
|
||||||
|
|
||||||
//加载翻译文件
|
//加载翻译文件
|
||||||
QString locale = QLocale::system().name();
|
LanguageSetting::instance()->onLanguageChanged(QLocale::system().name());
|
||||||
QTranslator translator;
|
|
||||||
QString qmFile = QString(WORKING_DIRECTORY"/i18n_qm/%1.qm").arg(locale);
|
|
||||||
translator.load(qmFile);
|
|
||||||
app.installTranslator(&translator);
|
|
||||||
qDebug() << "load translation file " << qmFile;
|
|
||||||
|
|
||||||
window = new FullBackgroundWidget(lockDialogModel);
|
window = new FullBackgroundWidget(lockDialogModel);
|
||||||
|
|
||||||
|
|
210
src/userinfo.cpp
210
src/userinfo.cpp
|
@ -17,9 +17,16 @@
|
||||||
**/
|
**/
|
||||||
#include "userinfo.h"
|
#include "userinfo.h"
|
||||||
#include "global_utils.h"
|
#include "global_utils.h"
|
||||||
|
#include "definetypes.h"
|
||||||
|
#include <QDBusConnection>
|
||||||
|
#include <QDBusMessage>
|
||||||
|
#include <QDBusInterface>
|
||||||
|
#include <QDBusArgument>
|
||||||
|
#include <QFile>
|
||||||
|
|
||||||
UserInfo::UserInfo()
|
UserInfo::UserInfo(QObject *parent)
|
||||||
: m_isLoggedIn(false)
|
: QObject(parent)
|
||||||
|
, m_isLoggedIn(false)
|
||||||
, m_uId(-1)
|
, m_uId(-1)
|
||||||
, m_strBackground(DEFAULT_BACKGROUND_PATH)
|
, m_strBackground(DEFAULT_BACKGROUND_PATH)
|
||||||
, m_strLang(qgetenv("LANG"))
|
, m_strLang(qgetenv("LANG"))
|
||||||
|
@ -29,7 +36,8 @@ UserInfo::UserInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
UserInfo::UserInfo(const UserInfo &userInfo)
|
UserInfo::UserInfo(const UserInfo &userInfo)
|
||||||
: m_isLoggedIn(userInfo.m_isLoggedIn)
|
: QObject(userInfo.parent())
|
||||||
|
, m_isLoggedIn(userInfo.m_isLoggedIn)
|
||||||
, m_uId(userInfo.m_uId)
|
, m_uId(userInfo.m_uId)
|
||||||
, m_strHeadImage(userInfo.m_strHeadImage)
|
, m_strHeadImage(userInfo.m_strHeadImage)
|
||||||
, m_strFullName(userInfo.m_strFullName)
|
, m_strFullName(userInfo.m_strFullName)
|
||||||
|
@ -50,22 +58,11 @@ bool UserInfo::operator==(const UserInfo &userInfo) const
|
||||||
return userInfo.uid() == m_uId && userInfo.name() == m_strName;
|
return userInfo.uid() == m_uId && userInfo.name() == m_strName;
|
||||||
}
|
}
|
||||||
|
|
||||||
UserInfo& UserInfo::operator=(const UserInfo &userInfo)
|
|
||||||
{
|
|
||||||
if (this == &userInfo) return *this;
|
|
||||||
|
|
||||||
updateLoggedIn(userInfo.isLoggedIn());
|
|
||||||
updateUid(userInfo.uid());
|
|
||||||
updateHeadImage(userInfo.headImage());
|
|
||||||
updateFullName(userInfo.fullName());
|
|
||||||
updateBackground(userInfo.backGround());
|
|
||||||
updateLang(userInfo.lang());
|
|
||||||
updateName(userInfo.name());
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UserInfo::updateLoggedIn(const bool &isLoggedIn)
|
void UserInfo::updateLoggedIn(const bool &isLoggedIn)
|
||||||
{
|
{
|
||||||
|
if (isLoggedIn == m_isLoggedIn) {
|
||||||
|
return ;
|
||||||
|
}
|
||||||
m_isLoggedIn = isLoggedIn;
|
m_isLoggedIn = isLoggedIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,3 +109,182 @@ QDebug operator <<(QDebug stream, const UserInfo &userInfo)
|
||||||
<< "]";
|
<< "]";
|
||||||
return stream;
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LocalUserInfo::LocalUserInfo(const uid_t &uId, QObject* parent)
|
||||||
|
: UserInfo(parent)
|
||||||
|
, m_strPath("/org/freedesktop/Accounts/User" + QString::number(uId))
|
||||||
|
{
|
||||||
|
initData();
|
||||||
|
initConnections();
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalUserInfo::LocalUserInfo(const QString &strPath, QObject* parent)
|
||||||
|
: UserInfo(parent)
|
||||||
|
, m_strPath(strPath)
|
||||||
|
{
|
||||||
|
initData();
|
||||||
|
initConnections();
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalUserInfo::LocalUserInfo(const LocalUserInfo &localUser)
|
||||||
|
: UserInfo(localUser)
|
||||||
|
, m_strPath(localUser.path())
|
||||||
|
{
|
||||||
|
if (m_strPath.isEmpty()) {
|
||||||
|
m_strPath = QString("/org/freedesktop/Accounts/User" + QString::number(localUser.uid()));
|
||||||
|
}
|
||||||
|
initConnections();
|
||||||
|
}
|
||||||
|
|
||||||
|
LocalUserInfo::~LocalUserInfo()
|
||||||
|
{
|
||||||
|
if (m_propertiesChangedConnected) {
|
||||||
|
QDBusConnection::systemBus().disconnect(ACCOUNTS_DBUS_SERVICE,
|
||||||
|
m_strPath,
|
||||||
|
FD_PROPERTIES_INTERFACE,
|
||||||
|
"PropertiesChanged",
|
||||||
|
this,
|
||||||
|
SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
|
||||||
|
m_propertiesChangedConnected = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LocalUserInfo::initData()
|
||||||
|
{
|
||||||
|
QDBusInterface ifaceExtra(ACCOUNTS_DBUS_SERVICE, m_strPath, FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
|
QDBusMessage ret = ifaceExtra.call("GetAll", ACCOUNTS_USER_LDM_SERVICE_INTERFACE);
|
||||||
|
QList<QVariant> outArgs = ret.arguments();
|
||||||
|
QVariant first = outArgs.at(0);
|
||||||
|
const QDBusArgument &dbusArgsExtra = first.value<QDBusArgument>();
|
||||||
|
dbusArgsExtra.beginMap();
|
||||||
|
while(!dbusArgsExtra.atEnd()) {
|
||||||
|
QString key;
|
||||||
|
QVariant value;
|
||||||
|
dbusArgsExtra.beginMapEntry();
|
||||||
|
dbusArgsExtra >> key >> value;
|
||||||
|
if(key == "BackgroundFile") {
|
||||||
|
QString strBackground = value.toString();
|
||||||
|
if(strBackground.isEmpty() || !QFile(strBackground).exists() || !QFile(strBackground).size()) {
|
||||||
|
m_strBackground = DEFAULT_BACKGROUND_PATH;
|
||||||
|
} else {
|
||||||
|
m_strBackground = strBackground;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dbusArgsExtra.endMapEntry();
|
||||||
|
}
|
||||||
|
dbusArgsExtra.endMap();
|
||||||
|
|
||||||
|
QDBusInterface iface(ACCOUNTS_DBUS_SERVICE, m_strPath, FD_PROPERTIES_INTERFACE, QDBusConnection::systemBus());
|
||||||
|
ret = iface.call("GetAll", ACCOUNTS_USER_DBUS_INTERFACE);
|
||||||
|
outArgs = ret.arguments();
|
||||||
|
first = outArgs.at(0);
|
||||||
|
const QDBusArgument &dbusArgs = first.value<QDBusArgument>();
|
||||||
|
dbusArgs.beginMap();
|
||||||
|
while(!dbusArgs.atEnd()) {
|
||||||
|
QString key;
|
||||||
|
QVariant value;
|
||||||
|
dbusArgs.beginMapEntry();
|
||||||
|
dbusArgs >> key >> value;
|
||||||
|
if(key == "UserName") {
|
||||||
|
m_strName = value.toString();
|
||||||
|
} else if(key == "RealName") {
|
||||||
|
m_strFullName = value.toString();
|
||||||
|
} else if(key == "IconFile") {
|
||||||
|
QString strHeadImage = value.toString();
|
||||||
|
if(strHeadImage.isEmpty() || !QFile(strHeadImage).exists() || !QFile(strHeadImage).size()) {
|
||||||
|
m_strHeadImage = getDefaultFace();
|
||||||
|
} else {
|
||||||
|
m_strHeadImage = strHeadImage;
|
||||||
|
}
|
||||||
|
} else if(key == "Uid") {
|
||||||
|
m_uId = value.toUInt();
|
||||||
|
} else if(key == "Language") {
|
||||||
|
m_strLang = value.toString();
|
||||||
|
} else if (key == "BackgroundFile") {
|
||||||
|
QString strBackground = value.toString();
|
||||||
|
if(!strBackground.isEmpty() && QFile(strBackground).exists() && QFile(strBackground).size()) {
|
||||||
|
m_strBackground = strBackground;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dbusArgs.endMapEntry();
|
||||||
|
}
|
||||||
|
dbusArgs.endMap();
|
||||||
|
if(m_strFullName.isEmpty()) {
|
||||||
|
m_strFullName = m_strName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LocalUserInfo::initConnections()
|
||||||
|
{
|
||||||
|
if (!m_propertiesChangedConnected) {
|
||||||
|
QDBusConnection::systemBus().connect(ACCOUNTS_DBUS_SERVICE,
|
||||||
|
m_strPath,
|
||||||
|
FD_PROPERTIES_INTERFACE,
|
||||||
|
"PropertiesChanged",
|
||||||
|
this,
|
||||||
|
SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
|
||||||
|
m_propertiesChangedConnected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LocalUserInfo::onPropertiesChanged(const QString& interfaceName,
|
||||||
|
const QVariantMap& changedProperties,
|
||||||
|
const QStringList& invalidatedProperties)
|
||||||
|
{
|
||||||
|
Q_UNUSED(invalidatedProperties);
|
||||||
|
if (interfaceName == ACCOUNTS_USER_DBUS_INTERFACE) {
|
||||||
|
QVariantMap::const_iterator itVar = changedProperties.constBegin();
|
||||||
|
bool isChanged = false;
|
||||||
|
for ( ; itVar != changedProperties.constEnd(); itVar++) {
|
||||||
|
QVariant varValue = itVar.value();
|
||||||
|
if(itVar.key() == "UserName") {
|
||||||
|
m_strName = varValue.toString();
|
||||||
|
isChanged = true;
|
||||||
|
} else if(itVar.key() == "RealName") {
|
||||||
|
m_strFullName = varValue.toString();
|
||||||
|
isChanged = true;
|
||||||
|
} else if(itVar.key() == "IconFile") {
|
||||||
|
QString strHeadImage = varValue.toString();
|
||||||
|
if(strHeadImage.isEmpty() || !QFile(strHeadImage).exists() || !QFile(strHeadImage).size()) {
|
||||||
|
m_strHeadImage = getDefaultFace();
|
||||||
|
} else {
|
||||||
|
m_strHeadImage = strHeadImage;
|
||||||
|
}
|
||||||
|
isChanged = true;
|
||||||
|
} else if(itVar.key() == "Uid") {
|
||||||
|
m_uId = varValue.toUInt();
|
||||||
|
isChanged = true;
|
||||||
|
} else if(itVar.key() == "Language") {
|
||||||
|
m_strLang = varValue.toString();
|
||||||
|
isChanged = true;
|
||||||
|
} else if (itVar.key() == "BackgroundFile") {
|
||||||
|
QString strBackground = varValue.toString();
|
||||||
|
if(!strBackground.isEmpty() && QFile(strBackground).exists() && QFile(strBackground).size()) {
|
||||||
|
m_strBackground = strBackground;
|
||||||
|
isChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(m_strFullName.isEmpty()) {
|
||||||
|
m_strFullName = m_strName;
|
||||||
|
}
|
||||||
|
if (isChanged)
|
||||||
|
Q_EMIT userPropChanged(m_strName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QDebug operator <<(QDebug stream, const LocalUserInfo &userInfo)
|
||||||
|
{
|
||||||
|
stream << "["
|
||||||
|
<< userInfo.path()
|
||||||
|
<< userInfo.uid()
|
||||||
|
<< userInfo.name()
|
||||||
|
<< userInfo.fullName()
|
||||||
|
<< userInfo.headImage()
|
||||||
|
<< userInfo.backGround()
|
||||||
|
<< userInfo.isLoggedIn()
|
||||||
|
<< userInfo.lang()
|
||||||
|
<< "]";
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
|
@ -22,15 +22,15 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
class UserInfo
|
class UserInfo : public QObject
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
UserInfo();
|
explicit UserInfo(QObject *parent = nullptr);
|
||||||
UserInfo(const UserInfo &userInfo);
|
explicit UserInfo(const UserInfo &userInfo);
|
||||||
virtual ~UserInfo();
|
virtual ~UserInfo();
|
||||||
|
|
||||||
bool operator==(const UserInfo &userInfo) const;
|
bool operator==(const UserInfo &userInfo) const;
|
||||||
UserInfo& operator=(const UserInfo &userInfo);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
inline bool isLoggedIn() const { return m_isLoggedIn; }
|
inline bool isLoggedIn() const { return m_isLoggedIn; }
|
||||||
|
@ -41,6 +41,9 @@ public:
|
||||||
inline QString lang() const { return m_strLang; }
|
inline QString lang() const { return m_strLang; }
|
||||||
inline QString name() const { return m_strName; }
|
inline QString name() const { return m_strName; }
|
||||||
|
|
||||||
|
virtual inline QString path() const { return QString(); }
|
||||||
|
|
||||||
|
public:
|
||||||
void updateLoggedIn(const bool &isLoggedIn);
|
void updateLoggedIn(const bool &isLoggedIn);
|
||||||
void updateUid(const uid_t &id);
|
void updateUid(const uid_t &id);
|
||||||
void updateHeadImage(const QString &path);
|
void updateHeadImage(const QString &path);
|
||||||
|
@ -49,6 +52,9 @@ public:
|
||||||
void updateLang(const QString &lang);
|
void updateLang(const QString &lang);
|
||||||
void updateName(const QString &name);
|
void updateName(const QString &name);
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void userPropChanged(const QString &userName);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool m_isLoggedIn; // 是否已登录
|
bool m_isLoggedIn; // 是否已登录
|
||||||
uid_t m_uId; // 用户 uid
|
uid_t m_uId; // 用户 uid
|
||||||
|
@ -63,4 +69,32 @@ typedef std::shared_ptr<UserInfo> UserInfoPtr;
|
||||||
|
|
||||||
QDebug operator <<(QDebug stream, const UserInfo &userInfo);
|
QDebug operator <<(QDebug stream, const UserInfo &userInfo);
|
||||||
|
|
||||||
|
class LocalUserInfo : public UserInfo
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit LocalUserInfo(const uid_t &uId, QObject* parent = nullptr);
|
||||||
|
explicit LocalUserInfo(const QString &strPath, QObject* parent = nullptr);
|
||||||
|
explicit LocalUserInfo(const LocalUserInfo &localUser);
|
||||||
|
|
||||||
|
virtual ~LocalUserInfo();
|
||||||
|
|
||||||
|
inline QString path() const override { return m_strPath; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
void initData();
|
||||||
|
void initConnections();
|
||||||
|
|
||||||
|
private Q_SLOTS:
|
||||||
|
void onPropertiesChanged(const QString&, const QVariantMap&, const QStringList&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_strPath;
|
||||||
|
bool m_propertiesChangedConnected = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef std::shared_ptr<LocalUserInfo> LocalUserInfoPtr;
|
||||||
|
|
||||||
|
QDebug operator <<(QDebug stream, const LocalUserInfo &userInfo);
|
||||||
|
|
||||||
#endif // USERINFO_H
|
#endif // USERINFO_H
|
||||||
|
|
|
@ -17,8 +17,17 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include "../lock-dialog/pam-tally.h"
|
#include "../lock-dialog/pam-tally.h"
|
||||||
|
#include "global_utils.h"
|
||||||
|
|
||||||
AuthDialog::AuthDialog(LockDialogModel *model, UserInfo userInfo, QWidget *parent)
|
#define WIDGET_HEIGHT_HEADTIP (40*scale)
|
||||||
|
#define WIDGET_HEIGHT_HEADIMAGE (154*scale)
|
||||||
|
#define WIDGET_HEIGHT_USERNAME (40*scale)
|
||||||
|
#define WIDGET_HEIGHT_PASSWDEDIT (80*scale)
|
||||||
|
#define WIDGET_HEIGHT_SPACING (16*scale)
|
||||||
|
#define WIDGET_HEIGHT_CUSTOM (WIDGET_HEIGHT_HEADIMAGE+WIDGET_HEIGHT_USERNAME+WIDGET_HEIGHT_PASSWDEDIT+WIDGET_HEIGHT_SPACING*2)
|
||||||
|
#define WIDGET_HEIGHT_LOGINOPTS (104*scale)
|
||||||
|
|
||||||
|
AuthDialog::AuthDialog(LockDialogModel *model, UserInfoPtr userInfo, QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
, m_modelLockDialog(model)
|
, m_modelLockDialog(model)
|
||||||
, m_isLockingFlg(false)
|
, m_isLockingFlg(false)
|
||||||
|
@ -33,7 +42,7 @@ void AuthDialog::initUI()
|
||||||
{
|
{
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
||||||
mainLayout->setAlignment(Qt::AlignCenter);
|
mainLayout->setAlignment(Qt::AlignCenter);
|
||||||
mainLayout->setSpacing(16);
|
mainLayout->setSpacing(WIDGET_HEIGHT_SPACING);
|
||||||
mainLayout->setContentsMargins(0, 0, 0, 0);
|
mainLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
m_curFontSize = m_modelLockDialog->getCurFontSize();
|
m_curFontSize = m_modelLockDialog->getCurFontSize();
|
||||||
m_ptToPx = m_modelLockDialog->getPtToPx();
|
m_ptToPx = m_modelLockDialog->getPtToPx();
|
||||||
|
@ -50,12 +59,12 @@ void AuthDialog::initUI()
|
||||||
// 密码输入框
|
// 密码输入框
|
||||||
m_editWidget = new QWidget(this);
|
m_editWidget = new QWidget(this);
|
||||||
|
|
||||||
//错误信息提示
|
|
||||||
m_messageWidget = new QWidget(this);
|
|
||||||
|
|
||||||
// ukey
|
// ukey
|
||||||
m_ukeyPasswdWidget = new QWidget(this);
|
m_ukeyPasswdWidget = new QWidget(this);
|
||||||
|
|
||||||
|
// custom widget
|
||||||
|
m_customWidget = new QWidget(this);
|
||||||
|
|
||||||
// login option
|
// login option
|
||||||
m_widgetLoginOpts = new QWidget(this);
|
m_widgetLoginOpts = new QWidget(this);
|
||||||
|
|
||||||
|
@ -65,6 +74,7 @@ void AuthDialog::initUI()
|
||||||
mainLayout->addWidget(m_nameWidget);
|
mainLayout->addWidget(m_nameWidget);
|
||||||
mainLayout->addWidget(m_editWidget);
|
mainLayout->addWidget(m_editWidget);
|
||||||
mainLayout->addWidget(m_ukeyPasswdWidget);
|
mainLayout->addWidget(m_ukeyPasswdWidget);
|
||||||
|
mainLayout->addWidget(m_customWidget);
|
||||||
mainLayout->addWidget(m_widgetLoginOpts);
|
mainLayout->addWidget(m_widgetLoginOpts);
|
||||||
mainLayout->addStretch();
|
mainLayout->addStretch();
|
||||||
|
|
||||||
|
@ -73,6 +83,7 @@ void AuthDialog::initUI()
|
||||||
initNameWidget();
|
initNameWidget();
|
||||||
initEditWidget();
|
initEditWidget();
|
||||||
initUkeyPasswordWidget();
|
initUkeyPasswordWidget();
|
||||||
|
initCustomAuthWidget();
|
||||||
initLoginoptionWidget();
|
initLoginoptionWidget();
|
||||||
|
|
||||||
initConnections();
|
initConnections();
|
||||||
|
@ -116,31 +127,29 @@ void AuthDialog::resizeEvent(QResizeEvent *event)
|
||||||
|
|
||||||
void AuthDialog::updateAuthSize()
|
void AuthDialog::updateAuthSize()
|
||||||
{
|
{
|
||||||
this->layout()->setSpacing(16*scale);
|
this->layout()->setSpacing(WIDGET_HEIGHT_SPACING);
|
||||||
if (m_tipWidget)
|
if (m_tipWidget)
|
||||||
m_tipWidget->setFixedSize(this->width(), 40*scale);
|
m_tipWidget->setFixedSize(this->width(), WIDGET_HEIGHT_HEADTIP);
|
||||||
if (m_headerWidget)
|
if (m_headerWidget)
|
||||||
m_headerWidget->setFixedSize(this->width(), 154*scale);
|
m_headerWidget->setFixedSize(this->width(), WIDGET_HEIGHT_HEADIMAGE);
|
||||||
if (m_nameWidget)
|
if (m_nameWidget)
|
||||||
m_nameWidget->setFixedSize(this->width(), 40*scale);
|
m_nameWidget->setFixedSize(this->width(), WIDGET_HEIGHT_USERNAME);
|
||||||
if (m_editWidget)
|
if (m_editWidget)
|
||||||
m_editWidget->setFixedSize(this->width(), 80*scale);
|
m_editWidget->setFixedSize(this->width(), WIDGET_HEIGHT_PASSWDEDIT);
|
||||||
if (m_messageWidget)
|
|
||||||
m_messageWidget->setFixedSize(this->width(), 40*scale);
|
|
||||||
if (m_ukeyPasswdWidget)
|
if (m_ukeyPasswdWidget)
|
||||||
m_ukeyPasswdWidget->setFixedSize(this->width(), 80*scale);
|
m_ukeyPasswdWidget->setFixedSize(this->width(), WIDGET_HEIGHT_PASSWDEDIT);
|
||||||
if (m_widgetLoginOpts)
|
if (m_widgetLoginOpts)
|
||||||
m_widgetLoginOpts->setFixedSize(this->width(), 104*scale);
|
m_widgetLoginOpts->setFixedSize(this->width(), WIDGET_HEIGHT_LOGINOPTS);
|
||||||
if (m_labelLoginTypeTip) {
|
if (m_labelLoginTypeTip) {
|
||||||
m_labelLoginTypeTip->setFixedSize(m_tipWidget->size());
|
m_labelLoginTypeTip->setFixedSize(m_tipWidget->size());
|
||||||
m_labelLoginTypeTip->setFontSize((14 + m_curFontSize)*m_ptToPx);
|
m_labelLoginTypeTip->setFontSize((14 + m_curFontSize)*m_ptToPx);
|
||||||
}
|
}
|
||||||
if (m_labelHeadImg)
|
if (m_labelHeadImg)
|
||||||
m_labelHeadImg->setFixedSize(154*scale, 154*scale);
|
m_labelHeadImg->setFixedSize(WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
|
||||||
if (m_labelFace)
|
if (m_labelFace)
|
||||||
m_labelFace->setFixedSize(154*scale, 154*scale);
|
m_labelFace->setFixedSize(WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
|
||||||
if (m_labelQRCode)
|
if (m_labelQRCode)
|
||||||
m_labelQRCode->setFixedSize(154*scale, 154*scale);
|
m_labelQRCode->setFixedSize(WIDGET_HEIGHT_HEADIMAGE, WIDGET_HEIGHT_HEADIMAGE);
|
||||||
if (m_labelQRCodeTip)
|
if (m_labelQRCodeTip)
|
||||||
m_labelQRCodeTip->setFixedSize(22*scale, 22*scale);
|
m_labelQRCodeTip->setFixedSize(22*scale, 22*scale);
|
||||||
if (m_labelQRCodeMsg) {
|
if (m_labelQRCodeMsg) {
|
||||||
|
@ -148,7 +157,7 @@ void AuthDialog::updateAuthSize()
|
||||||
m_labelQRCodeMsg->setFontSize((14 + m_curFontSize)*m_ptToPx);
|
m_labelQRCodeMsg->setFontSize((14 + m_curFontSize)*m_ptToPx);
|
||||||
}
|
}
|
||||||
if (m_nameLabel) {
|
if (m_nameLabel) {
|
||||||
m_nameLabel->setFixedSize(this->width(), 40*scale);
|
m_nameLabel->setFixedSize(this->width(), WIDGET_HEIGHT_USERNAME);
|
||||||
m_nameLabel->setFontSize((24 + m_curFontSize)*m_ptToPx);
|
m_nameLabel->setFontSize((24 + m_curFontSize)*m_ptToPx);
|
||||||
}
|
}
|
||||||
if (m_passwordEdit) {
|
if (m_passwordEdit) {
|
||||||
|
@ -179,8 +188,9 @@ void AuthDialog::updateAuthSize()
|
||||||
}
|
}
|
||||||
if (m_tipWidget && bottomListWidget)
|
if (m_tipWidget && bottomListWidget)
|
||||||
m_optionTip->setFixedSize(bottomListWidget->width(), 32*scale);
|
m_optionTip->setFixedSize(bottomListWidget->width(), 32*scale);
|
||||||
|
if (m_customWidget)
|
||||||
|
m_customWidget->setFixedSize(width(), WIDGET_HEIGHT_CUSTOM);
|
||||||
updateUI();
|
updateUI();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AuthDialog::initTipWidget()
|
void AuthDialog::initTipWidget()
|
||||||
|
@ -324,30 +334,60 @@ void AuthDialog::initLoginoptionWidget()
|
||||||
// btnsLayout->addWidget(bottomListWidget);
|
// btnsLayout->addWidget(bottomListWidget);
|
||||||
// loginoptionLayout->addLayout(btnsLayout);
|
// loginoptionLayout->addLayout(btnsLayout);
|
||||||
|
|
||||||
m_customWidget = new QWidget(this);
|
}
|
||||||
m_layoutCustom = new QHBoxLayout();
|
|
||||||
m_layoutCustom->setSpacing(0);
|
void AuthDialog::initCustomAuthWidget()
|
||||||
m_layoutCustom->setContentsMargins(0,0,0,0);
|
{
|
||||||
m_customWidget->setLayout(m_layoutCustom);
|
if (m_customWidget) {
|
||||||
m_customWidget->hide();
|
m_layoutCustom = new QHBoxLayout(m_customWidget);
|
||||||
m_customWidget->setFixedSize(width(), 376+100);
|
m_layoutCustom->setSpacing(0);
|
||||||
|
m_layoutCustom->setContentsMargins(0,0,0,0);
|
||||||
|
m_layoutCustom->setAlignment(Qt::AlignVCenter);
|
||||||
|
m_customWidget->hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AuthDialog::updateUI()
|
void AuthDialog::updateUI()
|
||||||
{
|
{
|
||||||
QPixmap p(m_curUserInfo.headImage());
|
QPixmap p(m_curUserInfo->headImage());
|
||||||
QPixmap userIcon = scaledPixmap(p);
|
QPixmap userIcon = scaledPixmap(p);
|
||||||
userIcon = userIcon.scaled(154*scale, 154*scale, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
userIcon = userIcon.scaled(154*scale, 154*scale, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
userIcon = PixmapToRound(userIcon, 77*scale);
|
userIcon = PixmapToRound(userIcon, 77*scale);
|
||||||
m_labelHeadImg->setPixmap(userIcon);
|
m_labelHeadImg->setPixmap(userIcon);
|
||||||
|
|
||||||
m_nameLabel->setText(m_curUserInfo.fullName());
|
if (m_curUserInfo->name() == "*login") {
|
||||||
|
m_nameLabel->setText(tr("Login"));
|
||||||
|
} else if (m_curUserInfo->name() == "*guest") {
|
||||||
|
m_nameLabel->setText(tr("Guest"));
|
||||||
|
} else {
|
||||||
|
m_nameLabel->setText(m_curUserInfo->fullName());
|
||||||
|
}
|
||||||
|
|
||||||
m_fRetryButton->setStyleSheet(QString("QPushButton{border-radius: %1px; border:0px solid white;background-color: rgba(255,255,255,10%);}"
|
m_fRetryButton->setStyleSheet(QString("QPushButton{border-radius: %1px; border:0px solid white;background-color: rgba(255,255,255,10%);}"
|
||||||
"QPushButton::hover{background-color: rgb(255,255,255,30%);}"
|
"QPushButton::hover{background-color: rgb(255,255,255,30%);}"
|
||||||
"QPushButton::pressed {background-color: rgba(255,255,255,40%);}").arg((int)(77*scale)));
|
"QPushButton::pressed {background-color: rgba(255,255,255,40%);}").arg((int)(77*scale)));
|
||||||
m_fRetryButton->setFixedSize(154*scale, 154*scale);
|
m_fRetryButton->setFixedSize(154*scale, 154*scale);
|
||||||
m_fRetryButton->setIconSize(QSize(48*scale, 48*scale));
|
m_fRetryButton->setIconSize(QSize(48*scale, 48*scale));
|
||||||
|
qDebug()<<"AuthDialog updateUI:"<<isGreeterMode() << ","<<m_curUserInfo->isLoggedIn();
|
||||||
|
if (!isGreeterMode() && m_curUserInfo->isLoggedIn()) {
|
||||||
|
QPixmap iconLogin = QIcon::fromTheme("system-lock-screen-symbolic").pixmap(12,12);
|
||||||
|
iconLogin = drawSymbolicColoredPixmap(iconLogin, "white");
|
||||||
|
if (m_passwordEdit) {
|
||||||
|
m_passwordEdit->setIcon(iconLogin, iconLogin.size());
|
||||||
|
}
|
||||||
|
if (m_ukeyPasswordEdit) {
|
||||||
|
m_ukeyPasswordEdit->setIcon(iconLogin, iconLogin.size());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
QPixmap iconLogin = QIcon::fromTheme("go-next-symbolic").pixmap(20,20);
|
||||||
|
iconLogin = drawSymbolicColoredPixmap(iconLogin, "white");
|
||||||
|
if (m_passwordEdit) {
|
||||||
|
m_passwordEdit->setIcon(iconLogin, iconLogin.size());
|
||||||
|
}
|
||||||
|
if (m_ukeyPasswordEdit) {
|
||||||
|
m_ukeyPasswordEdit->setIcon(iconLogin, iconLogin.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AuthDialog::startLoadingUkey()
|
void AuthDialog::startLoadingUkey()
|
||||||
|
@ -397,11 +437,12 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
case LOGINOPT_TYPE_PASSWORD:
|
case LOGINOPT_TYPE_PASSWORD:
|
||||||
{
|
{
|
||||||
m_editWidget->show();
|
m_editWidget->show();
|
||||||
|
m_headerWidget->show();
|
||||||
|
m_nameWidget->show();
|
||||||
m_labelHeadImg->show();
|
m_labelHeadImg->show();
|
||||||
m_labelQRCode->hide();
|
m_labelQRCode->hide();
|
||||||
m_labelFace->hide();
|
m_labelFace->hide();
|
||||||
m_fRetryButton->hide();
|
m_fRetryButton->hide();
|
||||||
m_nameWidget->show();
|
|
||||||
m_ukeyPasswdWidget->hide();
|
m_ukeyPasswdWidget->hide();
|
||||||
m_ukeyPasswordEdit->clearFocus();
|
m_ukeyPasswordEdit->clearFocus();
|
||||||
m_customWidget->hide();
|
m_customWidget->hide();
|
||||||
|
@ -411,11 +452,12 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
case LOGINOPT_TYPE_FACE:
|
case LOGINOPT_TYPE_FACE:
|
||||||
{
|
{
|
||||||
m_editWidget->show();
|
m_editWidget->show();
|
||||||
|
m_headerWidget->show();
|
||||||
|
m_nameWidget->show();
|
||||||
m_labelHeadImg->hide();
|
m_labelHeadImg->hide();
|
||||||
m_labelQRCode->hide();
|
m_labelQRCode->hide();
|
||||||
m_labelFace->show();
|
m_labelFace->show();
|
||||||
m_fRetryButton->hide();
|
m_fRetryButton->hide();
|
||||||
m_nameWidget->show();
|
|
||||||
m_ukeyPasswdWidget->hide();
|
m_ukeyPasswdWidget->hide();
|
||||||
m_ukeyPasswordEdit->clearFocus();
|
m_ukeyPasswordEdit->clearFocus();
|
||||||
m_customWidget->hide();
|
m_customWidget->hide();
|
||||||
|
@ -431,8 +473,9 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
case LOGINOPT_TYPE_IRIS:
|
case LOGINOPT_TYPE_IRIS:
|
||||||
{
|
{
|
||||||
m_editWidget->show();
|
m_editWidget->show();
|
||||||
m_labelHeadImg->show();
|
m_headerWidget->show();
|
||||||
m_nameWidget->show();
|
m_nameWidget->show();
|
||||||
|
m_labelHeadImg->show();
|
||||||
m_labelQRCode->hide();
|
m_labelQRCode->hide();
|
||||||
m_labelFace->hide();
|
m_labelFace->hide();
|
||||||
m_fRetryButton->hide();
|
m_fRetryButton->hide();
|
||||||
|
@ -445,11 +488,12 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
case LOGINOPT_TYPE_QRCODE:
|
case LOGINOPT_TYPE_QRCODE:
|
||||||
{
|
{
|
||||||
m_editWidget->show();
|
m_editWidget->show();
|
||||||
|
m_headerWidget->show();
|
||||||
|
m_nameWidget->show();
|
||||||
m_labelHeadImg->hide();
|
m_labelHeadImg->hide();
|
||||||
setQRCodeMsg("");
|
setQRCodeMsg("");
|
||||||
m_labelQRCode->show();
|
m_labelQRCode->show();
|
||||||
m_labelFace->hide();
|
m_labelFace->hide();
|
||||||
m_nameWidget->show();
|
|
||||||
m_fRetryButton->hide();
|
m_fRetryButton->hide();
|
||||||
m_ukeyPasswdWidget->hide();
|
m_ukeyPasswdWidget->hide();
|
||||||
m_ukeyPasswordEdit->clearFocus();
|
m_ukeyPasswordEdit->clearFocus();
|
||||||
|
@ -460,8 +504,9 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
case LOGINOPT_TYPE_GENERAL_UKEY:
|
case LOGINOPT_TYPE_GENERAL_UKEY:
|
||||||
{
|
{
|
||||||
m_editWidget->show();
|
m_editWidget->show();
|
||||||
m_labelHeadImg->show();
|
m_headerWidget->show();
|
||||||
m_nameWidget->show();
|
m_nameWidget->show();
|
||||||
|
m_labelHeadImg->show();
|
||||||
m_labelQRCode->hide();
|
m_labelQRCode->hide();
|
||||||
m_labelFace->hide();
|
m_labelFace->hide();
|
||||||
m_fRetryButton->hide();
|
m_fRetryButton->hide();
|
||||||
|
@ -476,12 +521,9 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
case LOGINOPT_TYPE_CUSTOM:
|
case LOGINOPT_TYPE_CUSTOM:
|
||||||
{
|
{
|
||||||
m_editWidget->hide();
|
m_editWidget->hide();
|
||||||
m_labelHeadImg->hide();
|
m_headerWidget->hide();
|
||||||
setQRCodeMsg("");
|
|
||||||
m_labelQRCode->hide();
|
|
||||||
m_nameWidget->hide();
|
m_nameWidget->hide();
|
||||||
m_labelFace->hide();
|
setQRCodeMsg("");
|
||||||
m_fRetryButton->hide();
|
|
||||||
m_ukeyPasswdWidget->hide();
|
m_ukeyPasswdWidget->hide();
|
||||||
m_ukeyPasswordEdit->clearFocus();
|
m_ukeyPasswordEdit->clearFocus();
|
||||||
LoginAuthInterface* plugin = m_loginOpts->getCustomLoginAuth();
|
LoginAuthInterface* plugin = m_loginOpts->getCustomLoginAuth();
|
||||||
|
@ -509,7 +551,7 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uLoginOptType != m_uCurLoginOptType || (m_deviceInfo && m_deviceInfo->id != m_nLastDeviceId) || m_curUserInfo.name() != m_lastUserName) {
|
if (uLoginOptType != m_uCurLoginOptType || (m_deviceInfo && m_deviceInfo->id != m_nLastDeviceId) || m_curUserInfo->name() != m_lastUserName) {
|
||||||
clearMessage();
|
clearMessage();
|
||||||
switch(uLoginOptType) {
|
switch(uLoginOptType) {
|
||||||
case LOGINOPT_TYPE_PASSWORD:
|
case LOGINOPT_TYPE_PASSWORD:
|
||||||
|
@ -570,37 +612,10 @@ void AuthDialog::switchLoginOptType(unsigned uLoginOptType, bool faceBtnClicked)
|
||||||
m_nLastDeviceId = -1;
|
m_nLastDeviceId = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_lastUserName = m_curUserInfo.name();
|
m_lastUserName = m_curUserInfo->name();
|
||||||
m_uCurLoginOptType = uLoginOptType;
|
m_uCurLoginOptType = uLoginOptType;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief LoginWindow::setFace
|
|
||||||
* @param faceFile 用户头像文件
|
|
||||||
*
|
|
||||||
* 设置用户头像
|
|
||||||
*/
|
|
||||||
void AuthDialog::setFace(const QString& facePath)
|
|
||||||
{
|
|
||||||
QFile faceFile(facePath);
|
|
||||||
QPixmap faceImage;
|
|
||||||
m_labelHeadImg->setFixedSize(154,154);
|
|
||||||
//如果头像文件不存在,则使用默认头像
|
|
||||||
if(faceFile.exists()){
|
|
||||||
faceImage.load(facePath);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
faceImage.load(m_strDefaultFace);
|
|
||||||
}
|
|
||||||
//faceImage = cutPixmap(faceImage);
|
|
||||||
faceImage = faceImage.scaled(154,154, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
|
||||||
faceImage = PixmapToRound(faceImage,77);
|
|
||||||
m_labelHeadImg->setAlignment(Qt::AlignCenter);
|
|
||||||
m_labelHeadImg->setPixmap(faceImage);
|
|
||||||
|
|
||||||
m_face = facePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AuthDialog::setQRCode(QImage& imgQRCode)
|
void AuthDialog::setQRCode(QImage& imgQRCode)
|
||||||
{
|
{
|
||||||
if (imgQRCode.isNull()) {
|
if (imgQRCode.isNull()) {
|
||||||
|
@ -674,7 +689,7 @@ void AuthDialog::onRespondUkey(const QString &text)
|
||||||
{
|
{
|
||||||
if (m_loginOpts && m_deviceInfo){
|
if (m_loginOpts && m_deviceInfo){
|
||||||
m_loginOpts->SetExtraInfo(text,"pincode");
|
m_loginOpts->SetExtraInfo(text,"pincode");
|
||||||
m_loginOpts->startAuth(m_deviceInfo, m_curUserInfo.uid());
|
m_loginOpts->startAuth(m_deviceInfo, m_curUserInfo->uid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -892,11 +907,11 @@ void AuthDialog::onPamShowPrompt(QString strPrompt, int nType)
|
||||||
|
|
||||||
void AuthDialog::onPamAuthCompleted()
|
void AuthDialog::onPamAuthCompleted()
|
||||||
{
|
{
|
||||||
if (m_curUserInfo.name().isEmpty())
|
if (m_curUserInfo->name().isEmpty())
|
||||||
return ;
|
return ;
|
||||||
m_passwordEdit->stopWaiting();
|
m_passwordEdit->stopWaiting();
|
||||||
bool isAuthenticated = (Q_EMIT m_modelLockDialog->pamIsAuthenticated());
|
bool isAuthenticated = (Q_EMIT m_modelLockDialog->pamIsAuthenticated());
|
||||||
qDebug()<<"onPamAuthCompleted:"<<isAuthenticated<<m_curUserInfo.name();
|
qDebug()<<"onPamAuthCompleted:"<<isAuthenticated<<m_curUserInfo->name();
|
||||||
if(isAuthenticated) {
|
if(isAuthenticated) {
|
||||||
if((m_bRecvPrompt && !m_bHasUnacknowledgedMsg ) || m_bDirectLogin) {
|
if((m_bRecvPrompt && !m_bHasUnacknowledgedMsg ) || m_bDirectLogin) {
|
||||||
m_bDirectLogin = false;
|
m_bDirectLogin = false;
|
||||||
|
@ -905,12 +920,12 @@ void AuthDialog::onPamAuthCompleted()
|
||||||
m_passwordEdit->readOnly(false);
|
m_passwordEdit->readOnly(false);
|
||||||
m_passwordEdit->clear();
|
m_passwordEdit->clear();
|
||||||
clearMessage();
|
clearMessage();
|
||||||
m_failMap.remove(m_curUserInfo.uid());
|
m_failMap.remove(m_curUserInfo->uid());
|
||||||
setLoginTypeTip("");
|
setLoginTypeTip("");
|
||||||
setUkeyTypeTip("");
|
setUkeyTypeTip("");
|
||||||
authMode = UNKNOWN;
|
authMode = UNKNOWN;
|
||||||
m_uCurLoginOptType = LOGINOPT_TYPE_PASSWORD;
|
m_uCurLoginOptType = LOGINOPT_TYPE_PASSWORD;
|
||||||
Q_EMIT authSucceed(m_curUserInfo.name());
|
Q_EMIT authSucceed(m_curUserInfo->name());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
qDebug()<<"m_bRecvPrompt = "<<m_bRecvPrompt<<" m_bHasUnacknowledgedMsg = "<<m_bHasUnacknowledgedMsg;
|
qDebug()<<"m_bRecvPrompt = "<<m_bRecvPrompt<<" m_bHasUnacknowledgedMsg = "<<m_bHasUnacknowledgedMsg;
|
||||||
|
@ -968,17 +983,17 @@ void AuthDialog::onRespond(const QString &strRes)
|
||||||
qInfo()<<"Wait for input passwd!";
|
qInfo()<<"Wait for input passwd!";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (m_curUserInfo.name().isEmpty()) {
|
if (m_curUserInfo->name().isEmpty()) {
|
||||||
qInfo()<<"No user be selected!!";
|
qInfo()<<"No user be selected!!";
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
m_bHasUnacknowledgedMsg = false;
|
m_bHasUnacknowledgedMsg = false;
|
||||||
clearMessage();
|
clearMessage();
|
||||||
|
|
||||||
qDebug()<<"onRespond:"<<m_curUserInfo.name();
|
qDebug()<<"onRespond:"<<m_curUserInfo->name();
|
||||||
if(m_curUserInfo.name() == "*guest"){
|
if(m_curUserInfo->name() == "*guest"){
|
||||||
Q_EMIT m_modelLockDialog->pamAuthenticate(m_curUserInfo.name());
|
Q_EMIT m_modelLockDialog->pamAuthenticate(m_curUserInfo->name());
|
||||||
} else if(m_curUserInfo.name() == "*login") { //用户输入用户名
|
} else if(m_curUserInfo->name() == "*login") { //用户输入用户名
|
||||||
m_isManual = true;
|
m_isManual = true;
|
||||||
m_isNameLogin = true;
|
m_isNameLogin = true;
|
||||||
|
|
||||||
|
@ -1000,19 +1015,19 @@ void AuthDialog::onRespond(const QString &strRes)
|
||||||
|
|
||||||
void AuthDialog::startAuth()
|
void AuthDialog::startAuth()
|
||||||
{
|
{
|
||||||
if (!m_curUserInfo.name().isEmpty()) {
|
if (!m_curUserInfo->name().isEmpty()) {
|
||||||
m_bRecvPrompt = false;
|
m_bRecvPrompt = false;
|
||||||
m_bHasUnacknowledgedMsg = false;
|
m_bHasUnacknowledgedMsg = false;
|
||||||
//用户认证
|
//用户认证
|
||||||
if(m_curUserInfo.name() == "*guest") { //游客登录
|
if(m_curUserInfo->name() == "*guest") { //游客登录
|
||||||
qDebug() << "guest login";
|
qDebug() << "guest login";
|
||||||
m_passwordEdit->show();
|
m_passwordEdit->show();
|
||||||
m_passwordEdit->setPrompt(tr("login"));
|
m_passwordEdit->setPrompt(tr("login"));
|
||||||
} else if(m_curUserInfo.name() == "*login") { //手动输入用户名
|
} else if(m_curUserInfo->name() == "*login") { //手动输入用户名
|
||||||
Q_EMIT m_modelLockDialog->pamAuthenticate("");
|
Q_EMIT m_modelLockDialog->pamAuthenticate("");
|
||||||
} else {
|
} else {
|
||||||
qDebug() << "login: " << m_curUserInfo.name();
|
qDebug() << "login: " << m_curUserInfo->name();
|
||||||
Q_EMIT m_modelLockDialog->pamAuthenticate(m_curUserInfo.name());
|
Q_EMIT m_modelLockDialog->pamAuthenticate(m_curUserInfo->name());
|
||||||
m_passwordEdit->clear();
|
m_passwordEdit->clear();
|
||||||
m_passwordEdit->readOnly(true);
|
m_passwordEdit->readOnly(true);
|
||||||
}
|
}
|
||||||
|
@ -1032,15 +1047,15 @@ void AuthDialog::stopAuth()
|
||||||
clearMessage();
|
clearMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AuthDialog::onCurUserInfoChanged(const UserInfo &userInfo)
|
void AuthDialog::onCurUserInfoChanged(UserInfoPtr userInfo)
|
||||||
{
|
{
|
||||||
if (m_curUserInfo.uid() > -1 && userInfo.uid() == m_curUserInfo.uid()) {
|
if (m_curUserInfo->uid() > -1 && userInfo->uid() == m_curUserInfo->uid()) {
|
||||||
m_curUserInfo = userInfo;
|
m_curUserInfo = userInfo;
|
||||||
updateUI();
|
updateUI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AuthDialog::onCurUserChanged(const UserInfo &userInfo)
|
void AuthDialog::onCurUserChanged(UserInfoPtr userInfo)
|
||||||
{
|
{
|
||||||
if(m_loginOpts){
|
if(m_loginOpts){
|
||||||
m_loginOpts->stopAuth();
|
m_loginOpts->stopAuth();
|
||||||
|
@ -1100,13 +1115,13 @@ void AuthDialog::onMessageButtonClicked()
|
||||||
m_passwordEdit->clear();
|
m_passwordEdit->clear();
|
||||||
clearMessage();
|
clearMessage();
|
||||||
|
|
||||||
m_failMap.remove(m_curUserInfo.uid());
|
m_failMap.remove(m_curUserInfo->uid());
|
||||||
setLoginTypeTip("");
|
setLoginTypeTip("");
|
||||||
setUkeyTypeTip("");
|
setUkeyTypeTip("");
|
||||||
authMode = UNKNOWN;
|
authMode = UNKNOWN;
|
||||||
m_uCurLoginOptType = LOGINOPT_TYPE_PASSWORD;
|
m_uCurLoginOptType = LOGINOPT_TYPE_PASSWORD;
|
||||||
|
|
||||||
Q_EMIT authSucceed(m_curUserInfo.name());
|
Q_EMIT authSucceed(m_curUserInfo->name());
|
||||||
} else {
|
} else {
|
||||||
m_messageButton->hide();
|
m_messageButton->hide();
|
||||||
m_messageLabel->setText("");
|
m_messageLabel->setText("");
|
||||||
|
@ -1124,14 +1139,14 @@ void AuthDialog::clearMessage()
|
||||||
|
|
||||||
bool AuthDialog::unlockUserTimer()
|
bool AuthDialog::unlockUserTimer()
|
||||||
{
|
{
|
||||||
if (m_curUserInfo.name().isEmpty())
|
if (m_curUserInfo->name().isEmpty())
|
||||||
return false;
|
return false;
|
||||||
int failed_count = 0;
|
int failed_count = 0;
|
||||||
int time_left = 0;
|
int time_left = 0;
|
||||||
int deny = 0;
|
int deny = 0;
|
||||||
int fail_time =0;
|
int fail_time =0;
|
||||||
int unlock_time = 0;
|
int unlock_time = 0;
|
||||||
QString curUserName = m_curUserInfo.name();
|
QString curUserName = m_curUserInfo->name();
|
||||||
|
|
||||||
if (NULL == curUserName.toLatin1().data()) {
|
if (NULL == curUserName.toLatin1().data()) {
|
||||||
qDebug() << "get user info failed." ;
|
qDebug() << "get user info failed." ;
|
||||||
|
@ -1236,7 +1251,7 @@ void AuthDialog::pamBioSuccess()
|
||||||
if(m_deviceInfo && m_deviceInfo->deviceType == LOGINOPT_TYPE_GENERAL_UKEY){
|
if(m_deviceInfo && m_deviceInfo->deviceType == LOGINOPT_TYPE_GENERAL_UKEY){
|
||||||
//ukey时不调用ukey认证
|
//ukey时不调用ukey认证
|
||||||
}else{
|
}else{
|
||||||
m_loginOpts->startAuth(m_deviceInfo, m_curUserInfo.uid());
|
m_loginOpts->startAuth(m_deviceInfo, m_curUserInfo->uid());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_deviceInfo) {
|
if (m_deviceInfo) {
|
||||||
|
@ -1349,10 +1364,10 @@ void AuthDialog::performBiometricAuth()
|
||||||
|
|
||||||
//获取默认设备
|
//获取默认设备
|
||||||
if (m_loginOpts) {
|
if (m_loginOpts) {
|
||||||
if(m_curUserInfo.name() == "*login")
|
if(m_curUserInfo->name() == "*login")
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_strManualLoginName);
|
m_deviceName = m_loginOpts->getDefaultDevice(m_strManualLoginName);
|
||||||
else
|
else
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo.name());
|
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo->name());
|
||||||
|
|
||||||
if (m_isCustomDefault) { // 认证插件配置默认插件认证
|
if (m_isCustomDefault) { // 认证插件配置默认插件认证
|
||||||
if (m_loginOpts) {
|
if (m_loginOpts) {
|
||||||
|
@ -1387,7 +1402,7 @@ void AuthDialog::performBiometricAuth()
|
||||||
}
|
}
|
||||||
|
|
||||||
//已经错误超过3次
|
//已经错误超过3次
|
||||||
if(m_failMap.contains(m_curUserInfo.uid()) && m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] >= maxFailedTimes)
|
if(m_failMap.contains(m_curUserInfo->uid()) && m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] >= maxFailedTimes)
|
||||||
{
|
{
|
||||||
if (m_deviceInfo->deviceType == UniT_Remote) {
|
if (m_deviceInfo->deviceType == UniT_Remote) {
|
||||||
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
||||||
|
@ -1424,11 +1439,11 @@ void AuthDialog::skipBiometricAuth()
|
||||||
void AuthDialog::initBiometricWidget()
|
void AuthDialog::initBiometricWidget()
|
||||||
{
|
{
|
||||||
if(m_loginOpts) {
|
if(m_loginOpts) {
|
||||||
m_loginOpts->setUser(m_curUserInfo.uid());
|
m_loginOpts->setUser(m_curUserInfo->uid());
|
||||||
} else {
|
} else {
|
||||||
QHBoxLayout *optsLayout = new QHBoxLayout(m_widgetLoginOpts);
|
QHBoxLayout *optsLayout = new QHBoxLayout(m_widgetLoginOpts);
|
||||||
optsLayout->setContentsMargins(0,0,0,0);
|
optsLayout->setContentsMargins(0,0,0,0);
|
||||||
m_loginOpts = new LoginOptionsWidget(m_biometricProxy, m_curUserInfo.uid(), m_uniauthService, m_widgetLoginOpts);
|
m_loginOpts = new LoginOptionsWidget(m_biometricProxy, m_curUserInfo->uid(), m_uniauthService, m_widgetLoginOpts);
|
||||||
optsLayout->addWidget(m_loginOpts);
|
optsLayout->addWidget(m_loginOpts);
|
||||||
connect(m_loginOpts, &LoginOptionsWidget::authComplete,
|
connect(m_loginOpts, &LoginOptionsWidget::authComplete,
|
||||||
this, &AuthDialog::onBiometricAuthComplete);
|
this, &AuthDialog::onBiometricAuthComplete);
|
||||||
|
@ -1442,7 +1457,7 @@ void AuthDialog::initBiometricWidget()
|
||||||
this, &AuthDialog::onLoginOptsCount);
|
this, &AuthDialog::onLoginOptsCount);
|
||||||
connect(m_loginOpts, &LoginOptionsWidget::updateAuthMsg,
|
connect(m_loginOpts, &LoginOptionsWidget::updateAuthMsg,
|
||||||
this, &AuthDialog::setLoginMsg);
|
this, &AuthDialog::setLoginMsg);
|
||||||
m_loginOpts->setUser(m_curUserInfo.uid());
|
m_loginOpts->setUser(m_curUserInfo->uid());
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug()<<"OptsCount:"<<m_loginOpts->getLoginOptCount();
|
qDebug()<<"OptsCount:"<<m_loginOpts->getLoginOptCount();
|
||||||
|
@ -1503,7 +1518,7 @@ void AuthDialog::onLoginOptsCount(unsigned uCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取默认设备
|
//获取默认设备
|
||||||
if(m_curUserInfo.name() == "*login"){
|
if(m_curUserInfo->name() == "*login"){
|
||||||
if(isLoadingUkey){
|
if(isLoadingUkey){
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_strManualLoginName,UniT_General_Ukey);
|
m_deviceName = m_loginOpts->getDefaultDevice(m_strManualLoginName,UniT_General_Ukey);
|
||||||
}else{
|
}else{
|
||||||
|
@ -1511,9 +1526,9 @@ void AuthDialog::onLoginOptsCount(unsigned uCount)
|
||||||
}
|
}
|
||||||
} else{
|
} else{
|
||||||
if(isLoadingUkey){
|
if(isLoadingUkey){
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo.name(),UniT_General_Ukey);
|
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo->name(),UniT_General_Ukey);
|
||||||
}else{
|
}else{
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo.name());
|
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo->name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1539,7 +1554,7 @@ void AuthDialog::onLoginOptsCount(unsigned uCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
//已经错误超过3次
|
//已经错误超过3次
|
||||||
if(m_failMap.contains(m_curUserInfo.uid()) && m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] >= maxFailedTimes)
|
if(m_failMap.contains(m_curUserInfo->uid()) && m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] >= maxFailedTimes)
|
||||||
{
|
{
|
||||||
if (m_deviceInfo->deviceType == UniT_Remote) {
|
if (m_deviceInfo->deviceType == UniT_Remote) {
|
||||||
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
||||||
|
@ -1620,7 +1635,7 @@ void AuthDialog::onDeviceChanged(unsigned uCurLoginOptType, const DeviceInfoPtr
|
||||||
|
|
||||||
if(deviceInfo)
|
if(deviceInfo)
|
||||||
qDebug() << "device changed: " << *deviceInfo;
|
qDebug() << "device changed: " << *deviceInfo;
|
||||||
if(deviceInfo && m_failMap[m_curUserInfo.uid()][deviceInfo->id] >= maxFailedTimes){
|
if(deviceInfo && m_failMap[m_curUserInfo->uid()][deviceInfo->id] >= maxFailedTimes){
|
||||||
qDebug() << "Failed MAX!!";
|
qDebug() << "Failed MAX!!";
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
@ -1670,18 +1685,18 @@ void AuthDialog::onBiometricAuthComplete(bool result, int nStatus)
|
||||||
return;
|
return;
|
||||||
} else if (nStatus >= 2 && nStatus != 5){
|
} else if (nStatus >= 2 && nStatus != 5){
|
||||||
if (m_deviceInfo) {
|
if (m_deviceInfo) {
|
||||||
if(m_failMap.contains(m_curUserInfo.uid()) && m_failMap[m_curUserInfo.uid()].contains(m_deviceInfo->id)){
|
if(m_failMap.contains(m_curUserInfo->uid()) && m_failMap[m_curUserInfo->uid()].contains(m_deviceInfo->id)){
|
||||||
m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] = m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] + 1;
|
m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] = m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] + 1;
|
||||||
}else{
|
}else{
|
||||||
m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] = 1;
|
m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] = 1;
|
||||||
}
|
}
|
||||||
qDebug()<<"Failed count:"<<m_failMap[m_curUserInfo.uid()][m_deviceInfo->id]<<",Max:"<<maxFailedTimes;
|
qDebug()<<"Failed count:"<<m_failMap[m_curUserInfo->uid()][m_deviceInfo->id]<<",Max:"<<maxFailedTimes;
|
||||||
if (m_deviceInfo->deviceType == BioT_Face) {
|
if (m_deviceInfo->deviceType == BioT_Face) {
|
||||||
QImage imgFailed;
|
QImage imgFailed;
|
||||||
setFaceImg(imgFailed, 1);
|
setFaceImg(imgFailed, 1);
|
||||||
m_fTimeoutTimes = 0;
|
m_fTimeoutTimes = 0;
|
||||||
}
|
}
|
||||||
if(m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] >= maxFailedTimes){
|
if(m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] >= maxFailedTimes){
|
||||||
if (m_deviceInfo->deviceType == UniT_Remote) {
|
if (m_deviceInfo->deviceType == UniT_Remote) {
|
||||||
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
||||||
QImage nullImage;
|
QImage nullImage;
|
||||||
|
@ -1704,11 +1719,11 @@ void AuthDialog::onBiometricAuthComplete(bool result, int nStatus)
|
||||||
if(m_deviceInfo->deviceType == LOGINOPT_TYPE_GENERAL_UKEY){
|
if(m_deviceInfo->deviceType == LOGINOPT_TYPE_GENERAL_UKEY){
|
||||||
setUkeyTypeTip(tr("Failed to verify %1, you still have %2 verification opportunities")
|
setUkeyTypeTip(tr("Failed to verify %1, you still have %2 verification opportunities")
|
||||||
.arg(getDeviceType_tr(m_deviceInfo->deviceType))
|
.arg(getDeviceType_tr(m_deviceInfo->deviceType))
|
||||||
.arg(maxFailedTimes-m_failMap[m_curUserInfo.uid()][m_deviceInfo->id]));
|
.arg(maxFailedTimes-m_failMap[m_curUserInfo->uid()][m_deviceInfo->id]));
|
||||||
}else {
|
}else {
|
||||||
setLoginTypeTip(tr("Failed to verify %1, you still have %2 verification opportunities")
|
setLoginTypeTip(tr("Failed to verify %1, you still have %2 verification opportunities")
|
||||||
.arg(getDeviceType_tr(m_deviceInfo->deviceType))
|
.arg(getDeviceType_tr(m_deviceInfo->deviceType))
|
||||||
.arg(maxFailedTimes-m_failMap[m_curUserInfo.uid()][m_deviceInfo->id]));
|
.arg(maxFailedTimes-m_failMap[m_curUserInfo->uid()][m_deviceInfo->id]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1831,10 +1846,10 @@ void AuthDialog::onBiometricDbusChanged(bool bActive)
|
||||||
|
|
||||||
//获取默认设备
|
//获取默认设备
|
||||||
if (m_loginOpts) {
|
if (m_loginOpts) {
|
||||||
if(m_curUserInfo.name() == "*login")
|
if(m_curUserInfo->name() == "*login")
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_strManualLoginName);
|
m_deviceName = m_loginOpts->getDefaultDevice(m_strManualLoginName);
|
||||||
else
|
else
|
||||||
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo.name());
|
m_deviceName = m_loginOpts->getDefaultDevice(m_curUserInfo->name());
|
||||||
}
|
}
|
||||||
qDebug() << m_deviceName;
|
qDebug() << m_deviceName;
|
||||||
if (m_deviceInfo) {
|
if (m_deviceInfo) {
|
||||||
|
@ -1858,7 +1873,7 @@ void AuthDialog::onBiometricDbusChanged(bool bActive)
|
||||||
}
|
}
|
||||||
|
|
||||||
//已经错误超过3次
|
//已经错误超过3次
|
||||||
if(m_failMap.contains(m_curUserInfo.uid()) && m_failMap[m_curUserInfo.uid()][m_deviceInfo->id] >= maxFailedTimes) {
|
if(m_failMap.contains(m_curUserInfo->uid()) && m_failMap[m_curUserInfo->uid()][m_deviceInfo->id] >= maxFailedTimes) {
|
||||||
if (m_deviceInfo->deviceType == UniT_Remote) {
|
if (m_deviceInfo->deviceType == UniT_Remote) {
|
||||||
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
setLoginTypeTip(tr("Failed to verify %1, please enter password to unlock").arg(getDeviceType_tr(m_deviceInfo->deviceType)));
|
||||||
} else {
|
} else {
|
||||||
|
@ -1951,17 +1966,12 @@ QString AuthDialog::onCustomRequest(QString strReqJson)
|
||||||
if (reqType == "GetInformations") { // 请求信息
|
if (reqType == "GetInformations") { // 请求信息
|
||||||
QString strType = rootObj.value("Type").toString();
|
QString strType = rootObj.value("Type").toString();
|
||||||
if (strType.contains("CurrentUser")) { // 当前用户信息
|
if (strType.contains("CurrentUser")) { // 当前用户信息
|
||||||
if (m_curUserInfo.uid() >= 0 && !m_curUserInfo.name().isEmpty() && !m_curUserInfo.name().startsWith("*")) {
|
if (m_curUserInfo->uid() >= 0 && !m_curUserInfo->name().isEmpty() && !m_curUserInfo->name().startsWith("*")) {
|
||||||
QJsonObject user;
|
QJsonObject user;
|
||||||
user["Name"] = m_curUserInfo.name();
|
user["Name"] = m_curUserInfo->name();
|
||||||
user["Id"] = (double)(m_curUserInfo.uid());
|
user["Id"] = (double)(m_curUserInfo->uid());
|
||||||
QFile faceFile(m_face);
|
user["HeadImg"] = m_curUserInfo->headImage();
|
||||||
if (!faceFile.exists()) {
|
user["RealName"] = m_curUserInfo->fullName();
|
||||||
user["HeadImg"] = m_strDefaultFace;
|
|
||||||
} else {
|
|
||||||
user["HeadImg"] = m_face;
|
|
||||||
}
|
|
||||||
user["RealName"] = m_curUserInfo.fullName();
|
|
||||||
contentObj["CurrentUser"] = user;
|
contentObj["CurrentUser"] = user;
|
||||||
} else {
|
} else {
|
||||||
retObj["Ret"] = -1;
|
retObj["Ret"] = -1;
|
||||||
|
|
|
@ -25,7 +25,7 @@ class AuthDialog : public QWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AuthDialog(LockDialogModel *model, UserInfo userInfo, QWidget *parent = nullptr);
|
explicit AuthDialog(LockDialogModel *model, UserInfoPtr userInfo, QWidget *parent = nullptr);
|
||||||
|
|
||||||
void initUI();
|
void initUI();
|
||||||
void switchLoginOptType(unsigned uLoginOptType,bool faceBtnClicked = false);
|
void switchLoginOptType(unsigned uLoginOptType,bool faceBtnClicked = false);
|
||||||
|
@ -33,8 +33,8 @@ public:
|
||||||
public:
|
public:
|
||||||
void startAuth();
|
void startAuth();
|
||||||
void stopAuth();
|
void stopAuth();
|
||||||
void onCurUserChanged(const UserInfo &userInfo);
|
void onCurUserChanged(UserInfoPtr userInfo);
|
||||||
void onCurUserInfoChanged(const UserInfo &userInfo);
|
void onCurUserInfoChanged(UserInfoPtr userInfo);
|
||||||
|
|
||||||
void updateUI();
|
void updateUI();
|
||||||
void updateAuthSize();
|
void updateAuthSize();
|
||||||
|
@ -125,6 +125,7 @@ private:
|
||||||
void initMessagerWidget();
|
void initMessagerWidget();
|
||||||
void initUkeyPasswordWidget();
|
void initUkeyPasswordWidget();
|
||||||
void initLoginoptionWidget();
|
void initLoginoptionWidget();
|
||||||
|
void initCustomAuthWidget();
|
||||||
|
|
||||||
void showAuthenticated(bool successful = true);
|
void showAuthenticated(bool successful = true);
|
||||||
void initConnections();
|
void initConnections();
|
||||||
|
@ -140,7 +141,6 @@ private:
|
||||||
void restartBioAuth();
|
void restartBioAuth();
|
||||||
void waitBiometricServiceStatus();
|
void waitBiometricServiceStatus();
|
||||||
QString getDeviceType_tr(int deviceType);
|
QString getDeviceType_tr(int deviceType);
|
||||||
void setFace(const QString& facePath);
|
|
||||||
|
|
||||||
void updatePixmap();
|
void updatePixmap();
|
||||||
|
|
||||||
|
@ -157,7 +157,6 @@ private:
|
||||||
KLabel *m_nameLabel = nullptr; //用户名
|
KLabel *m_nameLabel = nullptr; //用户名
|
||||||
|
|
||||||
QWidget *m_editWidget = nullptr;
|
QWidget *m_editWidget = nullptr;
|
||||||
QWidget *m_messageWidget = nullptr;
|
|
||||||
IconEdit *m_passwordEdit = nullptr; //密码输入框
|
IconEdit *m_passwordEdit = nullptr; //密码输入框
|
||||||
KLabel *m_messageLabel = nullptr; //PAM消息显示
|
KLabel *m_messageLabel = nullptr; //PAM消息显示
|
||||||
QPushButton *m_messageButton = nullptr; //免密登录按钮
|
QPushButton *m_messageButton = nullptr; //免密登录按钮
|
||||||
|
@ -184,7 +183,7 @@ private:
|
||||||
|
|
||||||
BioButtonListWidget *bottomListWidget = nullptr;
|
BioButtonListWidget *bottomListWidget = nullptr;
|
||||||
|
|
||||||
UserInfo m_curUserInfo;
|
UserInfoPtr m_curUserInfo;
|
||||||
bool m_bRecvPrompt = false;
|
bool m_bRecvPrompt = false;
|
||||||
bool m_bHasUnacknowledgedMsg = false;
|
bool m_bHasUnacknowledgedMsg = false;
|
||||||
bool m_bDirectLogin = false;
|
bool m_bDirectLogin = false;
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QStyleOption>
|
#include <QStyleOption>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QEvent>
|
||||||
|
|
||||||
BatteryWidget::BatteryWidget(LockDialogModel *model, QWidget *parent) :
|
BatteryWidget::BatteryWidget(LockDialogModel *model, QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
|
@ -107,14 +108,14 @@ void BatteryWidget::paintEvent(QPaintEvent *event)
|
||||||
|
|
||||||
void BatteryWidget::onBatteryChanged(QStringList args)
|
void BatteryWidget::onBatteryChanged(QStringList args)
|
||||||
{
|
{
|
||||||
int battery = args.at(0).toInt();
|
m_nCurBatteryValue = args.at(0).toInt();
|
||||||
int batteryState = args.at(1).toInt();
|
m_nCurBatteryState = args.at(1).toInt();
|
||||||
if (batteryState == 1 || batteryState == 5) {
|
if (m_nCurBatteryState == 1 || m_nCurBatteryState == 5) {
|
||||||
mStatusLabel->setText(tr("Charging..."));
|
mStatusLabel->setText(tr("Charging..."));
|
||||||
} else if (batteryState == 4) {
|
} else if (m_nCurBatteryState == 4) {
|
||||||
mStatusLabel->setText(tr("fully charged"));
|
mStatusLabel->setText(tr("fully charged"));
|
||||||
}
|
}
|
||||||
if (batteryState == 4 || batteryState == 1 || batteryState == 5) {
|
if (m_nCurBatteryState == 4 || m_nCurBatteryState == 1 || m_nCurBatteryState == 5) {
|
||||||
mStatusLabel->setVisible(true);
|
mStatusLabel->setVisible(true);
|
||||||
mModeLabel->setText(tr("PowerMode"));
|
mModeLabel->setText(tr("PowerMode"));
|
||||||
} else {
|
} else {
|
||||||
|
@ -122,10 +123,35 @@ void BatteryWidget::onBatteryChanged(QStringList args)
|
||||||
mModeLabel->setText(tr("BatteryMode"));
|
mModeLabel->setText(tr("BatteryMode"));
|
||||||
}
|
}
|
||||||
|
|
||||||
mValueLabel->setText(QString("<font size='5';font color=#262626>%1</font>%").arg(battery));
|
mValueLabel->setText(QString("<font size='5';font color=#262626>%1</font>%").arg(m_nCurBatteryValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
void BatteryWidget::onBatteryStatusChanged(QString iconName)
|
void BatteryWidget::onBatteryStatusChanged(QString iconName)
|
||||||
{
|
{
|
||||||
mIconBtn->setIcon(QIcon::fromTheme(iconName));
|
mIconBtn->setIcon(QIcon::fromTheme(iconName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BatteryWidget::changeEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::LanguageChange){
|
||||||
|
refreshTranslate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BatteryWidget::refreshTranslate()
|
||||||
|
{
|
||||||
|
if (m_nCurBatteryState == 1 || m_nCurBatteryState == 5) {
|
||||||
|
mStatusLabel->setText(tr("Charging..."));
|
||||||
|
} else if (m_nCurBatteryState == 4) {
|
||||||
|
mStatusLabel->setText(tr("fully charged"));
|
||||||
|
}
|
||||||
|
if (m_nCurBatteryState == 4 || m_nCurBatteryState == 1 || m_nCurBatteryState == 5) {
|
||||||
|
mStatusLabel->setVisible(true);
|
||||||
|
mModeLabel->setText(tr("PowerMode"));
|
||||||
|
} else {
|
||||||
|
mStatusLabel->setVisible(false);
|
||||||
|
mModeLabel->setText(tr("BatteryMode"));
|
||||||
|
}
|
||||||
|
|
||||||
|
mValueLabel->setText(QString("<font size='5';font color=#262626>%1</font>%").arg(m_nCurBatteryValue));
|
||||||
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
|
void changeEvent(QEvent *event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LockDialogModel *m_modelLockDialog = nullptr;
|
LockDialogModel *m_modelLockDialog = nullptr;
|
||||||
|
@ -46,11 +47,13 @@ private:
|
||||||
QLabel *mValueLabel;
|
QLabel *mValueLabel;
|
||||||
QLabel *mStatusLabel;
|
QLabel *mStatusLabel;
|
||||||
QPoint mPoint;
|
QPoint mPoint;
|
||||||
|
int m_nCurBatteryValue;
|
||||||
|
int m_nCurBatteryState;
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void onBatteryChanged(QStringList args);
|
void onBatteryChanged(QStringList args);
|
||||||
void onBatteryStatusChanged(QString iconName);
|
void onBatteryStatusChanged(QString iconName);
|
||||||
|
void refreshTranslate();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BATTERYWIDGET_H
|
#endif // BATTERYWIDGET_H
|
||||||
|
|
|
@ -79,6 +79,8 @@ void BlockWidget::setTips(const QString tips)
|
||||||
m_tipLabel->show();
|
m_tipLabel->show();
|
||||||
m_listView->hide();
|
m_listView->hide();
|
||||||
m_tipLabel->setText(tips);
|
m_tipLabel->setText(tips);
|
||||||
|
m_cancelButton->setText(tr("Cancel"));
|
||||||
|
m_confirmButton->setText(tr("Confrim"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlockWidget::setWarning(QStringList list, int type)
|
void BlockWidget::setWarning(QStringList list, int type)
|
||||||
|
@ -130,5 +132,7 @@ void BlockWidget::setWarning(QStringList list, int type)
|
||||||
"QPushButton:pressed {background: rgba(255, 255, 255, 0.3);border-radius: 8px;}");
|
"QPushButton:pressed {background: rgba(255, 255, 255, 0.3);border-radius: 8px;}");
|
||||||
sysFont.setPointSize((16 + m_curFontSize) *m_ptToPx);
|
sysFont.setPointSize((16 + m_curFontSize) *m_ptToPx);
|
||||||
m_cancelButton->setFont(sysFont);
|
m_cancelButton->setFont(sysFont);
|
||||||
|
m_cancelButton->setText(tr("Cancel"));
|
||||||
|
m_confirmButton->setText(tr("Confrim"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -545,6 +545,7 @@ void FullBackgroundWidget::showEvent(QShowEvent *event)
|
||||||
{
|
{
|
||||||
if(QX11Info::isPlatformX11())
|
if(QX11Info::isPlatformX11())
|
||||||
tryGrabKeyboard();
|
tryGrabKeyboard();
|
||||||
|
KWindowSystem::setType(this->winId(), NET::ScreenLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FullBackgroundWidget::tryGrabKeyboard()
|
void FullBackgroundWidget::tryGrabKeyboard()
|
||||||
|
|
|
@ -63,12 +63,9 @@ IconEdit::IconEdit(LockDialogModel *model, QWidget *parent)
|
||||||
|
|
||||||
m_iconButton = new QPushButton(this);
|
m_iconButton = new QPushButton(this);
|
||||||
m_iconButton->installEventFilter(this);
|
m_iconButton->installEventFilter(this);
|
||||||
m_iconButton->setFixedSize(24, 24);
|
m_iconButton->setFixedSize(24*scale, 24*scale);
|
||||||
m_iconButton->setIconSize(QSize(24, 24));
|
|
||||||
m_iconButton->setProperty("isRoundButton", true);
|
m_iconButton->setProperty("isRoundButton", true);
|
||||||
m_iconButton->setProperty("isImportant", true);
|
m_iconButton->setProperty("isImportant", true);
|
||||||
setIcon(QIcon::fromTheme("go-next-symbolic"));
|
|
||||||
|
|
||||||
|
|
||||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||||
layout->setContentsMargins(1, 1, 8, 1);
|
layout->setContentsMargins(1, 1, 8, 1);
|
||||||
|
@ -141,11 +138,12 @@ bool IconEdit::eventFilter(QObject *obj, QEvent *event)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconEdit::setIcon(const QIcon &icon)
|
void IconEdit::setIcon(const QIcon &icon, const QSize &size)
|
||||||
{
|
{
|
||||||
m_iconButton->setIcon(icon);
|
m_iconButton->setIcon(icon);
|
||||||
m_iconButton->setText("");
|
m_iconButton->setText("");
|
||||||
m_iconButton->setIconSize(QSize(24, 24));
|
m_sizeIconBtn = size;
|
||||||
|
m_iconButton->setIconSize(QSize(m_sizeIconBtn.width()*scale, m_sizeIconBtn.height()*scale));
|
||||||
m_icon = icon;
|
m_icon = icon;
|
||||||
m_iconText = "";
|
m_iconText = "";
|
||||||
}
|
}
|
||||||
|
@ -230,7 +228,7 @@ void IconEdit::stopWaiting()
|
||||||
m_edit->setReadOnly(false);
|
m_edit->setReadOnly(false);
|
||||||
if (!m_icon.isNull()) {
|
if (!m_icon.isNull()) {
|
||||||
m_iconButton->setIcon(m_icon);
|
m_iconButton->setIcon(m_icon);
|
||||||
m_iconButton->setIconSize(QSize(24*scale, 24*scale));
|
m_iconButton->setIconSize(QSize(m_sizeIconBtn.width()*scale, m_sizeIconBtn.height()*scale));
|
||||||
} else {
|
} else {
|
||||||
m_iconButton->setText(m_iconText);
|
m_iconButton->setText(m_iconText);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ class IconEdit : public QWidget
|
||||||
public:
|
public:
|
||||||
IconEdit(LockDialogModel *model,QWidget *parent = 0);
|
IconEdit(LockDialogModel *model,QWidget *parent = 0);
|
||||||
|
|
||||||
void setIcon(const QIcon &icon);
|
void setIcon(const QIcon &icon, const QSize &size);
|
||||||
void clear();
|
void clear();
|
||||||
void clearText();
|
void clearText();
|
||||||
void setPrompt(const QString &);
|
void setPrompt(const QString &);
|
||||||
|
@ -79,6 +79,7 @@ private:
|
||||||
QTimer *m_timer = nullptr;
|
QTimer *m_timer = nullptr;
|
||||||
QPixmap m_waitingPixmap;
|
QPixmap m_waitingPixmap;
|
||||||
bool m_capsState = false;
|
bool m_capsState = false;
|
||||||
|
QSize m_sizeIconBtn;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ICONEDIT_H
|
#endif // ICONEDIT_H
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "blockwidget.h"
|
#include "blockwidget.h"
|
||||||
#include "pluginsloader.h"
|
#include "pluginsloader.h"
|
||||||
#include "global_utils.h"
|
#include "global_utils.h"
|
||||||
|
#include "../lock-dialog/languagesetting.h"
|
||||||
|
|
||||||
#define BLUR_RADIUS 300
|
#define BLUR_RADIUS 300
|
||||||
#define RIGHT_MARGIN 24
|
#define RIGHT_MARGIN 24
|
||||||
|
@ -45,10 +46,7 @@ LockWidget::LockWidget(LockDialogModel *model, QWidget *parent)
|
||||||
, m_modelLockDialog(model)
|
, m_modelLockDialog(model)
|
||||||
{
|
{
|
||||||
scale = 1.0;
|
scale = 1.0;
|
||||||
UserInfoPtr ptrUser = m_modelLockDialog->findUserByName(m_modelLockDialog->defaultUserName());
|
m_curUserInfo = m_modelLockDialog->findUserByName(m_modelLockDialog->defaultUserName());
|
||||||
if (ptrUser) {
|
|
||||||
m_curUserInfo = *ptrUser;
|
|
||||||
}
|
|
||||||
initUI();
|
initUI();
|
||||||
initConnections();
|
initConnections();
|
||||||
initUsdMediaKeys();
|
initUsdMediaKeys();
|
||||||
|
@ -193,7 +191,7 @@ void LockWidget::resizeEvent(QResizeEvent *event)
|
||||||
m_powerListWidget->move((width() - m_powerListWidget->width())/2, (height() - m_powerListWidget->height())/2 - BOTTOM_MARGIN*scale);
|
m_powerListWidget->move((width() - m_powerListWidget->width())/2, (height() - m_powerListWidget->height())/2 - BOTTOM_MARGIN*scale);
|
||||||
|
|
||||||
updateBottomButton();
|
updateBottomButton();
|
||||||
if (m_curUserInfo.isLoggedIn() && m_sessionButton) {
|
if (m_curUserInfo->isLoggedIn() && m_sessionButton) {
|
||||||
buttonListWidget->setFixedSize(QSize(48*(buttonListWidget->count() - 1) + buttonListWidget->spacing()*2*(buttonListWidget->count() - 1), 64));
|
buttonListWidget->setFixedSize(QSize(48*(buttonListWidget->count() - 1) + buttonListWidget->spacing()*2*(buttonListWidget->count() - 1), 64));
|
||||||
} else {
|
} else {
|
||||||
buttonListWidget->setFixedSize(QSize(48*buttonListWidget->count() + buttonListWidget->spacing()*2*buttonListWidget->count(), 64));
|
buttonListWidget->setFixedSize(QSize(48*buttonListWidget->count() + buttonListWidget->spacing()*2*buttonListWidget->count(), 64));
|
||||||
|
@ -311,6 +309,7 @@ void LockWidget::initConnections()
|
||||||
connect(authDialog, &AuthDialog::customRequestAccount,
|
connect(authDialog, &AuthDialog::customRequestAccount,
|
||||||
this, &LockWidget::onCustomRequestAccount);
|
this, &LockWidget::onCustomRequestAccount);
|
||||||
}
|
}
|
||||||
|
connect(LanguageSetting::instance(this), &LanguageSetting::languageChanged, this, &LockWidget::onLanguageChanged);
|
||||||
}
|
}
|
||||||
void LockWidget::initTimeWidget()
|
void LockWidget::initTimeWidget()
|
||||||
{
|
{
|
||||||
|
@ -329,6 +328,10 @@ void LockWidget::initUserWidget()
|
||||||
connect(m_userListWidget, &UserListWidget::userSelected, m_modelLockDialog, [=](QString strUserName){
|
connect(m_userListWidget, &UserListWidget::userSelected, m_modelLockDialog, [=](QString strUserName){
|
||||||
SwitchToUser(strUserName);
|
SwitchToUser(strUserName);
|
||||||
});
|
});
|
||||||
|
connect(m_userListWidget, &UserListWidget::widgetSizeChanged, m_modelLockDialog, [=](){
|
||||||
|
m_userListWidget->move(width() - m_userListWidget->width() - RIGHT_MARGIN,
|
||||||
|
height()- BOTTOM_MARGIN*scale - buttonListWidget->height() - buttonListWidget->spacing()*scale - m_userListWidget->height());
|
||||||
|
});
|
||||||
m_userListWidget->clearFocus();
|
m_userListWidget->clearFocus();
|
||||||
m_userListWidget->move(width() - m_userListWidget->width() - RIGHT_MARGIN,
|
m_userListWidget->move(width() - m_userListWidget->width() - RIGHT_MARGIN,
|
||||||
height()- BOTTOM_MARGIN*scale - buttonListWidget->height() - buttonListWidget->spacing()*scale - m_userListWidget->height());
|
height()- BOTTOM_MARGIN*scale - buttonListWidget->height() - buttonListWidget->spacing()*scale - m_userListWidget->height());
|
||||||
|
@ -385,7 +388,7 @@ void LockWidget::initButtonWidget()
|
||||||
buttonListWidget->setItemWidget(m_btnItemSession, m_sessionButton);
|
buttonListWidget->setItemWidget(m_btnItemSession, m_sessionButton);
|
||||||
buttonListWidget->addItem(m_btnItemSession);
|
buttonListWidget->addItem(m_btnItemSession);
|
||||||
m_sessionButton->setObjectName("BtnSession");
|
m_sessionButton->setObjectName("BtnSession");
|
||||||
if (m_curUserInfo.isLoggedIn()) {
|
if (m_curUserInfo->isLoggedIn()) {
|
||||||
buttonListWidget->setItemHidden(m_btnItemSession, true);
|
buttonListWidget->setItemHidden(m_btnItemSession, true);
|
||||||
} else {
|
} else {
|
||||||
buttonListWidget->setItemHidden(m_btnItemSession, false);
|
buttonListWidget->setItemHidden(m_btnItemSession, false);
|
||||||
|
@ -494,7 +497,7 @@ void LockWidget::initButtonWidget()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_curUserInfo.isLoggedIn() && m_sessionButton) {
|
if (m_curUserInfo->isLoggedIn() && m_sessionButton) {
|
||||||
buttonListWidget->setFixedSize(QSize(48*(buttonListWidget->count() - 1) + buttonListWidget->spacing()*2*(buttonListWidget->count() - 1), 64));
|
buttonListWidget->setFixedSize(QSize(48*(buttonListWidget->count() - 1) + buttonListWidget->spacing()*2*(buttonListWidget->count() - 1), 64));
|
||||||
} else {
|
} else {
|
||||||
buttonListWidget->setFixedSize(QSize(48*buttonListWidget->count() + buttonListWidget->spacing()*2*buttonListWidget->count(), 64));
|
buttonListWidget->setFixedSize(QSize(48*buttonListWidget->count() + buttonListWidget->spacing()*2*buttonListWidget->count(), 64));
|
||||||
|
@ -642,9 +645,9 @@ void LockWidget::onUsersInfoChanged()
|
||||||
height()- BOTTOM_MARGIN*scale - buttonListWidget->height() - buttonListWidget->spacing()*scale - m_userListWidget->height());
|
height()- BOTTOM_MARGIN*scale - buttonListWidget->height() - buttonListWidget->spacing()*scale - m_userListWidget->height());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UserInfoPtr ptrUser = m_modelLockDialog->findUserByName(m_curUserInfo.name());
|
UserInfoPtr ptrUser = m_modelLockDialog->findUserByName(m_curUserInfo->name());
|
||||||
if (ptrUser) {
|
if (ptrUser) {
|
||||||
m_curUserInfo = *ptrUser;
|
m_curUserInfo = ptrUser;
|
||||||
if (authDialog) {
|
if (authDialog) {
|
||||||
authDialog->onCurUserInfoChanged(m_curUserInfo);
|
authDialog->onCurUserInfoChanged(m_curUserInfo);
|
||||||
}
|
}
|
||||||
|
@ -654,11 +657,16 @@ void LockWidget::onUsersInfoChanged()
|
||||||
void LockWidget::onCurUserChanged(const QString &strUserName)
|
void LockWidget::onCurUserChanged(const QString &strUserName)
|
||||||
{
|
{
|
||||||
UserInfoPtr ptrUser = m_modelLockDialog->findUserByName(strUserName);
|
UserInfoPtr ptrUser = m_modelLockDialog->findUserByName(strUserName);
|
||||||
if (ptrUser && authDialog) {
|
if (ptrUser) {
|
||||||
m_curUserInfo = *ptrUser;
|
m_curUserInfo = ptrUser;
|
||||||
authDialog->onCurUserChanged(m_curUserInfo);
|
qDebug()<<"CurUserInfo:"<<*m_curUserInfo;
|
||||||
|
if (m_curUserInfo->name() != "*login" && m_curUserInfo->name() != "*guest") {
|
||||||
|
LanguageSetting::instance()->onLanguageChanged(m_curUserInfo->lang());
|
||||||
|
}
|
||||||
|
if (authDialog)
|
||||||
|
authDialog->onCurUserChanged(m_curUserInfo);
|
||||||
}
|
}
|
||||||
if (m_btnItemSession && m_curUserInfo.isLoggedIn()) {
|
if (m_btnItemSession && m_curUserInfo->isLoggedIn()) {
|
||||||
buttonListWidget->setItemHidden(m_btnItemSession, true);
|
buttonListWidget->setItemHidden(m_btnItemSession, true);
|
||||||
} else {
|
} else {
|
||||||
buttonListWidget->setItemHidden(m_btnItemSession, false);
|
buttonListWidget->setItemHidden(m_btnItemSession, false);
|
||||||
|
@ -795,6 +803,7 @@ void LockWidget::onShowNetworkWidget()
|
||||||
m_networkWidget = new MyNetworkWidget(this);
|
m_networkWidget = new MyNetworkWidget(this);
|
||||||
m_networkWidget->installEventFilter(this);
|
m_networkWidget->installEventFilter(this);
|
||||||
}
|
}
|
||||||
|
m_networkWidget->loadNetPlugin();
|
||||||
m_networkWidget->setGeometry(this->width() - m_networkWidget->width() - RIGHT_MARGIN*scale,
|
m_networkWidget->setGeometry(this->width() - m_networkWidget->width() - RIGHT_MARGIN*scale,
|
||||||
this->height() - m_networkWidget->height() - BOTTOM_MARGIN*scale - buttonListWidget->spacing()*scale - buttonListWidget->height(),
|
this->height() - m_networkWidget->height() - BOTTOM_MARGIN*scale - buttonListWidget->spacing()*scale - buttonListWidget->height(),
|
||||||
m_networkWidget->width(),
|
m_networkWidget->width(),
|
||||||
|
@ -1053,3 +1062,12 @@ void LockWidget::SwitchToUser(QString strUserName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LockWidget::onLanguageChanged(bool isCompleted)
|
||||||
|
{
|
||||||
|
if (isCompleted) {
|
||||||
|
if (m_networkWidget) {
|
||||||
|
m_networkWidget->unloadNetPlugin();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -119,6 +119,8 @@ private Q_SLOTS:
|
||||||
|
|
||||||
void onSessionActiveChanged(bool isActive);
|
void onSessionActiveChanged(bool isActive);
|
||||||
|
|
||||||
|
void onLanguageChanged(bool isCompleted);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void authSucceed(QString strUserName);
|
void authSucceed(QString strUserName);
|
||||||
|
|
||||||
|
@ -138,7 +140,7 @@ private:
|
||||||
|
|
||||||
LockDialogModel *m_modelLockDialog = nullptr;
|
LockDialogModel *m_modelLockDialog = nullptr;
|
||||||
|
|
||||||
UserInfo m_curUserInfo;
|
UserInfoPtr m_curUserInfo;
|
||||||
|
|
||||||
AuthDialog *authDialog = nullptr;
|
AuthDialog *authDialog = nullptr;
|
||||||
QTimer *m_timerChkActive = nullptr;
|
QTimer *m_timerChkActive = nullptr;
|
||||||
|
|
|
@ -16,7 +16,6 @@ MyNetworkWidget::MyNetworkWidget(QWidget *parent) : QWidget(parent)
|
||||||
{
|
{
|
||||||
setObjectName("m_networkWidget");
|
setObjectName("m_networkWidget");
|
||||||
setStyleSheet("#m_networkWidget{background-color: white; border-radius:12px;}");
|
setStyleSheet("#m_networkWidget{background-color: white; border-radius:12px;}");
|
||||||
loadNetPlugin();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyNetworkWidget::loadNetPlugin()
|
void MyNetworkWidget::loadNetPlugin()
|
||||||
|
|
|
@ -12,6 +12,9 @@ class MyNetworkWidget : public QWidget
|
||||||
public:
|
public:
|
||||||
explicit MyNetworkWidget(QWidget *parent = nullptr);
|
explicit MyNetworkWidget(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
void loadNetPlugin();
|
||||||
|
void unloadNetPlugin();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
/**
|
/**
|
||||||
* @brief 网络窗口有线和无线弹窗切换事件,用于通知网络插件窗口切换
|
* @brief 网络窗口有线和无线弹窗切换事件,用于通知网络插件窗口切换
|
||||||
|
@ -25,8 +28,6 @@ private Q_SLOTS:
|
||||||
void paintEvent(QPaintEvent *p1);
|
void paintEvent(QPaintEvent *p1);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadNetPlugin();
|
|
||||||
void unloadNetPlugin();
|
|
||||||
void sendNetPluginVisible(bool visible);
|
void sendNetPluginVisible(bool visible);
|
||||||
|
|
||||||
QPluginLoader netloader;
|
QPluginLoader netloader;
|
||||||
|
|
|
@ -143,3 +143,32 @@ void PowerListWidget::setSystemPowerStatus(QString statusName)
|
||||||
qWarning() << __LINE__ << __FUNCTION__ << statusName;
|
qWarning() << __LINE__ << __FUNCTION__ << statusName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PowerListWidget::changeEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::LanguageChange){
|
||||||
|
refreshTranslate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PowerListWidget::refreshTranslate()
|
||||||
|
{
|
||||||
|
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");
|
||||||
|
} 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");
|
||||||
|
} 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");
|
||||||
|
} else if (powerBtnList[i].setFuncName == "PowerOff") {
|
||||||
|
powerBtnList[i].m_strName = tr("Power Off");
|
||||||
|
powerBtnList[i].m_strToolTip = tr("Close all apps, and then shut down your computer");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onUpdateListInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,6 +121,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *obj, QEvent *event);
|
bool eventFilter(QObject *obj, QEvent *event);
|
||||||
|
void changeEvent(QEvent *event);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void mulUsersLogined(QString inhibitType);
|
void mulUsersLogined(QString inhibitType);
|
||||||
|
@ -143,6 +144,7 @@ private:
|
||||||
void initUI();
|
void initUI();
|
||||||
void initBtnShowFlag();
|
void initBtnShowFlag();
|
||||||
void initConnections();
|
void initConnections();
|
||||||
|
void refreshTranslate();
|
||||||
// void initDBusInterface();
|
// void initDBusInterface();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -44,8 +44,6 @@ void SessionListWidget::initConnections()
|
||||||
{
|
{
|
||||||
// 响应点击事件
|
// 响应点击事件
|
||||||
connect(this, &SessionListWidget::itemClicked, this, &SessionListWidget::onListItemClicked);
|
connect(this, &SessionListWidget::itemClicked, this, &SessionListWidget::onListItemClicked);
|
||||||
|
|
||||||
connect(m_modelLockDialog, &LockDialogModel::usersInfoChanged, this, &SessionListWidget::onUpdateListInfo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SessionListWidget::onUpdateListInfo()
|
void SessionListWidget::onUpdateListInfo()
|
||||||
|
@ -66,6 +64,7 @@ void SessionListWidget::onListItemClicked(QListWidgetItem *item)
|
||||||
QWidget *widget = itemWidget(item);
|
QWidget *widget = itemWidget(item);
|
||||||
SessionItemWidget *currentItem = qobject_cast<SessionItemWidget *>(widget);
|
SessionItemWidget *currentItem = qobject_cast<SessionItemWidget *>(widget);
|
||||||
if (currentItem) {
|
if (currentItem) {
|
||||||
|
this->hide();
|
||||||
Q_EMIT sessionSelected(currentItem->sessionName());
|
Q_EMIT sessionSelected(currentItem->sessionName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,13 @@ void UserListWidget::onUpdateListInfo()
|
||||||
UserItemWidget *itemWidget = new UserItemWidget(this);
|
UserItemWidget *itemWidget = new UserItemWidget(this);
|
||||||
QPixmap p(user->headImage());
|
QPixmap p(user->headImage());
|
||||||
itemWidget->setUserPixmap(p);
|
itemWidget->setUserPixmap(p);
|
||||||
itemWidget->setUserNickName(user->fullName());
|
if (user->name() == "*login") {
|
||||||
|
itemWidget->setUserNickName(tr("Login"));
|
||||||
|
} else if (user->name() == "*guest") {
|
||||||
|
itemWidget->setUserNickName(tr("Guest"));
|
||||||
|
} else {
|
||||||
|
itemWidget->setUserNickName(user->fullName());
|
||||||
|
}
|
||||||
itemWidget->setUserStatus(user->isLoggedIn());
|
itemWidget->setUserStatus(user->isLoggedIn());
|
||||||
if (user->fullName() == m_modelLockDialog->currentUserName()) {
|
if (user->fullName() == m_modelLockDialog->currentUserName()) {
|
||||||
setCurrentItem(userItem, QItemSelectionModel::SelectionFlag::SelectCurrent);
|
setCurrentItem(userItem, QItemSelectionModel::SelectionFlag::SelectCurrent);
|
||||||
|
@ -71,4 +77,30 @@ void UserListWidget::updateWidgetSize()
|
||||||
setFixedHeight(count() * 40 + 10);
|
setFixedHeight(count() * 40 + 10);
|
||||||
}
|
}
|
||||||
adjustSize();
|
adjustSize();
|
||||||
|
Q_EMIT widgetSizeChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserListWidget::changeEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::LanguageChange){
|
||||||
|
refreshTranslate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserListWidget::refreshTranslate()
|
||||||
|
{
|
||||||
|
for (int n = 0; n < count(); n++) {
|
||||||
|
QListWidgetItem *widgetItem = item(n);
|
||||||
|
if (widgetItem) {
|
||||||
|
QWidget *widget = itemWidget(widgetItem);
|
||||||
|
UserItemWidget *item = qobject_cast<UserItemWidget *>(widget);
|
||||||
|
if (item) {
|
||||||
|
if (item->getUserName() == "*login") {
|
||||||
|
item->setUserNickName(tr("Login"));
|
||||||
|
} else if (item->getUserName() == "*guest") {
|
||||||
|
item->setUserNickName(tr("Guest"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,10 +22,15 @@ public Q_SLOTS:
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void userSelected(QString strUserName);
|
void userSelected(QString strUserName);
|
||||||
|
void widgetSizeChanged();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void changeEvent(QEvent *event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void initUI();
|
void initUI();
|
||||||
void initConnections();
|
void initConnections();
|
||||||
|
void refreshTranslate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LockDialogModel *m_modelLockDialog = nullptr;
|
LockDialogModel *m_modelLockDialog = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue