diff --git a/data/ukui-greeter/95-ukui-greeter.conf b/data/ukui-greeter/95-ukui-greeter.conf index 45a0cda..2ecb765 100644 --- a/data/ukui-greeter/95-ukui-greeter.conf +++ b/data/ukui-greeter/95-ukui-greeter.conf @@ -2,3 +2,4 @@ greeter-session=ukui-greeter user-session=ukui #greeter-setup-script=/usr/lib/ukui-greeter/ukui-greeter-nm-start.sh +enable-autologin-user-lock=false diff --git a/i18n_ts/bo.ts b/i18n_ts/bo.ts index c9e62fa..0f1fdbe 100644 --- a/i18n_ts/bo.ts +++ b/i18n_ts/bo.ts @@ -12,36 +12,222 @@ AuthDialog - + + Authentication failure, Please try again - - + + Password cannot be empty - + + + Verify face recognition or enter password to unlock + + + + + Press fingerprint or enter password to unlock + + + + + Verify voiceprint or enter password to unlock + + + + + Verify finger vein or enter password to unlock + + + + + Verify iris or enter password to unlock + + + + + Use the bound wechat scanning code or enter the password to unlock + + + + Password - + Input Password - + + Username + + + + + User name input error! + + + + + login + + + + Login - + Retry + + + Please try again in %1 minutes. + + + + + Please try again in %1 seconds. + + + + + Account locked permanently. + + + + + + + + Failed to verify %1, please enter password to unlock + + + + + + + + + Unable to verify %1, please enter password to unlock + + + + + + Failed to verify %1, you still have %2 verification opportunities + + + + + Abnormal network + + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + + + + + BatteryWidget + + + Charging... + + + + + fully charged + + + + + PowerMode + + + + + BatteryMode + + + + + BlockWidget + + + Cancel + + + + + Confrim + + + + + The following program is running to prevent the system from reboot! + + + + + The following program is running to prevent the system from shutting down! + + + + + The following program is running to prevent the system from suspend! + + + + + The following program is running to prevent the system from hibernate! + + CharsMoreWidget @@ -69,6 +255,124 @@ + + EngineDevice + + + yes + + + + + no + + + + + Yes + + + + + No + + + + + %1% available, charged + + + + + Left %1h %2m (%3%) + + + + + %1% available + + + + + Left %1h %2m to full + + + + + charging (%1%) + + + + + %1 waiting to discharge (%2%) + + + + + %1 waiting to charge (%2%) + + + + + AC adapter + + + + + Laptop battery + + + + + UPS + + + + + Monitor + + + + + Mouse + + + + + Keyboard + + + + + PDA + + + + + Cell phone + + + + + Media player + + + + + Tablet + + + + + Computer + + + + + unrecognised + + + LettersWidget @@ -85,21 +389,88 @@ LightDMHelper - + failed to start session. - + Login - + Guest + + LockWidget + + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + + + + LoginOptionsWidget + + + + Login Options + + + + + Password + + + + + Other + + + + + Identify device removed! + + + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + + + MyNetworkWidget @@ -129,38 +500,38 @@ PowerListWidget - + Hibernate - + Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left - + Suspend - - + + The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off - - Reboot + + Restart - + Power Off - + Close all apps, and then shut down your computer @@ -177,6 +548,50 @@ The screensaver is inactive. + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + + + + + S: + + + + tablet device + + Screensaver @@ -186,7 +601,7 @@ - + View @@ -202,7 +617,7 @@ delay - + how long to show lock @@ -210,7 +625,7 @@ has-lock - + if show lock @@ -218,22 +633,22 @@ main - + Screensaver for ukui-screensaver - + show on root window - + show on window. - + window id @@ -244,8 +659,8 @@ - + lock the screen immediately @@ -270,33 +685,33 @@ - + Dialog for the ukui ScreenSaver. - + activated by session idle signal - - + + lock the screen and show screensaver immediately - + show screensaver immediately - + show blank screensaver immediately and delay time to show lock - + show blank screensaver immediately and if lock diff --git a/i18n_ts/bo_CN.ts b/i18n_ts/bo_CN.ts index bb07f7e..7f36282 100644 --- a/i18n_ts/bo_CN.ts +++ b/i18n_ts/bo_CN.ts @@ -24,7 +24,7 @@ 使用密码认证 - + Retry བསྐྱར་དུ་ཞིབ་བཤེར་བྱ་དགོས། @@ -53,65 +53,135 @@ 账户锁定%1分钟由于%2次错误尝试 + Please try again in %1 minutes. - ཁྱོད་ཀྱིས་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས། + ཁྱོད་ཀྱིས་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རོགས། + Please try again in %1 seconds. - ཁྱོད་ཀྱིས་དུས་ཚོད་སྐར་ཆ་གཅིག་གི་ནང་དུ་ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས། + ཁྱོད་ཀྱིས་དུས་ཚོད་སྐར་ཆ་གཅིག་གི་ནང་དུ་ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས། + Account locked permanently. - དུས་གཏན་དུ་ཟྭ་བརྒྱབ་པའི་རྩིས་ཐོ། + དུས་གཏན་དུ་ཟྭ་བརྒྱབ་པའི་རྩིས་ཐོ། + + Verify face recognition or enter password to unlock - ངོ་གདོང་ངོས་འཛིན་ལ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་ + ངོ་གདོང་ངོས་འཛིན་ལ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་ + Press fingerprint or enter password to unlock - མཛུབ་རིས་མནན་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ + མཛུབ་རིས་མནན་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ + Verify voiceprint or enter password to unlock - སྒྲ་པར་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག + སྒྲ་པར་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག + Verify finger vein or enter password to unlock - མཛུབ་མོའི་ནང་དུ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ + མཛུབ་མོའི་ནང་དུ་ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ + Verify iris or enter password to unlock - iris ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་ + iris ཞིབ་བཤེར་བྱེད་པའམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་ - + Input Password ནང་འཇུག་གི་གསང་གྲངས། + + Username + སྤྱོད་མཁན་གྱི་མིང་། + + + + User name input error! + + + + + login + + + + + + + Failed to verify %1, please enter password to unlock - %1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས། + %1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས། + + + + + Unable to verify %1, please enter password to unlock - %1ལ་ཞིབ་བཤེར་བྱེད་ཐབས་བྲལ་བ་དང་། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས། + %1ལ་ཞིབ་བཤེར་བྱེད་ཐབས་བྲལ་བ་དང་། གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་རོགས། + Abnormal network - རྒྱུན་ལྡན་མིན་པའི་དྲ་ + རྒྱུན་ལྡན་མིན་པའི་དྲ་ + Face recognition waiting time out, please click refresh or enter the password to unlock. - མིའི་གདོང་ལ་དབྱེ་འབྱེད་བྱེད་པར་རེ་སྒུག་བྱེད་དུས་གསང་གྲངས་ཀྱི་སྒོ་ལྕགས་རྒྱག་རོགས། + མིའི་གདོང་ལ་དབྱེ་འབྱེད་བྱེད་པར་རེ་སྒུག་བྱེད་དུས་གསང་གྲངས་ཀྱི་སྒོ་ལྕགས་རྒྱག་རོགས། + + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + བདེ་འཇགས་གསང་ལྡེ་ + + + + QRCode + དོན་ཚན་གཉིས་པ། Use the bound wechat scanning code or enter the password to log in 使用绑定的微信扫码或输入密码登录 - - + + Password cannot be empty གསང་གྲངས་སྟོང་པ་ཡིན་མི་སྲིད། @@ -124,8 +194,10 @@ 无法验证%1,请输入密码. + + Failed to verify %1, you still have %2 verification opportunities - %1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། ཁྱེད་ཚོར་ད་དུང་%2ལ་ཞིབ་བཤེར་བྱེད་པའི་གོ་སྐབས་ཡོད། + %1ལ་ཞིབ་བཤེར་བྱེད་མ་ཐུབ་ན། ཁྱེད་ཚོར་ད་དུང་%2ལ་ཞིབ་བཤེར་བྱེད་པའི་གོ་སྐབས་ཡོད། Biometric/code scan authentication failed too many times, please enter the password. @@ -152,13 +224,15 @@ 请输入密码或者录入指纹 - + + Authentication failure, Please try again བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་ན། ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག + Use the bound wechat scanning code or enter the password to unlock - འབྲེལ་མཐུད་ཀྱི་འཕྲིན་ཕྲན་ཞིབ་བཤེར་ཨང་གྲངས་སམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་པ། + འབྲེལ་མཐུད་ཀྱི་འཕྲིན་ཕྲན་ཞིབ་བཤེར་ཨང་གྲངས་སམ་ཡང་ན་གསང་གྲངས་ནང་འཇུག་བྱས་ནས་ཟྭ་རྒྱག་པ། Enter the ukey password @@ -169,12 +243,12 @@ བདེ་འཇགས་ཀྱི་གསང་བའི་ལྡེ་མིག་དེ་USBཡི་སྣེ་འདྲེན་དུ་འཇུག་རོགས། - + Password གསང་གྲངས། - + Login ཐོ་འགོད་བྱེད་པ། @@ -199,6 +273,29 @@ 指纹验证失败,您还有%1次尝试机会 + + BatteryWidget + + + Charging... + + + + + fully charged + + + + + PowerMode + + + + + BatteryMode + + + BioDevices @@ -267,6 +364,39 @@ འགྲིགས། + + BlockWidget + + + Cancel + ཕྱིར་འཐེན། + + + + Confrim + + + + + The following program is running to prevent the system from reboot! + གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་བསྐྱར་དུ་འབྱུང་བར་སྔོན་འགོག་བྱེད་ཆེད་ཡིན། + + + + The following program is running to prevent the system from shutting down! + གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་གི་སྒོ་རྒྱག་པར་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན། + + + + The following program is running to prevent the system from suspend! + གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་གནས་སྐབས་མཚམས་འཇོག་པར་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན། + + + + The following program is running to prevent the system from hibernate! + གཤམ་གྱི་གོ་རིམ་ནི་མ་ལག་ལ་བཀག་འགོག་བྱེད་པའི་ཆེད་དུ་ཡིན། + + CharsMoreWidget @@ -1376,6 +1506,124 @@ WPA & WPA2 མི་སྒེར་ + + EngineDevice + + + yes + + + + + no + + + + + Yes + + + + + No + + + + + %1% available, charged + + + + + Left %1h %2m (%3%) + + + + + %1% available + + + + + Left %1h %2m to full + + + + + charging (%1%) + + + + + %1 waiting to discharge (%2%) + + + + + %1 waiting to charge (%2%) + + + + + AC adapter + + + + + Laptop battery + + + + + UPS + + + + + Monitor + + + + + Mouse + + + + + Keyboard + + + + + PDA + + + + + Cell phone + + + + + Media player + + + + + Tablet + + + + + Computer + + + + + unrecognised + + + IconEdit @@ -1639,17 +1887,17 @@ LightDMHelper - + failed to start session. - + Login ཐོ་འགོད་བྱེད་པ། - + Guest 游客 @@ -1692,28 +1940,73 @@ WLAN སྐུད་མེད་ཅུས་ཁོངས་ཀྱི་དྲ་བ། + + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget + + Login Options - ཐོ་འགོད་ཀྱི་བསལ་འདེམས་ཀྱི་དབང་ཆ། + ཐོ་འགོད་ཀྱི་བསལ་འདེམས་ཀྱི་དབང་ཆ། + Password - གསང་གྲངས། + གསང་གྲངས། + Other - གཞན་དག + གཞན་དག + + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + བདེ་འཇགས་གསང་ལྡེ་ + + + + QRCode + དོན་ཚན་གཉིས་པ། Wechat 微信 + Identify device removed! - དབྱེ་འབྱེད་སྒྲིག་ཆས་མེད་པར་བཟོ་དགོས། + དབྱེ་འབྱེད་སྒྲིག་ཆས་མེད་པར་བཟོ་དགོས། @@ -1905,38 +2198,38 @@ PowerListWidget - + Hibernate ཧིན་རྡུ་ཉི་ཞི་ཡ། - + Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left གློག་ཀླད་ཀྱི་སྒོ་བརྒྱབ་ནས་བཀོལ་སྤྱོད་བྱེད་སྐབས་ཐོག་མཐའ་བར་གསུམ་དུ་རྣམ་པ་རྒྱུན་འཁྱོངས་བྱེད་ཐུབ། གློག་ཀླད་ཀྱི་ཁ་ཕྱེ་དུས་ཁྱོད་དང་ཁ་བྲལ་བའི་རྣམ་པ་སླར་གསོ་བྱེད་ཐུབ། - + Suspend གནས་སྐབས་མཚམས་འཇོག་ - - + + The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off གློག་ཀླད་ཀྱི་ཁ་ཕྱེ་བའི་རྣམ་པ་རྒྱུན་འཁྱོངས་བྱས་མོད། འོན་ཀྱང་གློག་ཟད་ཚད་ཅུང་ཉུང་། ཉེར་སྤྱོད་ཚོགས་འདུའི་ཐོག་ཁ་ཕྱེ་ནས་མགྱོགས་མྱུར་ངང་གློག་ཀླད་དཀྲོགས་ཏེ་ཁྱོད་དང་ཁ་བྲལ་བའི་རྣམ་པ་སླར་གསོ་བྱེད་ཐུབ། - - Reboot - + + Restart + ཡང་བསྐྱར་འགོ་འཛུགས་ - + Power Off གློག་ཆད་པ། - + Close all apps, and then shut down your computer བཀོལ་སྤྱོད་ཡོད་ཚད་སྒོ་བརྒྱབ་ནས་གློག་ཀླད་སྒོ་རྒྱག་དགོས། @@ -2028,6 +2321,50 @@ The screensaver is inactive. བརྙན་ཤེལ་འདི་ལ་ནུས་པ་མེད། + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + བདེ་འཇགས་གསང་ལྡེ་ + + + + QRCode + དོན་ཚན་གཉིས་པ། + + + + S: + + + + tablet device + + Screensaver @@ -2061,7 +2398,7 @@ ཁྱེད་ཚོར་བརྡ་ཐོ་གསར་པ་ཡོད། - + View ལྟ་ཚུལ། @@ -2233,7 +2570,7 @@ delay - + how long to show lock @@ -2241,7 +2578,7 @@ has-lock - + if show lock @@ -2255,8 +2592,8 @@ - + lock the screen immediately འཕྲལ་དུ་བརྙན་ཤེལ་ལ་ཟྭ་རྒྱག་པ། @@ -2281,53 +2618,53 @@ - + Dialog for the ukui ScreenSaver. དབྱིན་ཇིའི་བརྙན་ཤེལ་གྱི་བརྙན་ཤེལ་ལ་ཁ་པར་རྒྱག་པའི་གླེང་མོལ། - + activated by session idle signal སྐབས་འདིའི་ཁོམ་པའི་བརྡ་རྟགས་ཀྱིས་སྐུལ་སློང་བྱས་པ། - - + + lock the screen and show screensaver immediately བརྙན་ཤེལ་ལ་ཟྭ་བརྒྱབ་ནས་འཕྲལ་མར་བརྙན་ཤེལ་གྱི་བརྙན་ཤེལ་སྟོན་པ། - + show screensaver immediately འཕྲལ་མར་བརྙན་ཤེལ་གྱི་བརྙན་ཤེལ་སྟོན་པ། - + show blank screensaver immediately and delay time to show lock - + show blank screensaver immediately and if lock - + Screensaver for ukui-screensaver དབྱིན་ཇིའི་བརྙན་ཤེལ་གྱི་བརྙན་ཤེལ་ལ་ལྟ་ཞིབ་བྱེད་མཁན། - + show on root window རྩ་བའི་སྒེའུ་ཁུང་ནས་མངོན་པ། - + show on window. སྒེའུ་ཁུང་ནས་མངོན་པ། - + window id སྒེའུ་ཁུང་གི་ཐོབ་ཐང་ diff --git a/i18n_ts/es.ts b/i18n_ts/es.ts index 2fedd11..57cad3d 100644 --- a/i18n_ts/es.ts +++ b/i18n_ts/es.ts @@ -62,6 +62,121 @@ Input Password + + Verify face recognition or enter password to unlock + + + + Press fingerprint or enter password to unlock + + + + Verify voiceprint or enter password to unlock + + + + Verify finger vein or enter password to unlock + + + + Verify iris or enter password to unlock + + + + Use the bound wechat scanning code or enter the password to unlock + + + + Username + + + + User name input error! + + + + login + + + + Please try again in %1 minutes. + + + + Please try again in %1 seconds. + + + + Account locked permanently. + + + + Failed to verify %1, please enter password to unlock + + + + Unable to verify %1, please enter password to unlock + + + + Failed to verify %1, you still have %2 verification opportunities + + + + Abnormal network + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + FingerPrint + Huella dactilar + + + FingerVein + FingerVein + + + Iris + Iris + + + Face + Cara + + + VoicePrint + Impresión de voz + + + Ukey + + + + QRCode + + + + + BatteryWidget + + Charging... + + + + fully charged + + + + PowerMode + + + + BatteryMode + + BioAuthWidget @@ -128,6 +243,33 @@ Nombre del dispositivo: + + BlockWidget + + Cancel + + + + Confrim + + + + The following program is running to prevent the system from reboot! + + + + The following program is running to prevent the system from shutting down! + + + + The following program is running to prevent the system from suspend! + + + + The following program is running to prevent the system from hibernate! + + + CharsMoreWidget @@ -229,6 +371,101 @@ Contraseña + + EngineDevice + + yes + + + + no + + + + Yes + + + + No + + + + %1% available, charged + + + + Left %1h %2m (%3%) + + + + %1% available + + + + Left %1h %2m to full + + + + charging (%1%) + + + + %1 waiting to discharge (%2%) + + + + %1 waiting to charge (%2%) + + + + AC adapter + + + + Laptop battery + + + + UPS + + + + Monitor + + + + Mouse + + + + Keyboard + + + + PDA + + + + Cell phone + + + + Media player + + + + Tablet + + + + Computer + + + + unrecognised + + + KeyboardWidget @@ -284,12 +521,56 @@ SwitchUser Cambiar de usuario + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget Password - Contraseña + Contraseña + + + Login Options + + + + Other + + + + Identify device removed! + + + + FingerPrint + Huella dactilar + + + FingerVein + FingerVein + + + Iris + Iris + + + Face + Cara + + + VoicePrint + Impresión de voz + + + Ukey + + + + QRCode + @@ -346,10 +627,6 @@ The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off - - Reboot - - Power Off @@ -358,6 +635,10 @@ Close all apps, and then shut down your computer + + Restart + + PowerManager @@ -376,6 +657,42 @@ The screensaver is inactive. + + FingerPrint + Huella dactilar + + + FingerVein + FingerVein + + + Iris + Iris + + + Face + Cara + + + VoicePrint + Impresión de voz + + + Ukey + + + + QRCode + + + + + S: + + + tablet device + + Screensaver diff --git a/i18n_ts/fr.ts b/i18n_ts/fr.ts index d14fe7e..8584537 100644 --- a/i18n_ts/fr.ts +++ b/i18n_ts/fr.ts @@ -62,6 +62,121 @@ Input Password + + Verify face recognition or enter password to unlock + + + + Press fingerprint or enter password to unlock + + + + Verify voiceprint or enter password to unlock + + + + Verify finger vein or enter password to unlock + + + + Verify iris or enter password to unlock + + + + Use the bound wechat scanning code or enter the password to unlock + + + + Username + + + + User name input error! + + + + login + + + + Please try again in %1 minutes. + + + + Please try again in %1 seconds. + + + + Account locked permanently. + + + + Failed to verify %1, please enter password to unlock + + + + Unable to verify %1, please enter password to unlock + + + + Failed to verify %1, you still have %2 verification opportunities + + + + Abnormal network + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + FingerPrint + Empreinte digitale + + + FingerVein + FingerVein + + + Iris + Iris + + + Face + Visage + + + VoicePrint + VoicePrint + + + Ukey + + + + QRCode + + + + + BatteryWidget + + Charging... + + + + fully charged + + + + PowerMode + + + + BatteryMode + + BioAuthWidget @@ -128,6 +243,33 @@ Nom de l'appareil: + + BlockWidget + + Cancel + + + + Confrim + + + + The following program is running to prevent the system from reboot! + + + + The following program is running to prevent the system from shutting down! + + + + The following program is running to prevent the system from suspend! + + + + The following program is running to prevent the system from hibernate! + + + CharsMoreWidget @@ -229,6 +371,101 @@ Mot de passe + + EngineDevice + + yes + + + + no + + + + Yes + + + + No + + + + %1% available, charged + + + + Left %1h %2m (%3%) + + + + %1% available + + + + Left %1h %2m to full + + + + charging (%1%) + + + + %1 waiting to discharge (%2%) + + + + %1 waiting to charge (%2%) + + + + AC adapter + + + + Laptop battery + + + + UPS + + + + Monitor + + + + Mouse + + + + Keyboard + + + + PDA + + + + Cell phone + + + + Media player + + + + Tablet + + + + Computer + + + + unrecognised + + + KeyboardWidget @@ -284,12 +521,56 @@ SwitchUser Changer d'utilisateur + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget Password - Mot de passe + Mot de passe + + + Login Options + + + + Other + + + + Identify device removed! + + + + FingerPrint + Empreinte digitale + + + FingerVein + FingerVein + + + Iris + Iris + + + Face + Visage + + + VoicePrint + VoicePrint + + + Ukey + + + + QRCode + @@ -346,10 +627,6 @@ The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off - - Reboot - - Power Off @@ -358,6 +635,10 @@ Close all apps, and then shut down your computer + + Restart + + PowerManager @@ -376,6 +657,42 @@ The screensaver is inactive. + + FingerPrint + Empreinte digitale + + + FingerVein + FingerVein + + + Iris + Iris + + + Face + Visage + + + VoicePrint + VoicePrint + + + Ukey + + + + QRCode + + + + + S: + + + tablet device + + Screensaver diff --git a/i18n_ts/mn.ts b/i18n_ts/mn.ts index bcbe087..5cb43e5 100644 --- a/i18n_ts/mn.ts +++ b/i18n_ts/mn.ts @@ -24,7 +24,7 @@ 使用密码认证 - + Retry ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠬᠤ @@ -53,61 +53,135 @@ 账户锁定%1分钟由于%2次错误尝试 + Please try again in %1 minutes. - %1 ᠮᠢᠨᠦ᠋ᠲ᠎ᠦᠨ ᠳᠠᠷᠠᠭ᠎ᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ + %1 ᠮᠢᠨᠦ᠋ᠲ᠎ᠦᠨ ᠳᠠᠷᠠᠭ᠎ᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ + Please try again in %1 seconds. - %1 ᠮᠢᠨᠦ᠋ᠲ᠎ᠦᠨ ᠳᠠᠷᠠᠭ᠎ᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ + %1 ᠮᠢᠨᠦ᠋ᠲ᠎ᠦᠨ ᠳᠠᠷᠠᠭ᠎ᠠ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠠᠱᠢᠭᠠᠷᠠᠢ + Account locked permanently. - ᠳᠠᠩᠰᠠ ᠨᠢᠭᠡᠨᠳᠡ ᠦᠨᠢᠳᠡ ᠤᠨᠢᠰᠤᠯᠠᠭᠳᠠᠪᠠ᠃ + ᠳᠠᠩᠰᠠ ᠨᠢᠭᠡᠨᠳᠡ ᠦᠨᠢᠳᠡ ᠤᠨᠢᠰᠤᠯᠠᠭᠳᠠᠪᠠ᠃ + + Verify face recognition or enter password to unlock - ᠨᠢᠭᠤᠷ ᠱᠢᠷᠪᠢᠵᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + ᠨᠢᠭᠤᠷ ᠱᠢᠷᠪᠢᠵᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + Press fingerprint or enter password to unlock - ᠬᠤᠷᠤᠭᠤᠨ᠎ᠤ ᠤᠷᠤᠮ ᠳᠠᠷᠤᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + ᠬᠤᠷᠤᠭᠤᠨ᠎ᠤ ᠤᠷᠤᠮ ᠳᠠᠷᠤᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + Verify voiceprint or enter password to unlock - ᠳᠠᠭᠤ᠎ᠪᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + ᠳᠠᠭᠤ᠎ᠪᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + Verify finger vein or enter password to unlock - ᠬᠤᠷᠤᠭᠤᠨ᠎ᠤ ᠨᠠᠮᠵᠢᠭᠤᠨ ᠰᠤᠳᠠᠯ᠎ᠢᠶᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + ᠬᠤᠷᠤᠭᠤᠨ᠎ᠤ ᠨᠠᠮᠵᠢᠭᠤᠨ ᠰᠤᠳᠠᠯ᠎ᠢᠶᠠᠷ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + Verify iris or enter password to unlock - ᠰᠤᠯᠤᠩᠭ᠎ᠠ ᠪᠦᠷᠬᠦᠪᠴᠢ᠎ᠶᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + ᠰᠤᠯᠤᠩᠭ᠎ᠠ ᠪᠦᠷᠬᠦᠪᠴᠢ᠎ᠶᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ - + Input Password ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠬᠤ + + Username + + + + + User name input error! + + + + + login + + + + + + + Failed to verify %1, please enter password to unlock - %1᠎ᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + %1᠎ᠤ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + + + + + Unable to verify %1, please enter password to unlock - %1᠎ᠶᠢ/᠎ᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠠᠷᠭ᠎ᠠ ᠦᠬᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + %1᠎ᠶᠢ/᠎ᠢ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠬᠤ ᠠᠷᠭ᠎ᠠ ᠦᠬᠡᠢ ᠂ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + Abnormal network - ᠰᠦᠯᠵᠢᠶ᠎ᠡ ᠬᠡᠪ᠎ᠦᠨ ᠪᠤᠰᠤ + ᠰᠦᠯᠵᠢᠶ᠎ᠡ ᠬᠡᠪ᠎ᠦᠨ ᠪᠤᠰᠤ + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋ Use the bound wechat scanning code or enter the password to log in 使用绑定的微信扫码或输入密码登录 - - + + Password cannot be empty ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠬᠤᠭᠤᠰᠤᠨ ᠪᠠᠢᠵᠤ ᠪᠤᠯᠬᠤ ᠦᠬᠡᠢ @@ -120,8 +194,10 @@ 无法验证%1,请输入密码. + + Failed to verify %1, you still have %2 verification opportunities - %1᠎ᠶᠢᠨ/᠎ᠦᠨ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠲᠠ ᠪᠠᠰᠠ%2 ᠤᠳᠠᠭᠠᠨ᠎ᠤ ᠳᠤᠷᠱᠢᠬᠤ ᠵᠠᠪᠱᠢᠶᠠᠨ ᠲᠠᠢ + %1᠎ᠶᠢᠨ/᠎ᠦᠨ ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠲᠠ ᠪᠠᠰᠠ%2 ᠤᠳᠠᠭᠠᠨ᠎ᠤ ᠳᠤᠷᠱᠢᠬᠤ ᠵᠠᠪᠱᠢᠶᠠᠨ ᠲᠠᠢ Biometric/code scan authentication failed too many times, please enter the password. @@ -148,13 +224,15 @@ 请输入密码或者录入指纹 - + + Authentication failure, Please try again ᠪᠠᠳᠤᠯᠭᠠᠵᠢᠭᠤᠯᠤᠯᠳᠠ ᠢᠯᠠᠭᠳᠠᠪᠠ ᠂ ᠳᠠᠬᠢᠵᠤ ᠳᠤᠷᠱᠢᠭᠠᠷᠠᠢ + Use the bound wechat scanning code or enter the password to unlock - ᠤᠶᠠᠭᠰᠠᠨ ᠸᠢᠴᠠᠲ᠎ᠢᠶᠠᠷ ᠺᠤᠳ᠋ ᠱᠢᠷᠪᠢᠬᠦ᠌ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ + ᠤᠶᠠᠭᠰᠠᠨ ᠸᠢᠴᠠᠲ᠎ᠢᠶᠠᠷ ᠺᠤᠳ᠋ ᠱᠢᠷᠪᠢᠬᠦ᠌ ᠪᠤᠶᠤ ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ ᠤᠷᠤᠭᠤᠯᠵᠤ ᠤᠨᠢᠰᠤ᠎ᠶᠢ ᠳᠠᠢᠯᠤᠭᠠᠷᠠᠢ Enter the ukey password @@ -165,12 +243,12 @@ ᠠᠮᠤᠷ ᠲᠦᠪᠰᠢᠨ ᠦ ᠨᠢᠭᠤᠴᠠ ᠶᠢ USB ᠦᠵᠦᠭᠦᠷ ᠲᠦ ᠬᠠᠳᠬᠤᠵᠤ ᠣᠷᠣᠭᠠᠷᠠᠢ ᠃ - + Password ᠨᠢᠭᠤᠴᠠ ᠺᠤᠳ᠋ - + Login ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ @@ -195,6 +273,29 @@ 指纹验证失败,您还有%1次尝试机会 + + BatteryWidget + + + Charging... + + + + + fully charged + + + + + PowerMode + + + + + BatteryMode + + + BioDevices @@ -263,6 +364,39 @@ OK + + BlockWidget + + + Cancel + + + + + Confrim + + + + + The following program is running to prevent the system from reboot! + ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨ᠎ᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮ᠎ᠦᠨ ᠳᠠᠬᠢᠵᠤ ᠡᠬᠢᠯᠡᠬᠦ᠌᠎ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨ᠎ᠠ! + + + + The following program is running to prevent the system from shutting down! + ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨ᠎ᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮ᠎ᠦᠨ ᠬᠠᠭᠠᠬᠤ᠎ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨ᠎ᠠ! + + + + The following program is running to prevent the system from suspend! + ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨ᠎ᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮ᠎ᠦᠨ ᠤᠨᠳᠠᠬᠤ᠎ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨ᠎ᠠ! + + + + The following program is running to prevent the system from hibernate! + ᠳᠠᠷᠠᠭᠠᠬᠢ ᠫᠠᠷᠦᠭᠷᠡᠮ ᠶᠠᠭ ᠠᠵᠢᠯᠯᠠᠵᠤ ᠪᠠᠢᠨ᠎ᠠ ᠂ ᠱᠢᠰᠲ᠋ᠧᠮ᠎ᠦᠨ ᠢᠴᠡᠬᠡᠯᠡᠬᠦ᠌᠎ᠶᠢ ᠬᠤᠷᠢᠭᠯᠠᠨ᠎ᠠ! + + CharsMoreWidget @@ -1367,6 +1501,124 @@ WPA ᠪᠣᠯᠣᠨ WPA2 ᠬᠤᠪᠢ ᠬᠥᠮᠥᠨ ᠃ + + EngineDevice + + + yes + + + + + no + + + + + Yes + + + + + No + + + + + %1% available, charged + + + + + Left %1h %2m (%3%) + + + + + %1% available + + + + + Left %1h %2m to full + + + + + charging (%1%) + + + + + %1 waiting to discharge (%2%) + + + + + %1 waiting to charge (%2%) + + + + + AC adapter + + + + + Laptop battery + + + + + UPS + + + + + Monitor + + + + + Mouse + + + + + Keyboard + + + + + PDA + + + + + Cell phone + + + + + Media player + + + + + Tablet + + + + + Computer + + + + + unrecognised + + + IconEdit @@ -1638,17 +1890,17 @@ LightDMHelper - + failed to start session. - + Login ᠳᠠᠩᠰᠠᠯᠠᠨ ᠤᠷᠤᠬᠤ - + Guest 游客 @@ -1691,28 +1943,73 @@ WLAN ᠤᠳᠠᠰᠤ ᠦᠬᠡᠢ ᠬᠡᠰᠡᠭ ᠬᠡᠪᠴᠢᠶᠡᠨ᠎ᠦ ᠰᠦᠯᠵᠢᠶ᠎ᠡ + + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget + + Login Options - ᠨᠡᠪᠳᠡᠷᠡᠬᠦ᠌ ᠰᠤᠩᠭᠤᠯᠳᠠ + ᠨᠡᠪᠳᠡᠷᠡᠬᠦ᠌ ᠰᠤᠩᠭᠤᠯᠳᠠ + Password - ᠨᠢᠭᠤᠴᠠ ᠺᠣᠳ᠋᠎ᠢ᠋ ᠵᠠᠰᠠᠬᠤ + ᠨᠢᠭᠤᠴᠠ ᠺᠣᠳ᠋᠎ᠢ᠋ ᠵᠠᠰᠠᠬᠤ + Other - ᠪᠤᠰᠤᠳ ᠃ + ᠪᠤᠰᠤᠳ ᠃ + + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋ Wechat 微信 + Identify device removed! - ᠬᠠᠷᠭᠤᠭᠤᠯᠵᠤ ᠱᠢᠯᠭᠠᠬᠤ ᠳᠦᠬᠦᠬᠡᠷᠦᠮᠵᠢ᠎ᠶᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠱᠢᠯᠵᠢᠬᠦᠯᠦᠨ ᠬᠠᠰᠤᠪᠠ! + ᠬᠠᠷᠭᠤᠭᠤᠯᠵᠤ ᠱᠢᠯᠭᠠᠬᠤ ᠳᠦᠬᠦᠬᠡᠷᠦᠮᠵᠢ᠎ᠶᠢ ᠨᠢᠭᠡᠨᠳᠡ ᠱᠢᠯᠵᠢᠬᠦᠯᠦᠨ ᠬᠠᠰᠤᠪᠠ! @@ -1904,38 +2201,38 @@ PowerListWidget - + Hibernate ᠢᠴᠡᠬᠡᠯᠡᠬᠦ᠌ - + Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left ᠺᠣᠮᠫᠢᠦ᠋ᠲ᠋ᠧᠷ ᠢ ᠬᠠᠭᠠᠬᠤ ᠪᠣᠯᠪᠠᠴᠤ ᠬᠡᠷᠡᠭᠯᠡᠭᠡᠨ ᠦ ᠬᠤᠷᠠᠯ ᠨᠡᠭᠡᠭᠡᠬᠦ ᠪᠠᠶᠢᠳᠠᠯ ᠢᠶᠠᠨ ᠪᠠᠷᠢᠮᠲᠠᠯᠠᠳᠠᠭ ᠃ ᠺᠣᠮᠫᠢᠦ᠋ᠲ᠋ᠧᠷ ᠢ ᠨᠡᠭᠡᠭᠡᠬᠦ ᠦᠶ᠎ᠡ ᠳᠦ ᠂ ᠴᠢᠨᠦ ᠰᠠᠯᠤᠭᠰᠠᠨ ᠪᠠᠶᠢᠳᠠᠯ ᠢᠶᠠᠨ ᠰᠡᠷᠭᠦᠭᠡᠵᠦ ᠪᠣᠯᠣᠨ᠎ᠠ ᠃ - + Suspend ᠤᠨᠳᠠᠬᠤ - - + + The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off ᠺᠣᠮᠫᠢᠦ᠋ᠲ᠋ᠧᠷ ᠮᠠᠰᠢᠨ ᠢᠶᠠᠨ ᠨᠡᠭᠡᠭᠡᠬᠦ ᠪᠠᠶᠢᠳᠠᠯ ᠢᠶᠠᠨ ᠪᠠᠷᠢᠮᠲᠠᠯᠠᠳᠠᠭ ᠂ ᠭᠡᠪᠡᠴᠦ ᠴᠠᠬᠢᠯᠭᠠᠨ ᠬᠣᠷᠣᠭᠳᠠᠭᠤᠯᠭ᠎ᠠ ᠨᠡᠯᠢᠶᠡᠳ ᠪᠠᠭ᠎ᠠ ᠃ ᠬᠡᠷᠡᠭᠯᠡᠭᠡᠨ ᠦ ᠬᠤᠷᠠᠯ ᠨᠡᠭᠡᠭᠡᠬᠦ ᠪᠠᠶᠢᠳᠠᠯ ᠢᠶᠠᠨ ᠦᠷᠭᠦᠯᠵᠢᠯᠡᠭᠦᠯᠦᠭᠰᠡᠭᠡᠷ ᠂ ᠺᠣᠮᠫᠢᠦ᠋ᠲ᠋ᠧᠷ ᠢ ᠲᠦᠷᠭᠡᠨ ᠰᠡᠷᠢᠭᠡᠬᠦ ᠶᠢᠨ ᠬᠠᠮᠲᠤ ᠴᠢᠨᠦ ᠰᠠᠯᠤᠭᠰᠠᠨ ᠪᠠᠶᠢᠳᠠᠯ ᠢᠶᠠᠨ ᠰᠡᠷᠭᠦᠭᠡᠵᠦ ᠪᠣᠯᠣᠨ᠎ᠠ ᠃ - - Reboot - + + Restart + ᠳᠠᠬᠢᠵᠤ ᠡᠬᠢᠯᠡᠬᠦᠯᠬᠦ᠌ - + Power Off ᠬᠠᠭᠠᠬᠤ - + Close all apps, and then shut down your computer @@ -2027,6 +2324,50 @@ The screensaver is inactive. ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠠᠷᠦᠭᠷᠡᠮ᠎ᠢ ᠢᠳᠡᠪᠬᠢᠵᠢᠬᠦᠯᠦᠬᠡ ᠦᠬᠡᠢ ᠃ + + + FingerPrint + + + + + FingerVein + + + + + Iris + + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + ᠬᠤᠶᠠᠷ ᠬᠡᠮᠵᠢᠯᠳᠡᠳᠦ ᠺᠤᠳ᠋ + + + + S: + + + + tablet device + + Screensaver @@ -2060,7 +2401,7 @@ ᠲᠠ ᠱᠢᠨ᠎ᠡ ᠮᠡᠳᠡᠭᠳᠡᠯ ᠤᠯᠤᠭᠰᠠᠨ - + View ᠬᠡᠪ ᠦᠵᠡᠬᠦ᠌ @@ -2232,7 +2573,7 @@ delay - + how long to show lock ᠡᠳᠦᠢ ᠤᠷᠲᠤ ᠬᠤᠭᠤᠴᠠᠭ᠎ᠠ᠎ᠪᠠᠷ ᠣᠨᠢᠰᠣ᠎ᠶ᠋ᠢ ᠢᠯᠡᠷᠡᠭᠦᠯᠬᠦ @@ -2240,7 +2581,7 @@ has-lock - + if show lock ᠣᠨᠢᠰᠤᠯᠠᠬᠤ᠎ᠶ᠋ᠢ ᠢᠯᠡᠷᠡᠭᠦᠯᠪᠡᠯ @@ -2254,8 +2595,8 @@ - + lock the screen immediately ᠤᠳᠤᠬᠠᠨ ᠳᠡᠯᠬᠡᠴᠡ᠎ᠶᠢ ᠤᠨᠢᠰᠤᠯᠠᠬᠤ @@ -2280,53 +2621,53 @@ ᠬᠣᠭᠣᠰᠣᠨ ᠪᠠᠢᠬᠤ ᠪᠥᠭᠡᠳ ᠣᠨᠢᠰᠤᠯᠠᠬᠤ᠎ᠶ᠋ᠢ ᠬᠣᠢᠰᠢᠯᠠᠭᠤᠯᠬᠤ ᠫᠷᠠᠮᠧᠲ᠋ᠷ᠎ᠢ᠋ ᠢᠯᠡᠷᠡᠭᠦᠯᠬᠦ ᠄ ᠰᠤᠯᠠ / ᠳᠡᠭᠡᠷ᠎ᠡ ᠬᠠᠪᠬᠠᠭᠠᠰᠤ / ᠪᠠᠭ᠎ᠠ ᠴᠢᠳᠠᠮᠵᠢ - + Dialog for the ukui ScreenSaver. ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠷᠦᠭᠷᠡᠮ᠎ᠦᠨ ᠶᠠᠷᠢᠯᠴᠠᠯᠭ᠎ᠠ᠎ᠶᠢᠨ ᠴᠤᠩᠬᠤ - + activated by session idle signal ᠶᠠᠷᠢᠯᠴᠠᠭ᠎ᠠ ᠰᠤᠯᠠ ᠳᠣᠬᠢᠶ᠎ᠠ᠎ᠪᠠᠷ ᠢᠳᠡᠪᠬᠢᠵᠢᠭᠦᠯᠬᠦ - - + + lock the screen and show screensaver immediately ᠳᠡᠯᠭᠡᠴᠡ᠎ᠶᠢ ᠤᠨᠢᠰᠤᠯᠠᠬᠤ᠎ᠶᠢᠨ ᠵᠡᠷᠬᠡᠴᠡᠬᠡ ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠷᠦᠭᠷᠡᠮ᠎ᠢ ᠳᠠᠷᠤᠢᠬᠠᠨ ᠢᠯᠡᠷᠡᠬᠦᠯᠬᠦ᠌ - + show screensaver immediately ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠷᠤᠭ᠌ᠷᠡᠮ᠎ᠢ ᠳᠠᠷᠤᠢᠬᠠᠨ ᠢᠯᠡᠷᠡᠬᠦᠯᠬᠦ᠌ - + show blank screensaver immediately and delay time to show lock ᠬᠣᠭᠣᠰᠣᠨ ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠷᠤᠭ᠌ᠷᠠᠮ᠎ᠢ᠋ ᠳᠠᠷᠤᠢᠬᠠᠨ ᠢᠯᠡᠷᠡᠭᠦᠯᠵᠦ ᠣᠨᠢᠰᠤᠯᠠᠭᠰᠠᠨ ᠴᠠᠭ᠎ᠢ᠋ ᠬᠣᠢᠰᠢᠯᠠᠭᠤᠯᠬᠤ - + show blank screensaver immediately and if lock ᠳᠠᠷᠤᠢ ᠬᠣᠭᠣᠰᠣᠨ ᠳᠡᠯᠭᠡᠴᠡ᠎ᠶ᠋ᠢ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠷᠤᠭ᠌ᠷᠠᠮ᠎ᠢ᠋ ᠢᠯᠡᠷᠡᠭᠦᠯᠦᠨ᠎ᠡ ᠂ ᠬᠡᠷᠪᠡ ᠣᠨᠢᠰᠤᠯᠠᠪᠠᠯ - + Screensaver for ukui-screensaver ukui—screensaver ᠳᠡᠯᠭᠡᠴᠡ ᠬᠠᠮᠠᠭᠠᠯᠠᠬᠤ ᠫᠷᠤᠭ᠌ᠷᠠᠮ - + show on root window ᠦᠨᠳᠦᠰᠦ ᠴᠣᠩᠬᠣᠨ᠎ᠳ᠋ᠤ᠌ ᠬᠠᠷᠠᠭᠤᠯᠬᠤ - + show on window. ᠴᠣᠩᠬᠣᠨ ᠳᠡᠭᠡᠷ᠎ᠡ ᠢᠯᠡᠷᠡᠭᠦᠯᠬᠦ ᠃ - + window id ᠴᠣᠩᠬᠣᠨ᠎ᠤ᠋ id diff --git a/i18n_ts/pt.ts b/i18n_ts/pt.ts index d2ba1ec..673dc6f 100644 --- a/i18n_ts/pt.ts +++ b/i18n_ts/pt.ts @@ -62,6 +62,121 @@ Input Password + + Verify face recognition or enter password to unlock + + + + Press fingerprint or enter password to unlock + + + + Verify voiceprint or enter password to unlock + + + + Verify finger vein or enter password to unlock + + + + Verify iris or enter password to unlock + + + + Use the bound wechat scanning code or enter the password to unlock + + + + Username + + + + User name input error! + + + + login + + + + Please try again in %1 minutes. + + + + Please try again in %1 seconds. + + + + Account locked permanently. + + + + Failed to verify %1, please enter password to unlock + + + + Unable to verify %1, please enter password to unlock + + + + Failed to verify %1, you still have %2 verification opportunities + + + + Abnormal network + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + FingerPrint + Impressão digital + + + FingerVein + FingerVein + + + Iris + Íris + + + Face + Face + + + VoicePrint + VoicePrint + + + Ukey + + + + QRCode + + + + + BatteryWidget + + Charging... + + + + fully charged + + + + PowerMode + + + + BatteryMode + + BioAuthWidget @@ -128,6 +243,33 @@ Nome do dispositivo: + + BlockWidget + + Cancel + + + + Confrim + + + + The following program is running to prevent the system from reboot! + + + + The following program is running to prevent the system from shutting down! + + + + The following program is running to prevent the system from suspend! + + + + The following program is running to prevent the system from hibernate! + + + CharsMoreWidget @@ -229,6 +371,101 @@ Senha + + EngineDevice + + yes + + + + no + + + + Yes + + + + No + + + + %1% available, charged + + + + Left %1h %2m (%3%) + + + + %1% available + + + + Left %1h %2m to full + + + + charging (%1%) + + + + %1 waiting to discharge (%2%) + + + + %1 waiting to charge (%2%) + + + + AC adapter + + + + Laptop battery + + + + UPS + + + + Monitor + + + + Mouse + + + + Keyboard + + + + PDA + + + + Cell phone + + + + Media player + + + + Tablet + + + + Computer + + + + unrecognised + + + KeyboardWidget @@ -284,12 +521,56 @@ SwitchUser Mudar de utilizador + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget Password - Senha + Senha + + + Login Options + + + + Other + + + + Identify device removed! + + + + FingerPrint + Impressão digital + + + FingerVein + FingerVein + + + Iris + Íris + + + Face + Face + + + VoicePrint + VoicePrint + + + Ukey + + + + QRCode + @@ -346,10 +627,6 @@ The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off - - Reboot - - Power Off @@ -358,6 +635,10 @@ Close all apps, and then shut down your computer + + Restart + + PowerManager @@ -376,6 +657,42 @@ The screensaver is inactive. + + FingerPrint + Impressão digital + + + FingerVein + FingerVein + + + Iris + Íris + + + Face + Face + + + VoicePrint + VoicePrint + + + Ukey + + + + QRCode + + + + + S: + + + tablet device + + Screensaver diff --git a/i18n_ts/ru.ts b/i18n_ts/ru.ts index 808e42c..c328633 100644 --- a/i18n_ts/ru.ts +++ b/i18n_ts/ru.ts @@ -62,6 +62,121 @@ Input Password + + Verify face recognition or enter password to unlock + + + + Press fingerprint or enter password to unlock + + + + Verify voiceprint or enter password to unlock + + + + Verify finger vein or enter password to unlock + + + + Verify iris or enter password to unlock + + + + Use the bound wechat scanning code or enter the password to unlock + + + + Username + + + + User name input error! + + + + login + + + + Please try again in %1 minutes. + + + + Please try again in %1 seconds. + + + + Account locked permanently. + + + + Failed to verify %1, please enter password to unlock + + + + Unable to verify %1, please enter password to unlock + + + + Failed to verify %1, you still have %2 verification opportunities + + + + Abnormal network + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + FingerPrint + FingerPrint + + + FingerVein + FingerVein + + + Iris + Ирис + + + Face + Лицо + + + VoicePrint + Voiceprint + + + Ukey + + + + QRCode + + + + + BatteryWidget + + Charging... + + + + fully charged + + + + PowerMode + + + + BatteryMode + + BioAuthWidget @@ -128,6 +243,33 @@ Имя устройства: + + BlockWidget + + Cancel + + + + Confrim + + + + The following program is running to prevent the system from reboot! + + + + The following program is running to prevent the system from shutting down! + + + + The following program is running to prevent the system from suspend! + + + + The following program is running to prevent the system from hibernate! + + + CharsMoreWidget @@ -229,6 +371,101 @@ пароль + + EngineDevice + + yes + + + + no + + + + Yes + + + + No + + + + %1% available, charged + + + + Left %1h %2m (%3%) + + + + %1% available + + + + Left %1h %2m to full + + + + charging (%1%) + + + + %1 waiting to discharge (%2%) + + + + %1 waiting to charge (%2%) + + + + AC adapter + + + + Laptop battery + + + + UPS + + + + Monitor + + + + Mouse + + + + Keyboard + + + + PDA + + + + Cell phone + + + + Media player + + + + Tablet + + + + Computer + + + + unrecognised + + + KeyboardWidget @@ -284,12 +521,56 @@ SwitchUser Сменить пользователя + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget Password - пароль + пароль + + + Login Options + + + + Other + + + + Identify device removed! + + + + FingerPrint + FingerPrint + + + FingerVein + FingerVein + + + Iris + Ирис + + + Face + Лицо + + + VoicePrint + Voiceprint + + + Ukey + + + + QRCode + @@ -346,10 +627,6 @@ The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off - - Reboot - - Power Off @@ -358,6 +635,10 @@ Close all apps, and then shut down your computer + + Restart + + PowerManager @@ -376,6 +657,42 @@ The screensaver is inactive. + + FingerPrint + FingerPrint + + + FingerVein + FingerVein + + + Iris + Ирис + + + Face + Лицо + + + VoicePrint + Voiceprint + + + Ukey + + + + QRCode + + + + + S: + + + tablet device + + Screensaver diff --git a/i18n_ts/tr.ts b/i18n_ts/tr.ts index 07d7f24..1d1f22f 100644 --- a/i18n_ts/tr.ts +++ b/i18n_ts/tr.ts @@ -24,7 +24,7 @@ Parola - + Retry Yeniden Dene @@ -49,31 +49,161 @@ Kimlik doğrulama hatası, hala %1 kalan denemen var - + + Authentication failure, Please try again - - + + Password cannot be empty - + + + Verify face recognition or enter password to unlock + + + + + Press fingerprint or enter password to unlock + + + + + Verify voiceprint or enter password to unlock + + + + + Verify finger vein or enter password to unlock + + + + + Verify iris or enter password to unlock + + + + + Use the bound wechat scanning code or enter the password to unlock + + + + Password - + Input Password - + + Username + + + + + User name input error! + + + + + login + + + + Login + + + Please try again in %1 minutes. + + + + + Please try again in %1 seconds. + + + + + Account locked permanently. + + + + + + + + Failed to verify %1, please enter password to unlock + + + + + + + + + Unable to verify %1, please enter password to unlock + + + + + + Failed to verify %1, you still have %2 verification opportunities + + + + + Abnormal network + + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + + FingerPrint + Parmak İzi + + + + FingerVein + + + + + Iris + Göz + + + + Face + Yüz + + + + VoicePrint + Ses İzi + + + + Ukey + + + + + QRCode + + Biometric Authentication Biyometrik Kimlik Doğrulama @@ -87,6 +217,29 @@ Diğer Ayıtlar + + BatteryWidget + + + Charging... + + + + + fully charged + + + + + PowerMode + + + + + BatteryMode + + + BioDevices @@ -155,6 +308,39 @@ Tamam + + BlockWidget + + + Cancel + + + + + Confrim + + + + + The following program is running to prevent the system from reboot! + + + + + The following program is running to prevent the system from shutting down! + + + + + The following program is running to prevent the system from suspend! + + + + + The following program is running to prevent the system from hibernate! + + + CharsMoreWidget @@ -260,6 +446,124 @@ Parola + + EngineDevice + + + yes + + + + + no + + + + + Yes + + + + + No + + + + + %1% available, charged + + + + + Left %1h %2m (%3%) + + + + + %1% available + + + + + Left %1h %2m to full + + + + + charging (%1%) + + + + + %1 waiting to discharge (%2%) + + + + + %1 waiting to charge (%2%) + + + + + AC adapter + + + + + Laptop battery + + + + + UPS + + + + + Monitor + + + + + Mouse + + + + + Keyboard + + + + + PDA + + + + + Cell phone + + + + + Media player + + + + + Tablet + + + + + Computer + + + + + unrecognised + + + IconEdit @@ -283,17 +587,17 @@ LightDMHelper - + failed to start session. - + Login - + Guest Misafir @@ -316,12 +620,69 @@ SwitchUser Kullanıcı Değiştir + + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget + + + Login Options + + + + Password - Parola + Parola + + + + Other + + + + + Identify device removed! + + + + + FingerPrint + Parmak İzi + + + + FingerVein + + + + + Iris + Göz + + + + Face + Yüz + + + + VoicePrint + Ses İzi + + + + Ukey + + + + + QRCode + @@ -353,38 +714,38 @@ PowerListWidget - + Hibernate - + Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left - + Suspend - - + + The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off - - Reboot - + + Restart + Yeniden Başlat - + Power Off Bilgisayarı Kapat - + Close all apps, and then shut down your computer @@ -444,6 +805,50 @@ The screensaver is inactive. + + + FingerPrint + Parmak İzi + + + + FingerVein + + + + + Iris + Göz + + + + Face + Yüz + + + + VoicePrint + Ses İzi + + + + Ukey + + + + + QRCode + + + + + S: + + + + tablet device + + Screensaver @@ -461,7 +866,7 @@ - + View @@ -485,7 +890,7 @@ delay - + how long to show lock @@ -493,7 +898,7 @@ has-lock - + if show lock @@ -507,8 +912,8 @@ - + lock the screen immediately Ekranı hemen kilitle @@ -533,53 +938,53 @@ - + Dialog for the ukui ScreenSaver. - + activated by session idle signal - - + + lock the screen and show screensaver immediately - + show screensaver immediately - + show blank screensaver immediately and delay time to show lock - + show blank screensaver immediately and if lock - + Screensaver for ukui-screensaver - + show on root window - + show on window. - + window id diff --git a/i18n_ts/zh_CN.ts b/i18n_ts/zh_CN.ts index a39e069..0949d2c 100644 --- a/i18n_ts/zh_CN.ts +++ b/i18n_ts/zh_CN.ts @@ -24,7 +24,7 @@ 使用密码认证 - + Retry 重试 @@ -53,65 +53,135 @@ 账户锁定%1分钟由于%2次错误尝试 + Please try again in %1 minutes. - 请%1分钟后再试 + 请%1分钟后再试 + Please try again in %1 seconds. - 请%1秒后再试 + 请%1秒后再试 + Account locked permanently. - 账号已被永久锁定 + 账号已被永久锁定 + + Verify face recognition or enter password to unlock - 验证人脸识别或输入密码解锁 + 验证人脸识别或输入密码解锁 + Press fingerprint or enter password to unlock - 按压指纹或输入密码解锁 + 按压指纹或输入密码解锁 + Verify voiceprint or enter password to unlock - 验证声纹或输入密码解锁 + 验证声纹或输入密码解锁 + Verify finger vein or enter password to unlock - 验证指静脉或输入密码解锁 + 验证指静脉或输入密码解锁 + Verify iris or enter password to unlock - 验证虹膜或输入密码解锁 + 验证虹膜或输入密码解锁 - + Input Password 输入密码 + + Username + 用户名: + + + + User name input error! + + + + + login + + + + + + + Failed to verify %1, please enter password to unlock - 验证%1失败,请输入密码解锁 + 验证%1失败,请输入密码解锁 + + + + + Unable to verify %1, please enter password to unlock - 无法验证%1,请输入密码解锁 + 无法验证%1,请输入密码解锁 + Abnormal network - 网络异常 + 网络异常 + Face recognition waiting time out, please click refresh or enter the password to unlock. - 人脸识别等待超时,请点击刷新或输入密码解锁 + 人脸识别等待超时,请点击刷新或输入密码解锁 + + + + FingerPrint + 指纹 + + + + FingerVein + 指静脉 + + + + Iris + 虹膜 + + + + Face + + + + + VoicePrint + 声纹 + + + + Ukey + 安全密钥 + + + + QRCode + 二维码 Use the bound wechat scanning code or enter the password to log in 使用绑定的微信扫码或输入密码登录 - - + + Password cannot be empty 密码不能为空 @@ -124,8 +194,10 @@ 无法验证%1,请输入密码. + + Failed to verify %1, you still have %2 verification opportunities - 验证%1失败,您还有%2次尝试机会 + 验证%1失败,您还有%2次尝试机会 Biometric/code scan authentication failed too many times, please enter the password. @@ -152,13 +224,15 @@ 请输入密码或者录入指纹 - + + Authentication failure, Please try again 认证失败,请重试 + Use the bound wechat scanning code or enter the password to unlock - 使用绑定的微信扫码或输入密码解锁 + 使用绑定的微信扫码或输入密码解锁 Enter the ukey password @@ -169,12 +243,12 @@ 请将安全密钥插入USB端口 - + Password 密码 - + Login 登录 @@ -199,6 +273,29 @@ 指纹验证失败,您还有%1次尝试机会 + + BatteryWidget + + + Charging... + + + + + fully charged + + + + + PowerMode + + + + + BatteryMode + + + BioDevices @@ -267,6 +364,39 @@ 确定 + + BlockWidget + + + Cancel + + + + + Confrim + + + + + The following program is running to prevent the system from reboot! + 以下程序正在运行,阻止系统重启! + + + + The following program is running to prevent the system from shutting down! + 以下程序正在运行,阻止系统关机! + + + + The following program is running to prevent the system from suspend! + 以下程序正在运行,阻止系统进入睡眠! + + + + The following program is running to prevent the system from hibernate! + 以下程序正在运行,阻止系统进入休眠! + + CharsMoreWidget @@ -1367,6 +1497,124 @@ WPA 及 WPA2 个人 + + EngineDevice + + + yes + + + + + no + + + + + Yes + + + + + No + + + + + %1% available, charged + + + + + Left %1h %2m (%3%) + + + + + %1% available + + + + + Left %1h %2m to full + + + + + charging (%1%) + + + + + %1 waiting to discharge (%2%) + + + + + %1 waiting to charge (%2%) + + + + + AC adapter + + + + + Laptop battery + + + + + UPS + + + + + Monitor + + + + + Mouse + + + + + Keyboard + + + + + PDA + + + + + Cell phone + + + + + Media player + + + + + Tablet + + + + + Computer + + + + + unrecognised + + + IconEdit @@ -1619,17 +1867,17 @@ LightDMHelper - + failed to start session. - + Login 登录 - + Guest 游客 @@ -1666,34 +1914,79 @@ LAN - 有线网络 + 有线网络 WLAN - 无线局域网 + 无线局域网 + + + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + LoginOptionsWidget + + Login Options - 登录选项 + 登录选项 + Password - 密码 + 密码 + Other - 其他 + 其他 + + + + FingerPrint + 指纹 + + + + FingerVein + 指静脉 + + + + Iris + 虹膜 + + + + Face + + + + + VoicePrint + 声纹 + + + + Ukey + 安全密钥 + + + + QRCode + 二维码 Wechat 微信 + Identify device removed! - 校验设备已移除! + 校验设备已移除! @@ -1881,38 +2174,38 @@ PowerListWidget - + Hibernate 休眠 - + Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left 关闭电脑,但是应用会一直保持打开状态。当打开电脑时,可以恢复到你离开的状态。 - + Suspend 睡眠 - - + + The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off 电脑保持开机状态,但耗电较少。应用会一直保持打开状态,可快速唤醒电脑并恢复到你离开的状态。 - - Reboot - + + Restart + 重启 - + Power Off 关机 - + Close all apps, and then shut down your computer 关闭所有应用,然后关闭电脑。 @@ -2004,6 +2297,50 @@ The screensaver is inactive. 屏幕保护程序未激活 + + + FingerPrint + 指纹 + + + + FingerVein + 指静脉 + + + + Iris + 虹膜 + + + + Face + + + + + VoicePrint + 声纹 + + + + Ukey + 安全密钥 + + + + QRCode + 二维码 + + + + S: + + + + tablet device + + Screensaver @@ -2037,7 +2374,7 @@ 您有新的消息 - + View 预览 @@ -2205,7 +2542,7 @@ delay - + how long to show lock @@ -2213,7 +2550,7 @@ has-lock - + if show lock @@ -2227,8 +2564,8 @@ - + lock the screen immediately 马上锁定屏幕 @@ -2253,53 +2590,53 @@ - + Dialog for the ukui ScreenSaver. - + activated by session idle signal - - + + lock the screen and show screensaver immediately - + show screensaver immediately - + show blank screensaver immediately and delay time to show lock - + show blank screensaver immediately and if lock - + Screensaver for ukui-screensaver - + show on root window - + show on window. - + window id diff --git a/i18n_ts/zh_HK.ts b/i18n_ts/zh_HK.ts index 9e6936a..b5c423a 100644 --- a/i18n_ts/zh_HK.ts +++ b/i18n_ts/zh_HK.ts @@ -24,7 +24,7 @@ 使用密码认证 - + Retry 重試 @@ -53,61 +53,135 @@ 账户锁定%1分钟由于%2次错误尝试 + Please try again in %1 minutes. - 請在 %1 分鐘後重試。 + 請在 %1 分鐘後重試。 + Please try again in %1 seconds. - 請在 %1 秒後重試。 + 請在 %1 秒後重試。 + Account locked permanently. - 帳戶永久鎖定。 + 帳戶永久鎖定。 + + Verify face recognition or enter password to unlock - 驗證人臉識別或輸入密碼解鎖 + 驗證人臉識別或輸入密碼解鎖 + Press fingerprint or enter password to unlock - 按指紋或輸入密碼解鎖 + 按指紋或輸入密碼解鎖 + Verify voiceprint or enter password to unlock - 驗證聲紋或輸入密碼以解鎖 + 驗證聲紋或輸入密碼以解鎖 + Verify finger vein or enter password to unlock - 驗證指靜脈或輸入密碼解鎖 + 驗證指靜脈或輸入密碼解鎖 + Verify iris or enter password to unlock - 驗證虹膜或輸入密碼解鎖 + 驗證虹膜或輸入密碼解鎖 - + Input Password 輸入密碼 + + Username + 使用者名 + + + + User name input error! + + + + + login + + + + + + + Failed to verify %1, please enter password to unlock - 驗證 %1 失敗,請輸入密碼進行解鎖 + 驗證 %1 失敗,請輸入密碼進行解鎖 + + + + + Unable to verify %1, please enter password to unlock - 無法驗證 %1,請輸入密碼進行解鎖 + 無法驗證 %1,請輸入密碼進行解鎖 + Abnormal network - 網路異常 + 網路異常 + + + + Face recognition waiting time out, please click refresh or enter the password to unlock. + + + + + FingerPrint + + + + + FingerVein + + + + + Iris + 虹膜 + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + 微信掃碼 Use the bound wechat scanning code or enter the password to log in 使用绑定的微信扫码或输入密码登录 - - + + Password cannot be empty 密碼不能為空 @@ -120,8 +194,10 @@ 无法验证%1,请输入密码. + + Failed to verify %1, you still have %2 verification opportunities - 驗證 %1 失敗,您仍有 %2 次驗證機會 + 驗證 %1 失敗,您仍有 %2 次驗證機會 Biometric/code scan authentication failed too many times, please enter the password. @@ -148,13 +224,15 @@ 请输入密码或者录入指纹 - + + Authentication failure, Please try again 身份驗證失敗,請重試 + Use the bound wechat scanning code or enter the password to unlock - 使用綁定的微信掃碼或輸入密碼解鎖 + 使用綁定的微信掃碼或輸入密碼解鎖 Enter the ukey password @@ -165,12 +243,12 @@ 將 Ukey 插入 USB 埠 - + Password 密碼 - + Login 登錄 @@ -195,6 +273,29 @@ 指纹验证失败,您还有%1次尝试机会 + + BatteryWidget + + + Charging... + + + + + fully charged + + + + + PowerMode + + + + + BatteryMode + + + BioDevices @@ -263,6 +364,39 @@ 還行 + + BlockWidget + + + Cancel + 取消 + + + + Confrim + + + + + The following program is running to prevent the system from reboot! + 以下程式正在運行以防止系統重新啟動! + + + + The following program is running to prevent the system from shutting down! + 以下程式正在運行以防止系統關閉! + + + + The following program is running to prevent the system from suspend! + 以下程式正在運行以防止系統掛起! + + + + The following program is running to prevent the system from hibernate! + 以下程式正在運行以防止系統休眠! + + CharsMoreWidget @@ -1367,6 +1501,124 @@ WPA 和 WPA2 個人 + + EngineDevice + + + yes + + + + + no + + + + + Yes + + + + + No + + + + + %1% available, charged + + + + + Left %1h %2m (%3%) + + + + + %1% available + + + + + Left %1h %2m to full + + + + + charging (%1%) + + + + + %1 waiting to discharge (%2%) + + + + + %1 waiting to charge (%2%) + + + + + AC adapter + + + + + Laptop battery + + + + + UPS + + + + + Monitor + + + + + Mouse + + + + + Keyboard + + + + + PDA + + + + + Cell phone + + + + + Media player + + + + + Tablet + + + + + Computer + + + + + unrecognised + + + IconEdit @@ -1631,17 +1883,17 @@ LightDMHelper - + failed to start session. - + Login 登錄 - + Guest 游客 @@ -1684,28 +1936,73 @@ WLAN 無線局域網 + + + Multiple users are logged in at the same time.Are you sure you want to %1 this system? + + LoginOptionsWidget + + Login Options - 登錄選項 + 登錄選項 + Password - 密碼 + 密碼 + Other - 其他 + 其他 + + + + FingerPrint + + + + + FingerVein + + + + + Iris + 虹膜 + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + 微信掃碼 Wechat 微信 + Identify device removed! - 識別已刪除的設備! + 識別已刪除的設備! @@ -1897,38 +2194,38 @@ PowerListWidget - + Hibernate 休眠 - + Turn off your computer, but the app stays open. When the computer is turned on, it can be restored to the state you left 關閉電腦,但應用會保持打開狀態。當計算機打開時,它可以恢復到您離開時的狀態 - + Suspend 睡眠 - - + + The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off 計算機保持打開狀態,但消耗的電量更少。該應用程式保持打開狀態,可以快速喚醒並恢復到上次中斷的位置 - - Reboot - + + Restart + 重新啟動 - + Power Off 關機 - + Close all apps, and then shut down your computer 關閉所有應用,然後關閉電腦 @@ -2020,6 +2317,50 @@ The screensaver is inactive. 屏幕保護程式處於非活動狀態。 + + + FingerPrint + + + + + FingerVein + + + + + Iris + 虹膜 + + + + Face + + + + + VoicePrint + + + + + Ukey + + + + + QRCode + 微信掃碼 + + + + S: + + + + tablet device + + Screensaver @@ -2053,7 +2394,7 @@ 您有新通知 - + View 視圖 @@ -2225,7 +2566,7 @@ delay - + how long to show lock 顯示鎖定多長時間 @@ -2233,7 +2574,7 @@ has-lock - + if show lock 如果顯示鎖定 @@ -2247,8 +2588,8 @@ - + lock the screen immediately 立即鎖定螢幕 @@ -2273,53 +2614,53 @@ 顯示空白和延遲鎖定,參數:空閒/蓋子/低功耗 - + Dialog for the ukui ScreenSaver. ukui 螢幕保護程序的對話框。 - + activated by session idle signal 由會話空閒信號啟動 - - + + lock the screen and show screensaver immediately 鎖定螢幕並立即顯示螢幕保護程式 - + show screensaver immediately 立即顯示螢幕保護程式 - + show blank screensaver immediately and delay time to show lock 立即顯示空白螢幕保護程式並延遲顯示鎖定的時間 - + show blank screensaver immediately and if lock 立即顯示空白螢幕保護程式,如果鎖定 - + Screensaver for ukui-screensaver ukui螢幕保護程式的螢幕保護程式 - + show on root window 在根視窗上顯示 - + show on window. 在視窗上顯示。 - + window id 窗口標識 diff --git a/src/common/definetypes.h b/src/common/definetypes.h index b0b2428..21957bd 100644 --- a/src/common/definetypes.h +++ b/src/common/definetypes.h @@ -207,7 +207,7 @@ enum SessionStatus #define SSWND_DBUS_PATH "/" #define SSWND_DBUS_INTERFACE "org.ukui.ScreenSaverWnd" -#define DEFAULT_BACKGROUND_PATH "/usr/share/backgrounds/1-warty-final-ubuntukylin.jpg" +#define DEFAULT_BACKGROUND_PATH "/usr/share/backgrounds/1-openkylin.jpg" #define G_FONT_SIZE (11.0) #define DEFAULT_FONT_SIZE (10.0) diff --git a/src/common/global_utils.cpp b/src/common/global_utils.cpp index 14c0076..77aa248 100644 --- a/src/common/global_utils.cpp +++ b/src/common/global_utils.cpp @@ -45,6 +45,16 @@ bool isGreeterMode() return (bool)(nIsGreeter); } +bool isCurUserSelf(QString strUserName) +{ + QString username = getenv("USER"); + if (username == strUserName) { + return true; + } else { + return false; + } +} + /** * @brief 删除给定字符串前后的空格、制表符、换行符,注意该操作会修改原字符串 * diff --git a/src/common/global_utils.h b/src/common/global_utils.h index 15888e9..fb3bd86 100644 --- a/src/common/global_utils.h +++ b/src/common/global_utils.h @@ -27,6 +27,13 @@ */ bool isGreeterMode(); +/** + * @brief isCurUserSelf 是否为当前用户自己 + * @param QString 用户名 + * @return true 是,false 否 + */ +bool isCurUserSelf(QString strUserName); + /** * @brief getHostCloudPlatform 获取当前云平台环境 * @return 云环境标识 diff --git a/src/dbusifs/accountservicehelper.cpp b/src/dbusifs/accountservicehelper.cpp index 98319cd..a7c426d 100644 --- a/src/dbusifs/accountservicehelper.cpp +++ b/src/dbusifs/accountservicehelper.cpp @@ -104,3 +104,24 @@ QString AccountServiceHelper::getUserSessionByName(QString strUserName) } return strSession; } + +QString AccountServiceHelper::getAccountBackground(uid_t uid) +{ + QString strBackground = ""; + if(!m_accountsInterface) + return strBackground; + QDBusReply userPath = m_accountsInterface->call("FindUserById", (qint64)uid); + if(!userPath.isValid()) + qWarning() << "Get UserPath error:" << userPath.error(); + else { + QDBusInterface userIface(accountsService, userPath.value().path(), + propertiesInterface, QDBusConnection::systemBus()); + QDBusReply backgroundReply = userIface.call("Get", accountsUserInterface, "BackgroundFile"); + if(!backgroundReply.isValid()) + qWarning() << "Get User's BackgroundFile error" << backgroundReply.error(); + else { + strBackground = backgroundReply.value().variant().toString(); + } + } + return strBackground; +} diff --git a/src/dbusifs/accountservicehelper.h b/src/dbusifs/accountservicehelper.h index 376a05b..74fb23b 100644 --- a/src/dbusifs/accountservicehelper.h +++ b/src/dbusifs/accountservicehelper.h @@ -35,6 +35,8 @@ public: QString getUserSessionByName(QString strUserName); + QString getAccountBackground(uid_t uid); + private: QDBusInterface *m_accountsInterface = nullptr; }; diff --git a/src/lock-backend/dbusupperinterface.cpp b/src/lock-backend/dbusupperinterface.cpp index 99bc33e..75ff0a4 100644 --- a/src/lock-backend/dbusupperinterface.cpp +++ b/src/lock-backend/dbusupperinterface.cpp @@ -55,7 +55,8 @@ void DbusUpperInterface::initData() { m_bLockState = false; m_bSlpState = false; - m_lightDmHelper = new LightDMHelper(this); + m_accountsHelper = new AccountServiceHelper(this); + m_lightDmHelper = new LightDMHelper(m_accountsHelper, this); m_login1Helper = new Login1Helper(this); m_config = new Configuration(this); m_gsettingsHelper = new GSettingsHelper(this); @@ -63,7 +64,6 @@ void DbusUpperInterface::initData() m_pamAuth = new PamAuthenticate(m_lightDmHelper, this); m_usdHelper= new UsdHelper(this); m_upowerHelper = new UpowerHelper(this); - m_accountsHelper = new AccountServiceHelper(this); m_sessionHelper = new SessionHelper(this); m_sessionWatcher = new SessionWatcher(m_gsettingsHelper, this); m_kglobalHelper = new KglobalAccelHelper(this); @@ -142,7 +142,8 @@ bool DbusUpperInterface::GetSlpState() void DbusUpperInterface::LockStartupMode() { - + if(GetLockState()) + return ; if(m_procLockDialog.state() != QProcess::NotRunning) { QDBusMessage message; message = QDBusMessage::createSignal(SS_DBUS_PATH, @@ -150,6 +151,7 @@ void DbusUpperInterface::LockStartupMode() "SecondRunParam"); message<<"StartupLock"; QDBusConnection::sessionBus().send(message); + emitLockState(true); return ; } @@ -179,6 +181,9 @@ bool DbusUpperInterface::GetLockState() void DbusUpperInterface::Lock() { + if(GetLockState()) + return; + if(m_procLockDialog.state() != QProcess::NotRunning) { QDBusMessage message; message = QDBusMessage::createSignal(SS_DBUS_PATH, @@ -186,6 +191,7 @@ void DbusUpperInterface::Lock() "SecondRunParam"); message<<"CmdLock"; QDBusConnection::sessionBus().send(message); + emitLockState(true); return ; } qDebug() << "Lock requested"; @@ -232,6 +238,10 @@ bool DbusUpperInterface::LockByBlank(int nType) } if(m_procLockDialog.state() != QProcess::NotRunning) { if (isNeedLock) { + if(!lockState){ + //锁屏状态通过lockState获取,如果未锁屏,则发送锁屏信号 + emitLockState(true); + } QDBusMessage message; message = QDBusMessage::createSignal(SS_DBUS_PATH, SS_DBUS_INTERFACE, @@ -279,6 +289,9 @@ void DbusUpperInterface::SetLockState() void DbusUpperInterface::onShowBlankScreensaver() { + if(GetLockState()) + return; + if(m_procLockDialog.state() != QProcess::NotRunning) { QDBusMessage message; message = QDBusMessage::createSignal(SS_DBUS_PATH, @@ -301,8 +314,10 @@ void DbusUpperInterface::onShowBlankScreensaver() void DbusUpperInterface::ShowScreensaver() { - if(m_procLockDialog.state() != QProcess::NotRunning){ + if(!lockState){ + emitLockState(true); + } QDBusMessage message; message = QDBusMessage::createSignal(SS_DBUS_PATH, SS_DBUS_INTERFACE, @@ -310,7 +325,6 @@ void DbusUpperInterface::ShowScreensaver() message<<"ScreensaverLock"; QDBusConnection::sessionBus().send(message); return ; - return ; } m_bSlpState = true; @@ -676,7 +690,12 @@ QJsonArray DbusUpperInterface::GenerateUserInfoList() objUserInfo["fontSize"] = ptr->fontSize(); objUserInfo["timeType"] = ptr->timeType(); objUserInfo["color"] = ptr->color(); - + } + if (isCurUserSelf(userInfo->name()) && m_gsettingsHelper) { + QString strBackground = m_gsettingsHelper->GetLockScreenConf(KEY_BACKGROUND).toString(); + if (!strBackground.isEmpty() && QFile(strBackground).exists()) { + objUserInfo["backGround"] = strBackground; + } } jsonArray.append(objUserInfo); } @@ -928,6 +947,7 @@ void DbusUpperInterface::onLogin1ReqLock() QJsonObject retObj; retObj["CmdId"] = LOCK_CMD_ID_LOGIN1_REQ_LOCK; SendUpdateInfoSig(QString(QJsonDocument(retObj).toJson())); + ShowScreensaver(); } void DbusUpperInterface::onLogin1ReqUnLock() @@ -1078,23 +1098,27 @@ void DbusUpperInterface::onBatteryChanged(QStringList batteryArgs) void DbusUpperInterface::onLockScreenConfigChanged(QString strKey, QVariant value) { + if (strKey == KEY_BACKGROUND) { + onUsersInfoChanged(); + } QJsonObject retObj; retObj["CmdId"] = LOCK_CMD_ID_GSETTINGS_LOCKSCREEN_CONF_CHANGED; + retObj["Key"] = strKey; switch (value.type()) { case QVariant::Bool: - retObj[strKey] = value.toBool(); + retObj["Value"] = value.toBool(); break; case QVariant::Int: - retObj[strKey] = value.toInt(); + retObj["Value"] = value.toInt(); break; case QVariant::String: - retObj[strKey] = value.toString(); + retObj["Value"] = value.toString(); break; case QVariant::UInt: - retObj[strKey] = value.toDouble(); + retObj["Value"] = value.toDouble(); break; case QVariant::Double: - retObj[strKey] = value.toDouble(); + retObj["Value"] = value.toDouble(); break; default: return; @@ -1822,7 +1846,15 @@ int DbusUpperInterface::PamRespond(const QJsonObject &objInfo) int nRet = -1; QVariant varRespond = objInfo.value("Content"); if (varRespond.isValid() && m_pamAuth) { - m_pamAuth->respond(varRespond.toString()); + QString strDecrypt = varRespond.toString(); + if (!priKey.isEmpty()) { + QByteArray buffer; + QByteArray byteEncrypt = QByteArray::fromBase64(strDecrypt.toLatin1()); + if (rsac.decrypt(byteEncrypt, buffer, priKey)) { + strDecrypt = buffer; + } + } + m_pamAuth->respond(strDecrypt); nRet = 0; } return nRet; @@ -2159,7 +2191,11 @@ bool DbusUpperInterface::blockShortcut(const QJsonObject &objInfo) bool DbusUpperInterface::lockStateChanged(const QJsonObject &objInfo) { int nRet = -1; - lockState = objInfo.value("Content").toBool(); + bool state = objInfo.value("Content").toBool(); + if(lockState != state){ + lockState = state; + emitLockState(state); + } return lockState; } diff --git a/src/lock-backend/gsettingshelper.cpp b/src/lock-backend/gsettingshelper.cpp index 0dc164a..ab547eb 100644 --- a/src/lock-backend/gsettingshelper.cpp +++ b/src/lock-backend/gsettingshelper.cpp @@ -307,7 +307,7 @@ void GSettingsHelper::onLockScreenConfigChanged(QString strKey) } else if (strKey == KEY_LOCK_ENABLED) { varValue = m_bLockEnable = m_gsLockScreen->get(KEY_LOCK_ENABLED).toBool(); } else if (strKey == KEY_BACKGROUND) { - varValue = m_strBackground = m_gsLockScreen->get(KEY_BACKGROUND).toBool(); + varValue = m_strBackground = m_gsLockScreen->get(KEY_BACKGROUND).toString(); } else if (strKey == KEY_MODE) { varValue = m_saverMode = m_gsLockScreen->get(KEY_MODE).toString(); } else if (strKey == KEY_THEMES) { diff --git a/src/lock-backend/lightdmhelper.cpp b/src/lock-backend/lightdmhelper.cpp index 1affdd6..6c50c53 100644 --- a/src/lock-backend/lightdmhelper.cpp +++ b/src/lock-backend/lightdmhelper.cpp @@ -22,12 +22,14 @@ #include "securityuser.h" #include #include "proxymodel.h" +#include "accountservicehelper.h" -LightDMHelper::LightDMHelper(QObject *parent) +LightDMHelper::LightDMHelper(AccountServiceHelper *accountHelper, QObject *parent) : QLightDM::Greeter(parent) , m_sessionsModel(nullptr) , m_secUser(SecurityUser::instance()) , m_strCurUserName("") + , m_accountServiceHelper(accountHelper) { //连接到lightdm if(!connectToDaemonSync()){ @@ -195,6 +197,8 @@ void LightDMHelper::updateUsersInfo() if(m_secUser->isSecrityUser(name)) { std::shared_ptr userInfoPtr = std::make_shared(); userInfoPtr->updateName(name); + uid_t uid = m_modelUsers->index(i).data(QLightDM::UsersModel::UidRole).toUInt(); + userInfoPtr->updateUid(uid); QString strRealName = m_modelUsers->index(i).data(QLightDM::UsersModel::RealNameRole).toString(); if (strRealName.isEmpty()) { strRealName = name; @@ -203,13 +207,18 @@ void LightDMHelper::updateUsersInfo() QString strBackGround = m_modelUsers->index(i).data(QLightDM::UsersModel::BackgroundPathRole).toString(); if (!strBackGround.isEmpty() && QFileInfo(strBackGround).exists()){ userInfoPtr->updateBackground(strBackGround); + } else { + if (m_accountServiceHelper) { + strBackGround = m_accountServiceHelper->getAccountBackground(uid); + if (!strBackGround.isEmpty() && QFileInfo(strBackGround).exists()){ + userInfoPtr->updateBackground(strBackGround); + } + } } QString strImgHead = m_modelUsers->index(i).data(QLightDM::UsersModel::ImagePathRole).toString(); if (!strImgHead.isEmpty() && QFileInfo(strImgHead).exists()){ userInfoPtr->updateHeadImage(strImgHead); } - uid_t uid = m_modelUsers->index(i).data(QLightDM::UsersModel::UidRole).toUInt(); - userInfoPtr->updateUid(uid); bool isLoggedIn = m_modelUsers->index(i).data(QLightDM::UsersModel::LoggedInRole).toBool(); userInfoPtr->updateLoggedIn(isLoggedIn); diff --git a/src/lock-backend/lightdmhelper.h b/src/lock-backend/lightdmhelper.h index a2d3863..54829fd 100644 --- a/src/lock-backend/lightdmhelper.h +++ b/src/lock-backend/lightdmhelper.h @@ -28,6 +28,7 @@ class SecurityUser; class UsersModel; +class AccountServiceHelper; /** * @brief lightdm工具类 * @@ -41,7 +42,7 @@ public: * * @param parent 父指针 */ - explicit LightDMHelper(QObject *parent = nullptr); + explicit LightDMHelper(AccountServiceHelper *accountHelper, QObject *parent = nullptr); public: /** @@ -161,6 +162,7 @@ private: QLightDM::SessionsModel *m_sessionsModel; /**< lightdm 会话数据指针 */ QList m_listSessions; /**< 会话列表 */ UsersModel *m_modelUsers = nullptr; /**< lightdm 用户数据指针 */ + AccountServiceHelper *m_accountServiceHelper = nullptr; }; #endif // LIGHTDMHELPER_H diff --git a/src/lock-dialog/backenddbushelper.cpp b/src/lock-dialog/backenddbushelper.cpp index ab7fc8f..a49d5f7 100644 --- a/src/lock-dialog/backenddbushelper.cpp +++ b/src/lock-dialog/backenddbushelper.cpp @@ -996,7 +996,7 @@ void BackendDbusHelper::onUpdateInformation(const QString &strJson) ParseLogin1SessionActiveChanged(objRes); } break; - case LOCK_CMD_ID_GSETTINGS_GET_LOCKSCREEN_CONF: + case LOCK_CMD_ID_GSETTINGS_LOCKSCREEN_CONF_CHANGED: { ParseLockScreenConf(objRes); } @@ -1006,6 +1006,31 @@ void BackendDbusHelper::onUpdateInformation(const QString &strJson) ParseScreenSaverConf(objRes); } break; + case LOCK_CMD_ID_GSETTINGS_POWERMANAGER_CONF_CHANGED: + { + ParsePowerManagerConf(objRes); + } + break; + case LOCK_CMD_ID_GSETTINGS_MATEBG_CONF_CHANGED: + { + ParseMateBgConf(objRes); + } + break; + case LOCK_CMD_ID_GSETTINGS_UKCCPLUGINS_CONF_CHANGED: + { + ParseUkccPluginsConf(objRes); + } + break; + case LOCK_CMD_ID_GSETTINGS_THEMESTYLE_CONF_CHANGED: + { + ParseThemeStyleConf(objRes); + } + break; + case LOCK_CMD_ID_GSETTINGS_SESSION_CONF_CHANGED: + { + ParseSessionConf(objRes); + } + break; case LOCK_CMD_ID_LOGIN1_LIDSTATE_CHANGED: { ParseLidstateChanged(objRes); @@ -2360,14 +2385,13 @@ QString BackendDbusHelper::getPublicEncrypt() if (objRes.contains("CmdId") && objRes.contains("Ret") && objRes.contains("Content")) { int nCmdId = objRes.value("CmdId").toInt(-1); int nRet = objRes.value("Ret").toInt(-1); - QJsonObject object = objRes.value("Content").toObject(); - if (nCmdId != LOCK_CMD_ID_GET_PUBLIC_KEY || nRet != 0 || object.isEmpty()) { - qInfo()<<"getAgreementInfo Failed!!"; + if (nCmdId != LOCK_CMD_ID_GET_PUBLIC_KEY || nRet != 0 ) { + qInfo()<<"getPublicEncrypt Failed!!"; } else { publicEncrypt = objRes.value("Content").toString(); } } else { - qInfo()<<"getAgreementInfo Json is invalid!!"; + qInfo()<<"getPublicEncrypt Json is invalid!!"; } } } diff --git a/src/lock-dialog/lockdialogmodel.cpp b/src/lock-dialog/lockdialogmodel.cpp index f3dc51e..d8b06a3 100644 --- a/src/lock-dialog/lockdialogmodel.cpp +++ b/src/lock-dialog/lockdialogmodel.cpp @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include "utils.h" #include "definetypes.h" @@ -283,6 +285,20 @@ ScreenSaver *LockDialogModel::getScreensaver() return saver; } +double LockDialogModel::getCurFontSize() +{ + double defaultFontSize = getDefaultFontSize(); + return m_curFontSize - defaultFontSize; +} + +double LockDialogModel::getPtToPx() +{ + double m_ptTopx = 1.0; + if (QApplication::primaryScreen()->logicalDotsPerInch() > 0) + m_ptTopx = 72/(QApplication::primaryScreen()->logicalDotsPerInch()); + return m_ptTopx; +} + QString LockDialogModel::getXScreensaverPath(const QString &theme) { /* screensavers-ukui-binaryring => binaryring */ @@ -321,6 +337,17 @@ void LockDialogModel::onLockScreenConfChanged(const QString &key, QVariant value m_imageTSEffect = value.toInt(); } else if (key ==KEY_IMAGE_SWITCH_INTERVAL) { m_imageSwitchInterval = value.toInt(); + } else if (key ==KEY_LOCK_TIMEOUT){ + m_lockTimeout = value.toInt(); + } else if (key ==KEY_LOCK_ENABLED){ + m_lockEnabled = value.toBool(); + } +} + +void LockDialogModel::onThemeStyleConfChanged(const QString &key, QVariant value) +{ + if (key == KEY_SYSTEM_FONT_SIZE) { + m_curFontSize = value.toDouble(); } } @@ -360,6 +387,16 @@ void LockDialogModel::updateUsdMediaKeys(QString keys, QString value) } +void LockDialogModel::updateLockEnabled(bool value) +{ + m_lockEnabled = value; +} + +void LockDialogModel::updateLockTimeout(int value) +{ + m_lockTimeout = value; +} + void LockDialogModel::updateScreensaverMode(QString value) { m_saverMode = value; diff --git a/src/lock-dialog/lockdialogmodel.h b/src/lock-dialog/lockdialogmodel.h index 8f09ae2..79d5dc6 100644 --- a/src/lock-dialog/lockdialogmodel.h +++ b/src/lock-dialog/lockdialogmodel.h @@ -119,6 +119,10 @@ public: void updateScreensaverImageSwitchInterval(int value); + void updateLockTimeout(int value); + + void updateLockEnabled(bool value); + inline QStringList sessionsInfo() { return m_listSessions; } inline void updateCurSession(const QString &strSession) { m_strCurSession = strSession; } @@ -139,6 +143,8 @@ public: void updateAgreementInfo(AgreementInfoPtr agreementInfo); + void updateSystemFontSize(double fontSize) { m_curFontSize = fontSize; } + inline AgreementInfoPtr agreementInfo() { return m_agreementInfo;} inline bool getAgreementWindowShowLoginPrompt() { return m_agreementInfo->showLoginPrompt(); } @@ -180,6 +186,14 @@ public: inline int getLoggedInUsersCount() { return m_loggedinUsersCount; } + double getCurFontSize(); + + double getPtToPx(); + + inline int getLockTimeout() {return m_lockTimeout; } + + inline bool getLockEnabled() {return m_lockEnabled; } + public Q_SLOTS: /** * @brief 会话激活状态改变 @@ -218,6 +232,8 @@ public Q_SLOTS: void onLockScreenConfChanged(const QString &key, QVariant value); + void onThemeStyleConfChanged(const QString &key, QVariant value); + Q_SIGNALS: /** * @brief 请求解锁会话 @@ -377,6 +393,9 @@ private: QStringList m_sleepLockcheck; QStringList m_shutdownLockcheck; int m_loggedinUsersCount = 0; + int m_lockTimeout = 10; + bool m_lockEnabled = true; + double m_curFontSize; }; #endif // LOCKDIALOGMODEL_H diff --git a/src/lock-dialog/lockdialogperformer.cpp b/src/lock-dialog/lockdialogperformer.cpp index 626ec92..3f34f71 100644 --- a/src/lock-dialog/lockdialogperformer.cpp +++ b/src/lock-dialog/lockdialogperformer.cpp @@ -19,6 +19,7 @@ #include "lockdialogmodel.h" #include "backenddbushelper.h" #include "utils.h" +#include "rsac.h" LockDialogPerformer::LockDialogPerformer(LockDialogModel *model, QObject *parent) : QObject(parent) @@ -53,6 +54,7 @@ void LockDialogPerformer::initConnections() connect(m_bdHelper, &BackendDbusHelper::batteryChanged, m_modelLockDialog, &LockDialogModel::batteryChanged); connect(m_bdHelper, &BackendDbusHelper::SecondRunParam, m_modelLockDialog, &LockDialogModel::onSecondRunParam); connect(m_bdHelper, &BackendDbusHelper::lockScreenConfChanged, m_modelLockDialog, &LockDialogModel::onLockScreenConfChanged); + connect(m_bdHelper, &BackendDbusHelper::themeStyleConfChanged, m_modelLockDialog, &LockDialogModel::onThemeStyleConfChanged); // pam signals connect(m_bdHelper, SIGNAL(pamShowMessage(QString, int)), m_modelLockDialog, SIGNAL(pamShowMessage(QString, int))); @@ -73,7 +75,18 @@ void LockDialogPerformer::initConnections() connect(m_modelLockDialog, &LockDialogModel::setCurrentSession, m_bdHelper, &BackendDbusHelper::setCurrentSession); connect(m_modelLockDialog, &LockDialogModel::startSession, m_bdHelper, &BackendDbusHelper::startSession); connect(m_modelLockDialog, &LockDialogModel::pamAuthenticate, m_bdHelper, &BackendDbusHelper::pamAuthenticate); - connect(m_modelLockDialog, &LockDialogModel::pamRespond, m_bdHelper, &BackendDbusHelper::pamRespond); + connect(m_modelLockDialog, &LockDialogModel::pamRespond, m_bdHelper, [=](const QString &strResponse){ + QString strEncrypt = strResponse; + QString strPublicKey = m_bdHelper->getPublicEncrypt(); + if (!strPublicKey.isEmpty()) { + QByteArray buffer; + RSAC rsac; + if (rsac.encrypt(strEncrypt.toLatin1(), buffer, strPublicKey.toLatin1())) { + strEncrypt = buffer.toBase64(); + } + } + m_bdHelper->pamRespond(strEncrypt); + }); connect(m_modelLockDialog, &LockDialogModel::pamAuthenticateCancel, m_bdHelper, &BackendDbusHelper::pamAuthenticateCancel); connect(m_modelLockDialog, &LockDialogModel::pamIsInAuthentication, m_bdHelper, &BackendDbusHelper::pamIsInAuthentication); connect(m_modelLockDialog, &LockDialogModel::pamIsAuthenticated, m_bdHelper, &BackendDbusHelper::pamIsAuthenticated); @@ -127,5 +140,8 @@ void LockDialogPerformer::initData() m_modelLockDialog->updateSleepLockcheck(m_bdHelper->getSleepLockcheck()); m_modelLockDialog->updateShutdownLockcheck(m_bdHelper->getShutdownLockcheck()); m_modelLockDialog->updateLoggedInUsersCount(); + m_modelLockDialog->updateLockTimeout(m_bdHelper->getLockScreenConf(KEY_LOCK_TIMEOUT).toInt()); + m_modelLockDialog->updateLockEnabled(m_bdHelper->getLockScreenConf(KEY_LOCK_ENABLED).toBool()); + m_modelLockDialog->updateSystemFontSize(m_bdHelper->getThemeStyleConf(KEY_SYSTEM_FONT_SIZE).toDouble()); } diff --git a/src/widgets/authdialog.cpp b/src/widgets/authdialog.cpp index 480d818..e76c600 100644 --- a/src/widgets/authdialog.cpp +++ b/src/widgets/authdialog.cpp @@ -35,6 +35,8 @@ void AuthDialog::initUI() mainLayout->setAlignment(Qt::AlignCenter); mainLayout->setSpacing(16); mainLayout->setContentsMargins(0, 0, 0, 0); + m_curFontSize = m_modelLockDialog->getCurFontSize(); + m_ptToPx = m_modelLockDialog->getPtToPx(); // 生物认证提示 m_tipWidget = new QWidget(this); @@ -117,42 +119,60 @@ void AuthDialog::updateAuthSize() this->layout()->setSpacing(16*scale); if (m_tipWidget) m_tipWidget->setFixedSize(this->width(), 40*scale); - if (m_tipWidget) + if (m_headerWidget) m_headerWidget->setFixedSize(this->width(), 154*scale); - if (m_tipWidget) + if (m_nameWidget) m_nameWidget->setFixedSize(this->width(), 40*scale); - if (m_tipWidget) + if (m_editWidget) m_editWidget->setFixedSize(this->width(), 80*scale); - if (m_tipWidget) + if (m_messageWidget) m_messageWidget->setFixedSize(this->width(), 40*scale); - if (m_tipWidget) + if (m_ukeyPasswdWidget) m_ukeyPasswdWidget->setFixedSize(this->width(), 80*scale); - if (m_tipWidget) + if (m_widgetLoginOpts) m_widgetLoginOpts->setFixedSize(this->width(), 104*scale); - if (m_tipWidget) + if (m_labelLoginTypeTip) { m_labelLoginTypeTip->setFixedSize(m_tipWidget->size()); - if (m_tipWidget) + m_labelLoginTypeTip->setFontSize((14 + m_curFontSize)*m_ptToPx); + } + if (m_labelHeadImg) m_labelHeadImg->setFixedSize(154*scale, 154*scale); - if (m_tipWidget) + if (m_labelFace) m_labelFace->setFixedSize(154*scale, 154*scale); - if (m_tipWidget) + if (m_labelQRCode) m_labelQRCode->setFixedSize(154*scale, 154*scale); - if (m_tipWidget) + if (m_labelQRCodeTip) m_labelQRCodeTip->setFixedSize(22*scale, 22*scale); - if (m_tipWidget) + if (m_labelQRCodeMsg) { m_labelQRCodeMsg->setFixedHeight(30*scale); - if (m_tipWidget) + m_labelQRCodeMsg->setFontSize((14 + m_curFontSize)*m_ptToPx); + } + if (m_nameLabel) { m_nameLabel->setFixedSize(this->width(), 40*scale); - if (m_tipWidget) + m_nameLabel->setFontSize((24 + m_curFontSize)*m_ptToPx); + } + if (m_passwordEdit) { m_passwordEdit->setFixedSize(240*scale, 40*scale); - if (m_tipWidget) + m_passwordEdit->updateUI(); + } + if (m_messageLabel) { m_messageLabel->setFixedSize(this->width(), 40*scale); - if (m_tipWidget) + m_messageLabel->setFontSize((14 + m_curFontSize)*m_ptToPx); + } + if (m_messageButton) { m_messageButton->setFixedSize(200*scale, 40*scale); - if (m_tipWidget) + QFont font = m_messageButton->font(); + font.setPointSize((14 + m_curFontSize)*m_ptToPx); + m_messageButton->setFont(font); + } + if (m_ukeyPasswordEdit) { m_ukeyPasswordEdit->setFixedSize(240*scale, 40*scale); - if (m_tipWidget) + m_ukeyPasswordEdit->updateUI(); + } + if (m_ukeyMessageLabel) { m_ukeyMessageLabel->setFixedSize(this->width(), 40*scale); + m_ukeyMessageLabel->setFontSize((14 + m_curFontSize)*m_ptToPx); + } if (bottomListWidget) { bottomListWidget->setFixedSize(QSize(48*bottomListWidget->count() + bottomListWidget->spacing()*2*bottomListWidget->count(), 64)); bottomListWidget->updateUI(); @@ -168,7 +188,7 @@ void AuthDialog::initTipWidget() QVBoxLayout *tipLayout = new QVBoxLayout(m_tipWidget); tipLayout->setAlignment(Qt::AlignCenter); m_labelLoginTypeTip = new KLabel(m_tipWidget); - m_labelLoginTypeTip->setText("测试测试测试测试222222222222222222222222222222222222222222222222222222222222"); + m_labelLoginTypeTip->setText(""); m_labelLoginTypeTip->setAlignment(Qt::AlignCenter); m_labelLoginTypeTip->setFixedSize(m_tipWidget->size()); } @@ -210,7 +230,6 @@ void AuthDialog::initHeaderWidget() m_labelQRCodeTip->setPixmap(QIcon::fromTheme("dialog-warning").pixmap(QSize(22,22))); m_labelQRCodeTip->show(); m_labelQRCodeMsg = new KLabel(); - m_labelQRCodeMsg->setFontSize(14); m_labelQRCodeMsg->setStyleSheet("QLabel{background-color:rgba(255,255,255,0);color:rgb(255,0,0)}"); m_labelQRCodeMsg->hide(); layoutQRCode->addWidget(m_labelQRCodeMsg, 0, Qt::AlignHCenter); @@ -225,7 +244,6 @@ void AuthDialog::initNameWidget() nameLayout->setContentsMargins(0, 0, 0, 0); m_nameLabel = new KLabel(m_nameWidget); m_nameLabel->setAlignment(Qt::AlignCenter); - m_nameLabel->setFontSize(22); } void AuthDialog::initEditWidget() diff --git a/src/widgets/authdialog.h b/src/widgets/authdialog.h index e837c19..9d52775 100644 --- a/src/widgets/authdialog.h +++ b/src/widgets/authdialog.h @@ -248,5 +248,8 @@ private: bool m_isLockingFlg; //判断当前是否正在锁定倒计时 int m_nCurLockMin; //当前锁定的分钟数 QTimer *m_timerUserUnlock = nullptr; + + double m_curFontSize; + double m_ptToPx = 1.0; }; #endif // AUTHDIALOG_H diff --git a/src/widgets/biobuttonlistwidget.cpp b/src/widgets/biobuttonlistwidget.cpp index 4eac689..04c455b 100644 --- a/src/widgets/biobuttonlistwidget.cpp +++ b/src/widgets/biobuttonlistwidget.cpp @@ -33,6 +33,12 @@ void BioButtonListWidget::initConnections() connect(this, &BioButtonListWidget::currentItemChanged, this, &BioButtonListWidget::onListItemChanged); } +void BioButtonListWidget::resizeEvent(QResizeEvent *event) +{ + updateUI(); +} + + void BioButtonListWidget::addOptionButton(unsigned uLoginOptType, int nDrvId, QString strDrvName) { m_listDriveId.append(nDrvId); @@ -108,6 +114,7 @@ void BioButtonListWidget::updateUI() QList statusButton = this->findChildren(); for (auto button : statusButton) { button->setFixedSize(48*scale, 48*scale); + button->setIconSize(QSize(24*scale, 24*scale)); } } diff --git a/src/widgets/biobuttonlistwidget.h b/src/widgets/biobuttonlistwidget.h index 5699088..a095d47 100644 --- a/src/widgets/biobuttonlistwidget.h +++ b/src/widgets/biobuttonlistwidget.h @@ -31,6 +31,8 @@ Q_SIGNALS: private: void initUI(); void initConnections(); +protected: + void resizeEvent(QResizeEvent *event); private: QList m_listDriveId; diff --git a/src/widgets/blockwidget.cpp b/src/widgets/blockwidget.cpp index c0ff01a..48f3418 100644 --- a/src/widgets/blockwidget.cpp +++ b/src/widgets/blockwidget.cpp @@ -1,13 +1,17 @@ #include "blockwidget.h" #include "klabel.h" #include "statusbutton.h" +#include "../lock-dialog/lockdialogmodel.h" #include #include #include #include #include #include -BlockWidget::BlockWidget(QWidget* parent) : QWidget(parent) + +BlockWidget::BlockWidget(LockDialogModel *model, QWidget* parent) + : QWidget(parent) + , m_modelLockDialog(model) { initUi(); setFocusPolicy(Qt::NoFocus); @@ -49,6 +53,10 @@ void BlockWidget::initUi() mainLayout->addLayout(buttonLayout); mainLayout->addStretch(); + m_curFontSize = m_modelLockDialog->getCurFontSize(); + m_ptToPx = m_modelLockDialog->getPtToPx(); + m_tipLabel->setFontSize((14 + m_curFontSize)*m_ptToPx); + connect(m_cancelButton, &QPushButton::clicked, this, [&]() { emit cancelButtonclicked(); }); connect(m_confirmButton, &QPushButton::clicked, this, [&]() { emit confirmButtonclicked(); }); } @@ -64,9 +72,9 @@ void BlockWidget::setTips(const QString tips) m_confirmButton->setStyleSheet("QPushButton{background: rgba(255, 255, 255, 0.2);border-radius: 8px;color: white;}" "QPushButton:hover{background: rgba(255, 255, 255, 0.4);border-radius: 8px;}" "QPushButton:pressed {background: rgba(255, 255, 255, 0.3);border-radius: 8px;}"); - // sysFont.setPointSize((16 + curFontSize) *m_ptToPx); - // m_confirmButton->setFont(sysFont); - // m_cancelButton->setFont(sysFont); + sysFont.setPointSize((16 + m_curFontSize) *m_ptToPx); + m_confirmButton->setFont(sysFont); + m_cancelButton->setFont(sysFont); m_confirmButton->show(); m_tipLabel->show(); m_listView->hide(); @@ -108,8 +116,8 @@ void BlockWidget::setWarning(QStringList list, int type) m_listView->verticalScrollMode(); m_listView->setStyleSheet("color:white; background-color: rgba(255,255,255,30%); border-radius: 12px;"); -// sysFont.setPointSize((10 + curFontSize) *m_ptToPx); -// m_listView->setFont(sysFont); + sysFont.setPointSize((10 + m_curFontSize) *m_ptToPx); + m_listView->setFont(sysFont); m_listView->setEditTriggers(QAbstractItemView::NoEditTriggers); m_listView->setIconSize(QSize(32,32)); m_listView->setModel(model); @@ -120,7 +128,7 @@ void BlockWidget::setWarning(QStringList list, int type) m_cancelButton->setStyleSheet("QPushButton{background: rgba(255, 255, 255, 0.2);border-radius: 8px;color: white;}" "QPushButton:hover{background: rgba(255, 255, 255, 0.4);border-radius: 8px;}" "QPushButton:pressed {background: rgba(255, 255, 255, 0.3);border-radius: 8px;}"); -// sysFont.setPointSize((16 + curFontSize) *m_ptToPx); -// m_cancelButton->setFont(sysFont); + sysFont.setPointSize((16 + m_curFontSize) *m_ptToPx); + m_cancelButton->setFont(sysFont); } diff --git a/src/widgets/blockwidget.h b/src/widgets/blockwidget.h index 0612540..3427779 100644 --- a/src/widgets/blockwidget.h +++ b/src/widgets/blockwidget.h @@ -7,13 +7,14 @@ class KLabel; class QPushButton; class QListView; +class LockDialogModel; class BlockWidget : public QWidget { Q_OBJECT public: - explicit BlockWidget(QWidget *parent = nullptr); + explicit BlockWidget(LockDialogModel *model, QWidget *parent = nullptr); ~BlockWidget(); void setTips(const QString tips); void setWarning(QStringList list, int type); @@ -28,10 +29,13 @@ private: QListView *m_listView = nullptr; QPushButton *m_cancelButton = nullptr; QPushButton *m_confirmButton = nullptr; + LockDialogModel *m_modelLockDialog = nullptr; int m_blockType = 0; bool m_multiUsers = false; - double curFontSize; + double m_curFontSize; + double m_ptToPx = 1.0; + QFont sysFont; }; #endif // BLOCKWIDGET_H diff --git a/src/widgets/fullbackgroundwidget.cpp b/src/widgets/fullbackgroundwidget.cpp index 1308f41..ea5bda4 100644 --- a/src/widgets/fullbackgroundwidget.cpp +++ b/src/widgets/fullbackgroundwidget.cpp @@ -258,11 +258,14 @@ void FullBackgroundWidget::onShowLock(bool isStartup) show(); Q_EMIT m_modelLockDialog->setCurrentUser(m_modelLockDialog->defaultUserName()); Q_EMIT m_modelLockDialog->lockStateChanged(true); + if(m_lockWidget) + m_lockWidget->show(); } void FullBackgroundWidget::onShowSessionIdle() { - show(); + onShowScreensaver(); + delayLockScreen(); Q_EMIT m_modelLockDialog->lockStateChanged(true); } @@ -312,6 +315,55 @@ void FullBackgroundWidget::onClearScreensaver() widgetXScreensaverList.clear(); unsetCursor(); + + if(screenStatus == UNDEFINED) + { + closeScreensaver(); + } + else + { + onShowLock(false); + } + +} + +void FullBackgroundWidget::delayLockScreen() +{ + qDebug()<<"delayLockScreen"<getLockTimeout()<getLockEnabled(); + + if (!m_timerLock) { + m_timerLock = new QTimer(this); + connect(m_timerLock, &QTimer::timeout, this, &FullBackgroundWidget::onLockScreenTimeout); + } + + if (m_modelLockDialog->getLockTimeout() != -1 && m_modelLockDialog->getLockEnabled()) { + stopDelayLockScreen(); + m_timerLock->start(m_modelLockDialog->getLockTimeout()*1000); + } +} + +void FullBackgroundWidget::stopDelayLockScreen() +{ + if (m_timerLock && m_timerLock->isActive()) { + m_timerLock->stop(); + } +} + +void FullBackgroundWidget::onLockScreenTimeout() +{ + qDebug()<<"onLockScreenTimeout:"<getLockEnabled(); + if (m_modelLockDialog->getLockEnabled()) { + screenStatus = (ScreenStatus)(screenStatus | SCREEN_LOCK); + } + m_timerLock->stop(); +} + +void FullBackgroundWidget::closeScreensaver() +{ + hide(); + Q_EMIT m_modelLockDialog->lockStateChanged(false); + stopDelayLockScreen(); + screenStatus = UNDEFINED; } void FullBackgroundWidget::onShowPowerManager() @@ -579,10 +631,7 @@ void FullBackgroundWidget::onCurUserChanged(const QString &strUserName) void FullBackgroundWidget::onAuthSucceed(QString strUserName) { if (getenv("USER") == strUserName) { - this->hide(); - if (m_modelLockDialog) { - Q_EMIT m_modelLockDialog->lockStateChanged(false); - } + closeScreensaver(); } else { if (m_modelLockDialog) { Q_EMIT m_modelLockDialog->startSession(); diff --git a/src/widgets/fullbackgroundwidget.h b/src/widgets/fullbackgroundwidget.h index f6722ab..8aaecfd 100644 --- a/src/widgets/fullbackgroundwidget.h +++ b/src/widgets/fullbackgroundwidget.h @@ -116,9 +116,14 @@ private: bool isOpenGradation(); void startTransition(); void stopTransition(); - void drawBackground(QPixmap * backgroundBack, QPixmap * backgroundFront, const QRect &rect, float alpha); + + void delayLockScreen(); + void onLockScreenTimeout(); + void stopDelayLockScreen(); + void closeScreensaver(); + private Q_SLOTS: void onGlobalKeyPress(const quint8 &key); void onGlobalKeyRelease(const quint8 &key); @@ -143,6 +148,8 @@ private: ScreenStatus screenStatus = UNDEFINED; int isBlank; + + QTimer *m_timerLock = nullptr; }; #endif // FULLBACKGROUNDWIDGET_H diff --git a/src/widgets/iconedit.cpp b/src/widgets/iconedit.cpp index 66a7297..3483f84 100644 --- a/src/widgets/iconedit.cpp +++ b/src/widgets/iconedit.cpp @@ -208,10 +208,10 @@ void IconEdit::startWaiting() //这里将QIcon转QPixmap传入(24,24)时,实际得到的pixmap大小为(24,24)乘上缩放比例,导致计算pixmap位置错误,因此需要重新设置一次大小 //更好的解决方案应该是重写IconButton的setIcon函数?直接处理图片大小与icon大小一致? - QPixmap icon = QIcon::fromTheme("ukui-loading-0-symbolic").pixmap(16,16).scaled(16,16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); - m_waitingPixmap = getLoadingIcon(16); +// QPixmap icon = QIcon::fromTheme("ukui-loading-0-symbolic").pixmap(16,16).scaled(16,16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + m_waitingPixmap = getLoadingIcon(16*scale); m_iconButton->setIcon(m_waitingPixmap); - m_iconButton->setIconSize(QSize(16, 16)); + m_iconButton->setIconSize(QSize(16*scale, 16*scale)); m_timer->start(); } @@ -224,12 +224,20 @@ void IconEdit::stopWaiting() m_edit->setReadOnly(false); if (!m_icon.isNull()) { m_iconButton->setIcon(m_icon); - m_iconButton->setIconSize(QSize(24, 24)); + m_iconButton->setIconSize(QSize(24*scale, 24*scale)); } else { m_iconButton->setText(m_iconText); } } +void IconEdit::updateUI() +{ + m_iconButton->setFixedSize(QSize(24*scale, 24*scale)); + m_modeButton->setFixedSize(QSize(24*scale, 24*scale)); + m_modeButton->setIconSize(QSize(16*scale, 16*scale)); + m_capsIcon->setPixmap(QIcon::fromTheme("ukui-capslock-symbolic").pixmap(QSize(16*scale, 16*scale))); +} + void IconEdit::updatePixmap() { m_iconButton->setEnabled(true); @@ -238,7 +246,7 @@ void IconEdit::updatePixmap() matrix.rotate(90.0); m_waitingPixmap = m_waitingPixmap.transformed(matrix, Qt::FastTransformation); m_iconButton->setIcon(QIcon(m_waitingPixmap)); - m_iconButton->setIconSize(QSize(16, 16)); + m_iconButton->setIconSize(QSize(16*scale, 16*scale)); } void IconEdit::clicked_cb() diff --git a/src/widgets/iconedit.h b/src/widgets/iconedit.h index 7afc3f1..40be273 100644 --- a/src/widgets/iconedit.h +++ b/src/widgets/iconedit.h @@ -31,6 +31,7 @@ #include class Configuration; +extern float scale; class IconEdit : public QWidget { Q_OBJECT @@ -48,6 +49,7 @@ public: void setModeBtnVisible(bool visible); void startWaiting(); void stopWaiting(); + void updateUI(); protected: void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE; diff --git a/src/widgets/klabel.cpp b/src/widgets/klabel.cpp index 808d76f..b2e866c 100644 --- a/src/widgets/klabel.cpp +++ b/src/widgets/klabel.cpp @@ -5,20 +5,13 @@ #include #include -QWidget * KLabel::m_parentWidget; KLabel::KLabel(QWidget *parent) : QLabel(parent) { setWindowFlags(Qt::FramelessWindowHint); //m_strText = ""; sysFont = qApp->font(); - m_ptToPx = 1; - //获取当前屏幕尺寸 - QDesktopWidget* desktopWidget = QApplication::desktop(); - QRect clientRect = desktopWidget->availableGeometry(); - desktopWidth = clientRect.width(); - desktopHeight = clientRect.height(); - this->installEventFilter(this); + QPalette pe; pe.setColor(QPalette::WindowText,Qt::white); this->setPalette(pe); @@ -26,7 +19,7 @@ KLabel::KLabel(QWidget *parent) void KLabel::setFontSize(int fontSize) { - sysFont.setPointSize(fontSize * m_ptToPx); + sysFont.setPointSize(fontSize); this->setFont(sysFont); } @@ -66,46 +59,6 @@ QString KLabel::getElidedText(QFont font,int width,QString strInfo) return strInfo; } -bool KLabel::eventFilter(QObject *obj, QEvent *event) -{ -// if(event->type() == 110){ -// if(QLabel::text() != m_strText) { -// if(QLabel::text().isEmpty()) -// return false; -// if(is_Show)//如果KTooltip已经show出来,直接返回 -// return false; -// kTooltip = new MyTooltip(m_parentWidget); -// kTooltip->popup(kTooltip, m_strText, 16); -// kTooltip->setStyleSheet(QString("background-color:#FFFFFF; color:black; border-radius: 4px;")); -// int cursorX, cursorY; -// if (kTooltip->width() > QCursor::pos().x()) { -// cursorX = 10; -// } else if (QCursor::pos().x() + kTooltip->width() > desktopWidth) { -// cursorX = QCursor::pos().x() - kTooltip->width() - 5; -// } else { -// cursorX = QCursor::pos().x() + 5; -// } -// if (QCursor::pos().y() + kTooltip->height() > desktopHeight - 20) { -// cursorY = QCursor::pos().y() - kTooltip->height() - 20; -// } else { -// cursorY = QCursor::pos().y() + 20; -// } -// kTooltip->move(cursorX, cursorY); -// kTooltip->show(); -// kTooltip->raise(); -// is_Show = true; -// } -// } else if (event->type() == 11){ -// if(!is_Show){//如果本来没有收到tooltip事件,直接返回 -// return false; -// } -// kTooltip->tipClose(kTooltip); -// is_Show = false; -// kTooltip = nullptr; -// } - return false; -} - void KLabel::paintEvent(QPaintEvent *event) { if (m_strText.isEmpty() && !QLabel::text().isEmpty()) diff --git a/src/widgets/klabel.h b/src/widgets/klabel.h index 3563d88..511eb83 100644 --- a/src/widgets/klabel.h +++ b/src/widgets/klabel.h @@ -21,19 +21,12 @@ public Q_SLOTS: void setText(const QString &); protected: - bool eventFilter(QObject *obj, QEvent *event); void paintEvent(QPaintEvent *event); private: QFont sysFont; double m_ptToPx = 1.0; - //tooltip -// MyTooltip *kTooltip = nullptr; - bool is_Show = false; - int desktopWidth; - int desktopHeight; - QString m_strText; }; diff --git a/src/widgets/lockwidget.cpp b/src/widgets/lockwidget.cpp index 742861d..0541d51 100644 --- a/src/widgets/lockwidget.cpp +++ b/src/widgets/lockwidget.cpp @@ -507,7 +507,7 @@ void LockWidget::initButtonWidget() void LockWidget::initBlockWidget() { - m_blockWidget = new BlockWidget(this); + m_blockWidget = new BlockWidget(m_modelLockDialog, this); m_blockWidget->setGeometry(this->geometry()); m_blockWidget->hide(); connect(m_blockWidget, SIGNAL(cancelButtonclicked()), @@ -542,13 +542,16 @@ void LockWidget::updateBottomButton() for (auto button : statusButton) { if (button->getButtonTyoe() == POWERBUTTON) { button->setFixedSize(130*scale, 130*scale); + button->setIconSize(QSize(130*scale, 130*scale)); } else { button->setFixedSize(48*scale, 48*scale); + button->setIconSize(QSize(24*scale, 24*scale)); } } QList networkButton = this->findChildren(); for (auto button : networkButton) { - button->setFixedSize(48*scale, 48*scale); + button->setFixedSize(48*scale, 48*scale); + button->setIconSize(QSize(24*scale, 24*scale)); } } @@ -741,11 +744,14 @@ void LockWidget::onShowBatteryWidget() batteryWidget = new BatteryWidget(m_modelLockDialog, this); batteryWidget->setFixedSize(314, 112); if (batteryWidget) { - if (m_sessionButton->isHidden()) { + if (m_sessionButton && m_sessionButton->isHidden()) { batteryWidget->setGeometry(buttonListWidget->x(), height()- BOTTOM_MARGIN - buttonListWidget->height() - buttonListWidget->spacing() - batteryWidget->height(), 314*scale, 112*scale); - } else { - batteryWidget->setGeometry(buttonListWidget->x() + m_sessionButton->width() + 32, + } else if (m_sessionButton && m_sessionButton->isVisible()) { + batteryWidget->setGeometry(buttonListWidget->x() + m_sessionButton->width() + 8, + height()- BOTTOM_MARGIN - buttonListWidget->height() - buttonListWidget->spacing() - batteryWidget->height(), 314*scale, 112*scale); + } else if (!m_sessionButton) { + batteryWidget->setGeometry(buttonListWidget->x() + 8, height()- BOTTOM_MARGIN - buttonListWidget->height() - buttonListWidget->spacing() - batteryWidget->height(), 314*scale, 112*scale); } } diff --git a/src/widgets/powerlistwidget.h b/src/widgets/powerlistwidget.h index c64baea..7083b74 100644 --- a/src/widgets/powerlistwidget.h +++ b/src/widgets/powerlistwidget.h @@ -89,7 +89,7 @@ public: }, //3.reboot { - .m_strName = tr("Reboot"), + .m_strName = tr("Restart"), .m_strToolTip = tr("The computer stays on, but consumes less power. The app stays open and can quickly wake up and revert to where you left off"), .m_strIcon = ":/image/assets/reboot.svg", .m_show_flag = true, diff --git a/src/widgets/statusbutton.cpp b/src/widgets/statusbutton.cpp index f74424d..7f4f0f1 100644 --- a/src/widgets/statusbutton.cpp +++ b/src/widgets/statusbutton.cpp @@ -35,7 +35,7 @@ void StatusButton::paintEvent(QPaintEvent *e) QStyleOptionButton option; initStyleOption(&option); - if (option.state & QStyle::State_Sunken) { + if (curStatus == NORMAL) { painter.save(); painter.setPen(Qt::NoPen); painter.setBrush(Qt::white); @@ -160,6 +160,7 @@ void StatusButton::paintEvent(QPaintEvent *e) deltaY = pixmapRect.height() - buttonRect.height(); painter.save(); + painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter.translate(deltaX / 2, deltaY / 2); painter.drawPixmap(pixmapRect, pixmap); painter.restore();