diff --git a/0001-fix-CVE-PAM-authorization-bypass-due-to-incorrect-us.patch b/0001-fix-CVE-PAM-authorization-bypass-due-to-incorrect-us.patch deleted file mode 100644 index 0997542c7e3615b719d1d02b519c0fcd18eeccfa..0000000000000000000000000000000000000000 --- a/0001-fix-CVE-PAM-authorization-bypass-due-to-incorrect-us.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 308c40306db937dda0ed99c7a426c7730c3d326c Mon Sep 17 00:00:00 2001 -From: liuxinhao -Date: Mon, 14 Nov 2022 16:50:36 +0800 -Subject: [PATCH 1/6] fix(CVE): PAM authorization bypass due to incorrect usage -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- 修复问题: 已经过期的账户持有凭证仍然能登录 ---- - libexec/session-guard-checkpass/main.cpp | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/libexec/session-guard-checkpass/main.cpp b/libexec/session-guard-checkpass/main.cpp -index e667bde..4606411 100644 ---- a/libexec/session-guard-checkpass/main.cpp -+++ b/libexec/session-guard-checkpass/main.cpp -@@ -203,7 +203,6 @@ int main(int argc, char *argv[]) - - int authRes = PAM_SUCCESS; - authRes = pam_authenticate(pamh, 0); -- - const char *newUserName; - if (pam_get_item(pamh, PAM_USER, (const void **)&newUserName) != PAM_SUCCESS) - { -@@ -211,6 +210,11 @@ int main(int argc, char *argv[]) - return EXIT_FAILURE; - } - -+ if( authRes == PAM_SUCCESS ) -+ { -+ authRes = pam_acct_mgmt(pamh, 0); -+ } -+ - const char *authResultString = pam_strerror(pamh, authRes); - CompleteEvent event(true, authRes == PAM_SUCCESS, QString(authResultString)); - kiran_pam_message_send_event(CHANNEL_WRITE, &event); --- -2.33.0 - diff --git a/0001-fix-translate-add-some-translation.patch b/0001-fix-translate-add-some-translation.patch new file mode 100644 index 0000000000000000000000000000000000000000..e4e3945d4b789a505676994f7e89af6a892db9d5 --- /dev/null +++ b/0001-fix-translate-add-some-translation.patch @@ -0,0 +1,3626 @@ +From 838229a4fe9b6c1a8e605a50a5dbc394833103f7 Mon Sep 17 00:00:00 2001 +From: wangyucheng +Date: Mon, 3 Apr 2023 09:29:13 +0800 +Subject: [PATCH] fix(translate):add some translation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 添加一些翻译 + +Relates #67661 +--- + src/lightdm-greeter/CMakeLists.txt | 5 +- + .../kiran-cpanel-greeter/CMakeLists.txt | 4 +- + src/polkit-agent/CMakeLists.txt | 3 +- + src/screensaver-dialog/CMakeLists.txt | 3 +- + translations/kiran-cpanel-greeter.bo_CN.ts | 114 +++++ + translations/kiran-cpanel-greeter.kk_KG.ts | 114 +++++ + translations/kiran-cpanel-greeter.kk_KZ.ts | 114 +++++ + translations/kiran-cpanel-greeter.mn_MN.ts | 114 +++++ + translations/kiran-cpanel-greeter.ug_CN.ts | 114 +++++ + translations/kiran-polkit-agent.bo_CN.ts | 49 +++ + translations/kiran-polkit-agent.kk_KG.ts | 49 +++ + translations/kiran-polkit-agent.kk_KZ.ts | 49 +++ + translations/kiran-polkit-agent.mn_MN.ts | 49 +++ + translations/kiran-polkit-agent.ug_CN.ts | 49 +++ + .../kiran-screensaver-dialog.bo_CN.ts | 109 +++++ + .../kiran-screensaver-dialog.kk_KG.ts | 109 +++++ + .../kiran-screensaver-dialog.kk_KZ.ts | 109 +++++ + .../kiran-screensaver-dialog.mn_MN.ts | 109 +++++ + .../kiran-screensaver-dialog.ug_CN.ts | 109 +++++ + translations/lightdm-kiran-greeter.bo_CN.ts | 398 ++++++++++++++++++ + translations/lightdm-kiran-greeter.kk_KG.ts | 398 ++++++++++++++++++ + translations/lightdm-kiran-greeter.kk_KZ.ts | 398 ++++++++++++++++++ + translations/lightdm-kiran-greeter.mn_MN.ts | 398 ++++++++++++++++++ + translations/lightdm-kiran-greeter.ug_CN.ts | 398 ++++++++++++++++++ + 24 files changed, 3359 insertions(+), 6 deletions(-) + create mode 100644 translations/kiran-cpanel-greeter.bo_CN.ts + create mode 100644 translations/kiran-cpanel-greeter.kk_KG.ts + create mode 100644 translations/kiran-cpanel-greeter.kk_KZ.ts + create mode 100644 translations/kiran-cpanel-greeter.mn_MN.ts + create mode 100644 translations/kiran-cpanel-greeter.ug_CN.ts + create mode 100644 translations/kiran-polkit-agent.bo_CN.ts + create mode 100644 translations/kiran-polkit-agent.kk_KG.ts + create mode 100644 translations/kiran-polkit-agent.kk_KZ.ts + create mode 100644 translations/kiran-polkit-agent.mn_MN.ts + create mode 100644 translations/kiran-polkit-agent.ug_CN.ts + create mode 100644 translations/kiran-screensaver-dialog.bo_CN.ts + create mode 100644 translations/kiran-screensaver-dialog.kk_KG.ts + create mode 100644 translations/kiran-screensaver-dialog.kk_KZ.ts + create mode 100644 translations/kiran-screensaver-dialog.mn_MN.ts + create mode 100644 translations/kiran-screensaver-dialog.ug_CN.ts + create mode 100644 translations/lightdm-kiran-greeter.bo_CN.ts + create mode 100644 translations/lightdm-kiran-greeter.kk_KG.ts + create mode 100644 translations/lightdm-kiran-greeter.kk_KZ.ts + create mode 100644 translations/lightdm-kiran-greeter.mn_MN.ts + create mode 100644 translations/lightdm-kiran-greeter.ug_CN.ts + +diff --git a/src/lightdm-greeter/CMakeLists.txt b/src/lightdm-greeter/CMakeLists.txt +index 8d9c5e9..b941054 100644 +--- a/src/lightdm-greeter/CMakeLists.txt ++++ b/src/lightdm-greeter/CMakeLists.txt +@@ -12,9 +12,10 @@ set(LIGHTDM_GREETER_TRANSLATOR_SOURCE + ${PROJECT_SOURCE_DIR}/lib/login-frame/ + ${PROJECT_SOURCE_DIR}/lib/auth-proxy/ + ${PROJECT_SOURCE_DIR}/lib/common-widgets/) ++file(GLOB GREETER_TRANSLATION ${CMAKE_SOURCE_DIR}/translations/lightdm-kiran-greeter.*.ts) + qt5_create_translation(GREETER_QM_FILES + ${LIGHTDM_GREETER_TRANSLATOR_SOURCE} +- ${CMAKE_SOURCE_DIR}/translations/lightdm-kiran-greeter.zh_CN.ts ++ ${GREETER_TRANSLATION} + OPTIONS -I ${LIGHTDM_GREETER_TRANSLATOR_SOURCE}) + + add_executable(${TARGET_NAME} +@@ -73,4 +74,4 @@ install(FILES ${CMAKE_SOURCE_DIR}/data/greeter-zlog.conf + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ WORLD_WRITE) + + #登录设置 +-add_subdirectory(kiran-cpanel-greeter) +\ No newline at end of file ++add_subdirectory(kiran-cpanel-greeter) +diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt b/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt +index f1620a2..e556b36 100644 +--- a/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt ++++ b/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt +@@ -9,7 +9,7 @@ pkg_get_variable(CPANEL_DESKTOP_DIR kiran-control-panel plugin_desktop_location) + + file(GLOB CPANEL_GREETER_SRC "../common/*.cpp" "../common/*.h" "./*.cpp" "./*.h" "./*.ui") + set(CPANEL_GREETER_RESOURCE ${CMAKE_SOURCE_DIR}/resources/kcp-greeter-resources.qrc) +-set(CPANEL_GREETER_TRANSLATION ${CMAKE_SOURCE_DIR}/translations/kiran-cpanel-greeter.zh_CN.ts) ++file(GLOB CPANEL_GREETER_TRANSLATION ${CMAKE_SOURCE_DIR}/translations/kiran-cpanel-greeter.*.ts) + qt5_create_translation(GREETER_SETTINS_QM_FILES + ${CMAKE_CURRENT_SOURCE_DIR} + ${CPANEL_GREETER_TRANSLATION} +@@ -52,4 +52,4 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kiran-cpanel-greeter.desktop DESTINATI + #安装插件 + install(TARGETS ${TARGET_NAME} DESTINATION ${CPANEL_PLUGIN_DIR}/) + #翻译文件 +-install(FILES ${GREETER_SETTINS_QM_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/lightdm-kiran-greeter/translations/) +\ No newline at end of file ++install(FILES ${GREETER_SETTINS_QM_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/lightdm-kiran-greeter/translations/) +diff --git a/src/polkit-agent/CMakeLists.txt b/src/polkit-agent/CMakeLists.txt +index eff2f81..b5fe2b6 100644 +--- a/src/polkit-agent/CMakeLists.txt ++++ b/src/polkit-agent/CMakeLists.txt +@@ -12,9 +12,10 @@ set(POLKIT_AGENT_TRANSLATOR_SOURCE + ${CMAKE_CURRENT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/lib/common-widgets/ + ${PROJECT_SOURCE_DIR}/lib/auth-proxy/) ++file(GLOB POLKIT_AGENT_TRANSLATION ${CMAKE_SOURCE_DIR}/translations/kiran-polkit-agent*.ts) + qt5_create_translation(POLKIT_AGENT_QM_FILES + ${POLKIT_AGENT_TRANSLATOR_SOURCE} +- ${CMAKE_SOURCE_DIR}/translations/kiran-polkit-agent.zh_CN.ts ++ ${POLKIT_AGENT_TRANSLATION} + OPTIONS -I ${POLKIT_AGENT_TRANSLATOR_SOURCE}) + + add_executable(${TARGET_NAME} +diff --git a/src/screensaver-dialog/CMakeLists.txt b/src/screensaver-dialog/CMakeLists.txt +index 4adafd5..4194788 100644 +--- a/src/screensaver-dialog/CMakeLists.txt ++++ b/src/screensaver-dialog/CMakeLists.txt +@@ -13,9 +13,10 @@ set(SCREENSAVER_DIALOG_TRANSLATOR_SOURCE + ${CMAKE_CURRENT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/lib/login-frame/ + ${PROJECT_SOURCE_DIR}/lib/auth-proxy/) ++file(GLOB SCREENSAVER_DIALOG_TRANSLATION ${CMAKE_SOURCE_DIR}/translations/kiran-screensaver-dialog*.ts) + qt5_create_translation(SCREENSAVER_DIALOG_QM_FILES + ${SCREENSAVER_DIALOG_TRANSLATOR_SOURCE} +- ${CMAKE_SOURCE_DIR}/translations/kiran-screensaver-dialog.zh_CN.ts ++ ${SCREENSAVER_DIALOG_TRANSLATION} + OPTIONS -I ${SCREENSAVER_DIALOG_TRANSLATOR_SOURCE}) + + add_library(${TARGET_NAME} SHARED +diff --git a/translations/kiran-cpanel-greeter.bo_CN.ts b/translations/kiran-cpanel-greeter.bo_CN.ts +new file mode 100644 +index 0000000..81f6d90 +--- /dev/null ++++ b/translations/kiran-cpanel-greeter.bo_CN.ts +@@ -0,0 +1,114 @@ ++ ++ ++ GreeterSettingWindow ++ ++ ++ autologin ++ རང་འགུལ་རིག་པ། ++ ++ ++ ++ general settings ++ སྤྱིར་བཏང་གི་སྒྲིག་བཀོད། ++ ++ ++ ++ auto login user(take effect after restart) ++ རང་འགུལ་གྱིས་ཐོ་འགོད་བྱེད་པའི་སྤྱོད་མཁན་(བསྐྱར་དུ་འགོ་ཚུགས་རྗེས་ནུས་པ་ ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ རང་འགུལ་གྱིས་ཐོ་འགོད་བྱེད་པའི་དུས་ཚོད་འགོར་འགྱངས་བྱས་པ་(དུས་ཚོད་སྐར་ཆ་ཙམ་ཡང་མ ++ ++ ++ ++ ++ Save ++ གྲོན་ཆུང་བྱེད་དགོས། ++ ++ ++ ++ ++ Reset ++ བསྐྱར་དུ་བཀོད་སྒྲིག་བྱེད་པ ++ ++ ++ ++ Scale Mode ++ གཞི་ཁྱོན་ལྡན་པའི་རྣམ་པ ++ ++ ++ ++ auto ++ རླངས་འཁོར། ++ ++ ++ ++ manual ++ ལག་དེབ། ++ ++ ++ ++ disable ++ དབང་པོ་སྐྱོན་ཅན། ++ ++ ++ ++ Scale Factor ++ གཞི་ཁྱོན་གྱི་རྒྱུ་རྐྱེན། ++ ++ ++ ++ Enable manual input user login ++ ལག་པས་ནང་འཇུག་བྱེད་པའི་སྤྱོད་མཁན་གྱི་ཐོ་འགོད་ ++ ++ ++ ++ Show User List ++ སྤྱོད་མཁན་གྱི་མིང་ཐོ་མངོན་ ++ ++ ++ ++ Save failed: %1 ++ ཉར་ཚགས་བྱས་ནས་ཕམ་ཁ་བྱུང་བ་སྟེ། %1 ++ ++ ++ Save failed,%1 ++ ཕམ་ཉེས་བྱུང་ནས་ཉར་ཚགས་བྱས་ན་%1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ ཁྱེད་ཀྱིས་དེའི་ནང་གི་བསལ་འདེམས་གཉིས་ཀྱི་ཡ་གྱལ་ཞིག་ཁ་ཕྱེ་བར་ཁག་ཐེག་བྱེད་རོགས། ++ ++ ++ ++ ++ Configuration changed ++ བཀོད་སྒྲིག་ལ་འགྱུར་ལྡོག་བྱུང་ ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ ཕྱི་རོལ་གྱི་བཀོད་སྒྲིག་ཡིག་ཆ་ལ་འགྱུར་ལྡོག་བྱུང་ཡོད། ++གལ་ཏེ་ཁྱོད་ཀྱིས་གྲོན་ཆུང་བྱས་ན། ཕྱི་རོལ་གྱི་འགྱུར་ལྡོག་ཚང་མ་ཚད་ལས་བརྒལ་ནས་བྲིས་པ་ཡིན། ++བེད་མེད་དུ་བསྐྱུར་ནས་བཟོ་བཅོས་བརྒྱབ་རྗེས་ཡང་བསྐྱར་བཀོད་སྒྲིག་གསར་པ་བྱས། ++ ++ ++ ++ ++ Save failed, reload ++ གྲོན་ཆུང་བྱས་ནས་ཕམ་ཉེས་བྱུང་རྗེས་ཡང་བསྐྱར་ཐེག་ ++ ++ ++ ++ ++ Saved successfully ++ ཉར་ཚགས་ལེགས་འགྲུབ་བྱུང་བ། ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-cpanel-greeter.kk_KG.ts b/translations/kiran-cpanel-greeter.kk_KG.ts +new file mode 100644 +index 0000000..03b559d +--- /dev/null ++++ b/translations/kiran-cpanel-greeter.kk_KG.ts +@@ -0,0 +1,114 @@ ++ ++ ++ GreeterSettingWindow ++ ++ ++ autologin ++ автолог ++ ++ ++ ++ general settings ++ жалпы параметрлер ++ ++ ++ ++ auto login user(take effect after restart) ++ автоматтык кирүү колдонуучусу (кайра иштетүүдөн кийин күчүнө кирет) ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ авто кирүүнү кечиктирүү (секунд)(кайра иштетүүдөн кийин күчүнө кирет) ++ ++ ++ ++ ++ Save ++ Сактоо ++ ++ ++ ++ ++ Reset ++ Калыбына келтирүү ++ ++ ++ ++ Scale Mode ++ Масштаб режими ++ ++ ++ ++ auto ++ унаа ++ ++ ++ ++ manual ++ колдонмо ++ ++ ++ ++ disable ++ өчүрүү ++ ++ ++ ++ Scale Factor ++ Масштаб фактору ++ ++ ++ ++ Enable manual input user login ++ Колдонуучунун кирүүсүн колдонууга мүмкүндүк берүү ++ ++ ++ ++ Show User List ++ Колдонуучулардын тизмесин көрсөтүү ++ ++ ++ ++ Save failed: %1 ++ Сактоо ишке ашпады: %1 ++ ++ ++ Save failed,%1 ++ Үнөмдөө ишке ашпады,%1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ Сураныч, эки варианттын бири күйгүзүлөт камсыз кылуу! ++ ++ ++ ++ ++ Configuration changed ++ Конфигурация өзгөрдү ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ Сырткы конфигурация файлы өзгөрдү ++Эгер сактоону тандасаңыз, бардык тышкы өзгөрүүлөр ашыкча жазылат ++Өзгөртүүнү таштап, жаңы конфигурацияны кайра жүктөө үчүн таштанды тандоо ++ ++ ++ ++ ++ Save failed, reload ++ Сактоо ишке ашпады, кайра жүктөө ++ ++ ++ ++ ++ Saved successfully ++ Ийгиликтүү сакталды ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-cpanel-greeter.kk_KZ.ts b/translations/kiran-cpanel-greeter.kk_KZ.ts +new file mode 100644 +index 0000000..e8b3439 +--- /dev/null ++++ b/translations/kiran-cpanel-greeter.kk_KZ.ts +@@ -0,0 +1,114 @@ ++ ++ ++ GreeterSettingWindow ++ ++ ++ autologin ++ аутологиялық ++ ++ ++ ++ general settings ++ жалпы параметрлер ++ ++ ++ ++ auto login user(take effect after restart) ++ авто-журнал пайдаланушысы ( қайта іске қосқаннан кейін күшіне енеді ) ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ авто-журналдың кідірісі ( секундтар ) ( ) қайта іске қосқаннан кейін күшіне енеді <TAG1> ++ ++ ++ ++ ++ Save ++ Сақтандырыңыз ++ ++ ++ ++ ++ Reset ++ Қалпына келтіру ++ ++ ++ ++ Scale Mode ++ Масштаб режимі ++ ++ ++ ++ auto ++ авто ++ ++ ++ ++ manual ++ қолмен ++ ++ ++ ++ disable ++ Өшіріңіз ++ ++ ++ ++ Scale Factor ++ Масштаб факторы ++ ++ ++ ++ Enable manual input user login ++ Қолмен енгізу пайдаланушы логині ++ ++ ++ ++ Show User List ++ Пайдаланушы тізімін көрсетіңіз ++ ++ ++ ++ Save failed: %1 ++ Сақтау сәтсіз болды:% 1 ++ ++ ++ Save failed,%1 ++ Сақтау сәтсіз болды,% 1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ Екі нұсқаның біреуі қосылғанына көз жеткізіңіз! ++ ++ ++ ++ ++ Configuration changed ++ Конфигурация өзгерді ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ Сыртқы конфигурация файлы өзгерді ++Егер сіз үнемдеуді таңдасаңыз, барлық сыртқы өзгерістер қайта жазылады ++Модификацияны алып тастау үшін алып тастауды таңдаңыз және жаңа конфигурацияны қайта жүктеңіз ++ ++ ++ ++ ++ Save failed, reload ++ Сәтсіз, қайта жүктеуді сақтаңыз ++ ++ ++ ++ ++ Saved successfully ++ Сәтті сақталды ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-cpanel-greeter.mn_MN.ts b/translations/kiran-cpanel-greeter.mn_MN.ts +new file mode 100644 +index 0000000..c2819ee +--- /dev/null ++++ b/translations/kiran-cpanel-greeter.mn_MN.ts +@@ -0,0 +1,114 @@ ++ ++ ++ GreeterSettingWindow ++ ++ ++ autologin ++ аутологи ++ ++ ++ ++ general settings ++ ерөнхий ++ ++ ++ ++ auto login user(take effect after restart) ++ авто нэвтрэх хэрэглэгч ( ) дахин ажиллуулсны дараа хүчин төгөлдөр болно ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ авто нэвтрэх саатал ( секундын хэмжээ ) ( ) <TAG1> дахин ажиллуулсны дараа хүчин төгөлдөр болно <TAG1> ++ ++ ++ ++ ++ Save ++ Хадгалах ++ ++ ++ ++ ++ Reset ++ Дахин тохируулах ++ ++ ++ ++ Scale Mode ++ Хэмжээ ++ ++ ++ ++ auto ++ авто ++ ++ ++ ++ manual ++ гарын ++ ++ ++ ++ disable ++ идэвхгүй ++ ++ ++ ++ Scale Factor ++ Хэмжээний хүчин ++ ++ ++ ++ Enable manual input user login ++ Гар оролт хэрэглэгчийн нэвтрэх ++ ++ ++ ++ Show User List ++ Хэрэглэгчийн жагсаалтыг харуулах ++ ++ ++ ++ Save failed: %1 ++ Амжилтгүй болсон:% 1 ++ ++ ++ Save failed,%1 ++ Амжилтгүй,% 1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ Хоёр хувилбарын аль нэгийг нь асаахыг баталгаажуулна уу! ++ ++ ++ ++ ++ Configuration changed ++ Тохируулга өөрчлөгдсөн ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ Гадаад тохиргооны файл өөрчлөгдсөн ++Хэрэв та хэмнэхийг сонгосон бол бүх гадаад өөрчлөлтийг дарж бичих болно ++Өөрчлөлтийг хаяхын тулд дискээ сонгоод шинэ тохиргоог дахин ачаална уу ++ ++ ++ ++ ++ Save failed, reload ++ Амжилтгүй, дахин ачаална ++ ++ ++ ++ ++ Saved successfully ++ Амжилттай ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-cpanel-greeter.ug_CN.ts b/translations/kiran-cpanel-greeter.ug_CN.ts +new file mode 100644 +index 0000000..d8216b4 +--- /dev/null ++++ b/translations/kiran-cpanel-greeter.ug_CN.ts +@@ -0,0 +1,114 @@ ++ ++ ++ GreeterSettingWindow ++ ++ ++ autologin ++ autologin ++ ++ ++ ++ general settings ++ ئادەتتىكى تەڭشەكلەر ++ ++ ++ ++ auto login user(take effect after restart) ++ ئاپتوماتىك كىرىش ئىشلەتكۈچى (قايتا قوزغاتقاندىن كېيىن ئۈنۈمگە ئېرىش) ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ ئاپتۇماتىك كىرىشنى كېچىكتۈرۈش(سېكۇنت)(قايتا قوزغاتقاندىن كېيىن ئۈنۈمگە ئېرىش) ++ ++ ++ ++ ++ Save ++ ساقلاش ++ ++ ++ ++ ++ Reset ++ قايتا تىڭشى ++ ++ ++ ++ Scale Mode ++ كۆلەم شەكلى ++ ++ ++ ++ auto ++ ماشىنا ++ ++ ++ ++ manual ++ قوللانما ++ ++ ++ ++ disable ++ ئەمەلدىن قالىدۇ ++ ++ ++ ++ Scale Factor ++ كۆلەم ئامىلى ++ ++ ++ ++ Enable manual input user login ++ قولدا كىرگۈزگۈچىنى قوزغىتىش ++ ++ ++ ++ Show User List ++ ئىشلەتكۈچىلەر تىزىملىكىنى كۆرسەت ++ ++ ++ ++ Save failed: %1 ++ ساقلاش مەغلۇپ بولدى:٪1 ++ ++ ++ Save failed,%1 ++ ساقلاش مەغلۇپ بولدى,٪1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ بۇ ئىككى تاللاشنىڭ بىرىنىڭ ئېچىلىپ بولۇشىغا كاپالەتلىك قىلىڭ! ++ ++ ++ ++ ++ Configuration changed ++ سەپلىمە ئۆزگەرتىلدى ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ سىرتقى سەپلىمە ھۆججىتى ئۆزگەردى ++ساقلاشنى تاللىسىڭىز، بارلىق تاشقى ئۆزگىرىشنىڭ ئۈستىگە يېزىپ قويۇلىدۇ ++ئۆزگەرتىشنى بىكار قىلىش ۋە يېڭى سەپلىمىنى قايتا قاچىلاشنى تاللاڭ ++ ++ ++ ++ ++ Save failed, reload ++ تېجەش مەغلۇپ بولدى، قايتا قاچىلاش ++ ++ ++ ++ ++ Saved successfully ++ مۇۋەپپىقىيەتلىك ساقلىدى ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-polkit-agent.bo_CN.ts b/translations/kiran-polkit-agent.bo_CN.ts +new file mode 100644 +index 0000000..6b8042d +--- /dev/null ++++ b/translations/kiran-polkit-agent.bo_CN.ts +@@ -0,0 +1,49 @@ ++ ++ ++ Dialog ++ ++ ++ Form ++ རྣམ་པ། ++ ++ ++ ++ TextLabel ++ ཡི་གེ་ལ་པེར་གྱིས་བཤད་རྒྱུར ++ ++ ++ ++ Ok ++ འགྲིགས། ++ ++ ++ ++ Cancel ++ ཕྱིར་འཐེན། ++ ++ ++ ++ authorization ++ དབང་ཆ་བསྐུར་བ། ++ ++ ++ ++ fingerprint auth ++ མཛུབ་རིས་ཀྱི་ཡོ་རོབ་གླིང་། ++ ++ ++ ++ face auth ++ ངོ་གདོང་ནས་བཤད་ན། ++ ++ ++ ++ Listener ++ ++ ++ ++ Existing authentication is in progress, please try again later ++ ད་ཡོད་ཀྱི་བདེན་དཔང་ར་སྤྲོད་བྱེད་བཞིན་པའི་སྒང་ཡིན། ཅུང་ཙམ་འགོར་རྗེས་ཡང་བསྐྱར་ཚོད་ལྟ ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-polkit-agent.kk_KG.ts b/translations/kiran-polkit-agent.kk_KG.ts +new file mode 100644 +index 0000000..7e9aae4 +--- /dev/null ++++ b/translations/kiran-polkit-agent.kk_KG.ts +@@ -0,0 +1,49 @@ ++ ++ ++ Dialog ++ ++ ++ Form ++ форма ++ ++ ++ ++ TextLabel ++ TextLabel ++ ++ ++ ++ Ok ++ Ok ++ ++ ++ ++ Cancel ++ жокко чыгаруу ++ ++ ++ ++ authorization ++ уруксат ++ ++ ++ ++ fingerprint auth ++ манжа изинин чындыгы ++ ++ ++ ++ face auth ++ бет ++ ++ ++ ++ Listener ++ ++ ++ ++ Existing authentication is in progress, please try again later ++ Учурдагы аутентификация жүрүп жатат, кийинчерээк дагы аракет кылып көрүңүз ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-polkit-agent.kk_KZ.ts b/translations/kiran-polkit-agent.kk_KZ.ts +new file mode 100644 +index 0000000..fe2bdb9 +--- /dev/null ++++ b/translations/kiran-polkit-agent.kk_KZ.ts +@@ -0,0 +1,49 @@ ++ ++ ++ Dialog ++ ++ ++ Form ++ Пішін ++ ++ ++ ++ TextLabel ++ TextLabel ++ ++ ++ ++ Ok ++ Жақсы ++ ++ ++ ++ Cancel ++ Болдырмау ++ ++ ++ ++ authorization ++ авторизациялау ++ ++ ++ ++ fingerprint auth ++ дактилоскопиялық аут ++ ++ ++ ++ face auth ++ бет аут ++ ++ ++ ++ Listener ++ ++ ++ ++ Existing authentication is in progress, please try again later ++ Бұрыннан бар аутентификация жүріп жатыр, кейінірек қайталап көріңіз ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-polkit-agent.mn_MN.ts b/translations/kiran-polkit-agent.mn_MN.ts +new file mode 100644 +index 0000000..4ba810e +--- /dev/null ++++ b/translations/kiran-polkit-agent.mn_MN.ts +@@ -0,0 +1,49 @@ ++ ++ ++ Dialog ++ ++ ++ Form ++ Маягт ++ ++ ++ ++ TextLabel ++ Текст ++ ++ ++ ++ Ok ++ За ++ ++ ++ ++ Cancel ++ Цуцлах ++ ++ ++ ++ authorization ++ зөвшөөрөл ++ ++ ++ ++ fingerprint auth ++ хурууны хээ ++ ++ ++ ++ face auth ++ нүүр ++ ++ ++ ++ Listener ++ ++ ++ ++ Existing authentication is in progress, please try again later ++ Одоо байгаа баталгаажуулалт үргэлжилж байна, дараа нь дахин оролдоно уу ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-polkit-agent.ug_CN.ts b/translations/kiran-polkit-agent.ug_CN.ts +new file mode 100644 +index 0000000..fce0e47 +--- /dev/null ++++ b/translations/kiran-polkit-agent.ug_CN.ts +@@ -0,0 +1,49 @@ ++ ++ ++ Dialog ++ ++ ++ Form ++ جەدۋەل ++ ++ ++ ++ TextLabel ++ TextLabel ++ ++ ++ ++ Ok ++ ماقۇل ++ ++ ++ ++ Cancel ++ ئەمەلدىن قالدۇرۇش ++ ++ ++ ++ authorization ++ ھوقۇق بېرىش ++ ++ ++ ++ fingerprint auth ++ بارماق ئىزى auth ++ ++ ++ ++ face auth ++ يۈز auth ++ ++ ++ ++ Listener ++ ++ ++ ++ Existing authentication is in progress, please try again later ++ ھازىر بار بولغان دەلىللەش ئېلىپ بېرىلىۋاتىدۇ، سەل تۇرۇپ قايتا سىناپ بېقىڭ ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-screensaver-dialog.bo_CN.ts b/translations/kiran-screensaver-dialog.bo_CN.ts +new file mode 100644 +index 0000000..8036d0b +--- /dev/null ++++ b/translations/kiran-screensaver-dialog.bo_CN.ts +@@ -0,0 +1,109 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་པ། ++ ++ ++ ++ Frame ++ ++ reboot ++ བསྐྱར་དུ་བསྐྱར་དུ་བྱུང་བ་རེད། ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ switch to greeter ++ འཚམས་འདྲི་ཞུ་མཁན་ལ་བརྗེ་རེས་བྱེད་ ++ ++ ++ power menu ++ སྒུལ་ཤུགས་ཀྱི་ཟས་ཐོ། ++ ++ ++ virtual keyboard ++ རྟོག་བཟོའི་མཐེབ་གཞོང ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ མིང་། ++ ++ ++ Recertification ++ བློར་འཛིན་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ Failed to authenticate ++ བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་པ། ++ ++ ++ Start face authentication ++ ངོ་གདོང་ནས་བདེན་དཔང་ར་སྤྲོད་བྱེད་ ++ ++ ++ Start fingerprint authentication ++ མཛུབ་རིས་བདེན་དཔང་ར་སྤྲོད་བྱེད་འགོ་ ++ ++ ++ ++ KSPlugin ++ ++ Failed to authenticate ++ བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་པ། ++ ++ ++ ++ ScreenSaverDialog ++ ++ reboot ++ བསྐྱར་དུ་བསྐྱར་དུ་བྱུང་བ་རེད། ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ Name ++ མིང་། ++ ++ ++ Recertification ++ བློར་འཛིན་པ། ++ ++ ++ Start fingerprint authentication ++ མཛུབ་རིས་བདེན་དཔང་ར་སྤྲོད་བྱེད་འགོ་ ++ ++ ++ Start face authentication ++ ངོ་གདོང་ནས་བདེན་དཔང་ར་སྤྲོད་བྱེད་ ++ ++ ++ ddd MMM dd HH:mm ++ ddd MMM dd HH:mm ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-screensaver-dialog.kk_KG.ts b/translations/kiran-screensaver-dialog.kk_KG.ts +new file mode 100644 +index 0000000..695af6c +--- /dev/null ++++ b/translations/kiran-screensaver-dialog.kk_KG.ts +@@ -0,0 +1,109 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ Аныктыгын текшере алган жок ++ ++ ++ ++ Frame ++ ++ reboot ++ кайра ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ suspend ++ токтотуу ++ ++ ++ switch to greeter ++ саламдашуу ++ ++ ++ power menu ++ күч менюсу ++ ++ ++ virtual keyboard ++ виртуалдык клавиатура ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ аты ++ ++ ++ Recertification ++ кайрадан ++ ++ ++ suspend ++ токтотуу ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ Failed to authenticate ++ Аныктыгын текшере алган жок ++ ++ ++ Start face authentication ++ Бет аныктыгын баштаңыз ++ ++ ++ Start fingerprint authentication ++ Манжа изинин аныктыгын текшерүүнү баштаңыз ++ ++ ++ ++ KSPlugin ++ ++ Failed to authenticate ++ Аныктыгын текшере алган жок ++ ++ ++ ++ ScreenSaverDialog ++ ++ reboot ++ кайра ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ suspend ++ токтотуу ++ ++ ++ Name ++ аты ++ ++ ++ Recertification ++ кайрадан ++ ++ ++ Start fingerprint authentication ++ Манжа изинин аныктыгын текшерүүнү баштаңыз ++ ++ ++ Start face authentication ++ Бет аныктыгын баштаңыз ++ ++ ++ ddd MMM dd HH:mm ++ ddd MMM dd HH: мм ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-screensaver-dialog.kk_KZ.ts b/translations/kiran-screensaver-dialog.kk_KZ.ts +new file mode 100644 +index 0000000..89a79d4 +--- /dev/null ++++ b/translations/kiran-screensaver-dialog.kk_KZ.ts +@@ -0,0 +1,109 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ Аутентификациялау жаңылысы ++ ++ ++ ++ Frame ++ ++ reboot ++ қайта жүктеу ++ ++ ++ shutdown ++ өшіру ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ switch to greeter ++ Сәлемдесушіге ауысу ++ ++ ++ power menu ++ қуат мәзірі ++ ++ ++ virtual keyboard ++ виртуалды пернетақта ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ Атауы ++ ++ ++ Recertification ++ Қайта сертификаттау ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ shutdown ++ өшіру ++ ++ ++ Failed to authenticate ++ Аутентификациялау жаңылысы ++ ++ ++ Start face authentication ++ Бет аутентификациясын бастау ++ ++ ++ Start fingerprint authentication ++ Дактилоскопиялық аутентификацияны бастау ++ ++ ++ ++ KSPlugin ++ ++ Failed to authenticate ++ Аутентификациялау жаңылысы ++ ++ ++ ++ ScreenSaverDialog ++ ++ reboot ++ қайта жүктеу ++ ++ ++ shutdown ++ өшіру ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ Name ++ Атауы ++ ++ ++ Recertification ++ Қайта сертификаттау ++ ++ ++ Start fingerprint authentication ++ Дактилоскопиялық аутентификацияны бастау ++ ++ ++ Start face authentication ++ Бет аутентификациясын бастау ++ ++ ++ ddd MMM dd HH:mm ++ dd MMM dd HH:mm ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-screensaver-dialog.mn_MN.ts b/translations/kiran-screensaver-dialog.mn_MN.ts +new file mode 100644 +index 0000000..2da0d72 +--- /dev/null ++++ b/translations/kiran-screensaver-dialog.mn_MN.ts +@@ -0,0 +1,109 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ Баталгаажуулалтыг хийж чадсангүй ++ ++ ++ ++ Frame ++ ++ reboot ++ дахин ++ ++ ++ shutdown ++ хаах ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ switch to greeter ++ мэндчилгээ ++ ++ ++ power menu ++ хүч ++ ++ ++ virtual keyboard ++ виртуал ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ Нэр ++ ++ ++ Recertification ++ Нөхөн сэргээлт ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ shutdown ++ хаах ++ ++ ++ Failed to authenticate ++ Баталгаажуулалтыг хийж чадсангүй ++ ++ ++ Start face authentication ++ Нүүрний баталгаажуулалтыг эхлүүл ++ ++ ++ Start fingerprint authentication ++ Хурууны хээ баталгаажуулах ++ ++ ++ ++ KSPlugin ++ ++ Failed to authenticate ++ Баталгаажуулалтыг хийж чадсангүй ++ ++ ++ ++ ScreenSaverDialog ++ ++ reboot ++ дахин ++ ++ ++ shutdown ++ хаах ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ Name ++ Нэр ++ ++ ++ Recertification ++ Нөхөн сэргээлт ++ ++ ++ Start fingerprint authentication ++ Хурууны хээ баталгаажуулах ++ ++ ++ Start face authentication ++ Нүүрний баталгаажуулалтыг эхлүүл ++ ++ ++ ddd MMM dd HH:mm ++ ddd MMM dd HH: мм ++ ++ ++ +\ No newline at end of file +diff --git a/translations/kiran-screensaver-dialog.ug_CN.ts b/translations/kiran-screensaver-dialog.ug_CN.ts +new file mode 100644 +index 0000000..0e739dc +--- /dev/null ++++ b/translations/kiran-screensaver-dialog.ug_CN.ts +@@ -0,0 +1,109 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ دەلىللەش مەغلۇپ بولدى ++ ++ ++ ++ Frame ++ ++ reboot ++ قايتا قوزغىلاڭ ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ switch to greeter ++ سالامغا ئالماشتۇرۇش ++ ++ ++ power menu ++ ھوقۇق تىزىملىكى ++ ++ ++ virtual keyboard ++ مەۋھۇم كۇنۇپكا تاختىسى ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ ئىسىم-فامىلىسى ++ ++ ++ Recertification ++ قايتا دەلىللەش ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ Failed to authenticate ++ دەلىللەش مەغلۇپ بولدى ++ ++ ++ Start face authentication ++ يۈزنى دەلىللەشنى باشلاش ++ ++ ++ Start fingerprint authentication ++ بارماق ئىزىنى دەلىللەشنى باشلاش ++ ++ ++ ++ KSPlugin ++ ++ Failed to authenticate ++ دەلىللەش مەغلۇپ بولدى ++ ++ ++ ++ ScreenSaverDialog ++ ++ reboot ++ قايتا قوزغىلاڭ ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ Name ++ ئىسىم-فامىلىسى ++ ++ ++ Recertification ++ قايتا دەلىللەش ++ ++ ++ Start fingerprint authentication ++ بارماق ئىزىنى دەلىللەشنى باشلاش ++ ++ ++ Start face authentication ++ يۈزنى دەلىللەشنى باشلاش ++ ++ ++ ddd MMM dd HH:mm ++ ddd MMM dd HH:mm ++ ++ ++ +\ No newline at end of file +diff --git a/translations/lightdm-kiran-greeter.bo_CN.ts b/translations/lightdm-kiran-greeter.bo_CN.ts +new file mode 100644 +index 0000000..efbb1a6 +--- /dev/null ++++ b/translations/lightdm-kiran-greeter.bo_CN.ts +@@ -0,0 +1,398 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ བདེན་དཔང་ར་སྤྲོད་བྱེད་མ་ཐུབ་པ། ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ མིང་། ++ ++ ++ Recertification ++ བློར་འཛིན་པ། ++ ++ ++ login other user ++ ཐོ་འགོད་བྱས་པའི་སྤྱོད་མཁན་གཞན་དག ++ ++ ++ session menu ++ ཚོགས་འདུའི་ཟས་ཐོ། ++ ++ ++ virtual keyboard ++ རྟོག་བཟོའི་མཐེབ་གཞོང ++ ++ ++ power menu ++ སྒུལ་ཤུགས་ཀྱི་ཟས་ཐོ། ++ ++ ++ hibernate ++ མངལ་གནས་སུ་སྦས་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ restart ++ ཡང་བསྐྱར་འགོ་ཚུགས་ ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ Return ++ ཕྱིར་སློག་པ། ++ ++ ++ Entry your name ++ ཁྱོད་ཀྱི་མིང་ནང་འཇུག་བྱེད་ ++ ++ ++ dddd MMM HH:mm ++ ddd MMM HH:mm ++ ++ ++ Start face authentication ++ ངོ་གདོང་ནས་བདེན་དཔང་ར་སྤྲོད་བྱེད་ ++ ++ ++ Start fingerprint authentication ++ མཛུབ་རིས་བདེན་དཔང་ར་སྤྲོད་བྱེད་འགོ་ ++ ++ ++ ++ Kiran::Greeter::Frame ++ ++ ++ login other ++ ཐོ་འགོད་གཞན་དག ++ ++ ++ ++ session menu ++ ཚོགས་འདུའི་ཟས་ཐོ། ++ ++ ++ ++ power menu ++ སྒུལ་ཤུགས་ཀྱི་ཟས་ཐོ། ++ ++ ++ ++ hibernate ++ མངལ་གནས་སུ་སྦས་པ། ++ ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ ++ restart ++ ཡང་བསྐྱར་འགོ་ཚུགས་ ++ ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ ++ virtual keyboard ++ རྟོག་བཟོའི་མཐེབ་གཞོང ++ ++ ++ ++ login other user ++ ཐོ་འགོད་བྱས་པའི་སྤྱོད་མཁན་གཞན་དག ++ ++ ++ ++ ++ return ++ ཕྱིར་སློག་པ། ++ ++ ++ ++ Kiran::Greeter::SettingWindow ++ ++ ++ general settings ++ སྤྱིར་བཏང་གི་སྒྲིག་བཀོད། ++ ++ ++ ++ autologin ++ རང་འགུལ་རིག་པ། ++ ++ ++ ++ auto login user(take effect after restart) ++ རང་འགུལ་གྱིས་ཐོ་འགོད་བྱེད་པའི་སྤྱོད་མཁན་(བསྐྱར་དུ་འགོ་ཚུགས་རྗེས་ནུས་པ་ ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ རང་འགུལ་གྱིས་ཐོ་འགོད་བྱེད་པའི་དུས་ཚོད་འགོར་འགྱངས་བྱས་པ་(དུས་ཚོད་སྐར་ཆ་ཙམ་ཡང་མ ++ ++ ++ ++ ++ Save ++ གྲོན་ཆུང་བྱེད་དགོས། ++ ++ ++ ++ ++ Reset ++ བསྐྱར་དུ་བཀོད་སྒྲིག་བྱེད་པ ++ ++ ++ ++ Scale Mode ++ གཞི་ཁྱོན་ལྡན་པའི་རྣམ་པ ++ ++ ++ ++ auto ++ རླངས་འཁོར། ++ ++ ++ ++ manual ++ ལག་དེབ། ++ ++ ++ ++ disable ++ དབང་པོ་སྐྱོན་ཅན། ++ ++ ++ ++ Scale Factor ++ གཞི་ཁྱོན་གྱི་རྒྱུ་རྐྱེན། ++ ++ ++ ++ Enable manual input user login ++ ལག་པས་ནང་འཇུག་བྱེད་པའི་སྤྱོད་མཁན་གྱི་ཐོ་འགོད་ ++ ++ ++ ++ Show User List ++ སྤྱོད་མཁན་གྱི་མིང་ཐོ་མངོན་ ++ ++ ++ ++ ++ Configuration changed ++ བཀོད་སྒྲིག་ལ་འགྱུར་ལྡོག་བྱུང་ ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ ཕྱི་རོལ་གྱི་བཀོད་སྒྲིག་ཡིག་ཆ་ལ་འགྱུར་ལྡོག་བྱུང་ཡོད། ++གལ་ཏེ་ཁྱོད་ཀྱིས་གྲོན་ཆུང་བྱས་ན། ཕྱི་རོལ་གྱི་འགྱུར་ལྡོག་ཚང་མ་ཚད་ལས་བརྒལ་ནས་བྲིས་པ་ཡིན། ++བེད་མེད་དུ་བསྐྱུར་ནས་བཟོ་བཅོས་བརྒྱབ་རྗེས་ཡང་བསྐྱར་བཀོད་སྒྲིག་གསར་པ་བྱས། ++ ++ ++ ++ ++ Save failed, reload ++ གྲོན་ཆུང་བྱས་ནས་ཕམ་ཉེས་བྱུང་རྗེས་ཡང་བསྐྱར་ཐེག་ ++ ++ ++ ++ ++ Saved successfully ++ ཉར་ཚགས་ལེགས་འགྲུབ་བྱུང་བ། ++ ++ ++ ++ Save failed: %1 ++ ཉར་ཚགས་བྱས་ནས་ཕམ་ཁ་བྱུང་བ་སྟེ། %1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ ཁྱེད་ཀྱིས་དེའི་ནང་གི་བསལ་འདེམས་གཉིས་ཀྱི་ཡ་གྱལ་ཞིག་ཁ་ཕྱེ་བར་ཁག་ཐེག་བྱེད་རོགས། ++ ++ ++ ++ Kiran::GreeterFrame ++ ++ session menu ++ ཚོགས་འདུའི་ཟས་ཐོ། ++ ++ ++ power menu ++ སྒུལ་ཤུགས་ཀྱི་ཟས་ཐོ། ++ ++ ++ hibernate ++ མངལ་གནས་སུ་སྦས་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ restart ++ ཡང་བསྐྱར་འགོ་ཚུགས་ ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ virtual keyboard ++ རྟོག་བཟོའི་མཐེབ་གཞོང ++ ++ ++ login other user ++ ཐོ་འགོད་བྱས་པའི་སྤྱོད་མཁན་གཞན་དག ++ ++ ++ ++ LoginButton ++ ++ ++ Form ++ རྣམ་པ། ++ ++ ++ ++ TextLabel ++ ཡི་གེ་ལ་པེར་གྱིས་བཤད་རྒྱུར ++ ++ ++ ++ login ++ ཐོ་འགོད་བྱེད་པ། ++ ++ ++ ++ LoginContentWindow ++ ++ Name ++ མིང་། ++ ++ ++ Recertification ++ བློར་འཛིན་པ། ++ ++ ++ login other user ++ ཐོ་འགོད་བྱས་པའི་སྤྱོད་མཁན་གཞན་དག ++ ++ ++ session menu ++ ཚོགས་འདུའི་ཟས་ཐོ། ++ ++ ++ virtual keyboard ++ རྟོག་བཟོའི་མཐེབ་གཞོང ++ ++ ++ power menu ++ སྒུལ་ཤུགས་ཀྱི་ཟས་ཐོ། ++ ++ ++ hibernate ++ མངལ་གནས་སུ་སྦས་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ restart ++ ཡང་བསྐྱར་འགོ་ཚུགས་ ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ Return ++ ཕྱིར་སློག་པ། ++ ++ ++ Entry your name ++ ཁྱོད་ཀྱི་མིང་ནང་འཇུག་བྱེད་ ++ ++ ++ dddd MMM HH:mm ++ ddd MMM HH:mm ++ ++ ++ Start face authentication ++ ངོ་གདོང་ནས་བདེན་དཔང་ར་སྤྲོད་བྱེད་ ++ ++ ++ Start fingerprint authentication ++ མཛུབ་རིས་བདེན་དཔང་ར་སྤྲོད་བྱེད་འགོ་ ++ ++ ++ ++ ScreenSaverDialog ++ ++ Name ++ མིང་། ++ ++ ++ Recertification ++ བློར་འཛིན་པ། ++ ++ ++ shutdown ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ suspend ++ ལས་མཚམས་བཞག་པ། ++ ++ ++ Start fingerprint authentication ++ མཛུབ་རིས་བདེན་དཔང་ར་སྤྲོད་བྱེད་འགོ་ ++ ++ ++ Start face authentication ++ ངོ་གདོང་ནས་བདེན་དཔང་ར་སྤྲོད་བྱེད་ ++ ++ ++ ++ UserItem ++ ++ ++ Form ++ རྣམ་པ། ++ ++ ++ ++ Tom Hardy ++ ཐང་མུའུ་ཧ་ཏི། ++ ++ ++ ++ UserList ++ ++ ++ Form ++ རྣམ་པ། ++ ++ ++ +\ No newline at end of file +diff --git a/translations/lightdm-kiran-greeter.kk_KG.ts b/translations/lightdm-kiran-greeter.kk_KG.ts +new file mode 100644 +index 0000000..9fc48f3 +--- /dev/null ++++ b/translations/lightdm-kiran-greeter.kk_KG.ts +@@ -0,0 +1,398 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ Аныктыгын текшере алган жок ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ аты ++ ++ ++ Recertification ++ кайрадан ++ ++ ++ login other user ++ башка колдонуучуга кирүү ++ ++ ++ session menu ++ сессия менюсу ++ ++ ++ virtual keyboard ++ виртуалдык клавиатура ++ ++ ++ power menu ++ күч менюсу ++ ++ ++ hibernate ++ уйку ++ ++ ++ suspend ++ токтотуу ++ ++ ++ restart ++ кайра ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ Return ++ кайтаруу ++ ++ ++ Entry your name ++ Атыңызды жазыңыз ++ ++ ++ dddd MMM HH:mm ++ dddd MMM HH: мм ++ ++ ++ Start face authentication ++ Бет аныктыгын баштаңыз ++ ++ ++ Start fingerprint authentication ++ Манжа изинин аныктыгын текшерүүнү баштаңыз ++ ++ ++ ++ Kiran::Greeter::Frame ++ ++ ++ login other ++ башка кирүү ++ ++ ++ ++ session menu ++ сессия менюсу ++ ++ ++ ++ power menu ++ күч менюсу ++ ++ ++ ++ hibernate ++ уйку ++ ++ ++ ++ suspend ++ токтотуу ++ ++ ++ ++ restart ++ кайра ++ ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ ++ virtual keyboard ++ виртуалдык клавиатура ++ ++ ++ ++ login other user ++ башка колдонуучуга кирүү ++ ++ ++ ++ ++ return ++ кайтаруу ++ ++ ++ ++ Kiran::Greeter::SettingWindow ++ ++ ++ general settings ++ жалпы орнотуулар ++ ++ ++ ++ autologin ++ autologin ++ ++ ++ ++ auto login user(take effect after restart) ++ авто кирүү колдонуучусу ( өчүрүп күйгүзгөндөн кийин күчүнө кирет ) ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ авто кирүү кечигүүсү ( секунда ) ( ) өчүрүп күйгүзгөндөн кийин күчүнө кирет <TAG1> ++ ++ ++ ++ ++ Save ++ сактоо ++ ++ ++ ++ ++ Reset ++ баштапкы абалга келтирүү ++ ++ ++ ++ Scale Mode ++ Масштаб режими ++ ++ ++ ++ auto ++ авто ++ ++ ++ ++ manual ++ кол ++ ++ ++ ++ disable ++ өчүрүү ++ ++ ++ ++ Scale Factor ++ Масштабдуу фактор ++ ++ ++ ++ Enable manual input user login ++ Кол менен киргизүү колдонуучусун иштетиңиз ++ ++ ++ ++ Show User List ++ Колдонуучу тизмесин көрсөтүү ++ ++ ++ ++ ++ Configuration changed ++ Тарамдалуу өзгөрдү ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ Тышкы конфигурация файлы өзгөрдү ++Эгер сактоону чечсеңиз, бардык тышкы өзгөрүүлөр кайра жазылат ++Өзгөртүүнү жокко чыгарып, жаңы конфигурацияны кайра жүктөө үчүн жарактан чыгарууну тандаңыз ++ ++ ++ ++ ++ Save failed, reload ++ Сакталбай калды, кайра жүктөңүз ++ ++ ++ ++ ++ Saved successfully ++ Ийгиликтүү сакталды ++ ++ ++ ++ Save failed: %1 ++ Сактоо ишке ашкан жок:% 1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ Сураныч, эки варианттын бири күйгүзүлгөндүгүн текшериңиз! ++ ++ ++ ++ Kiran::GreeterFrame ++ ++ session menu ++ сессия менюсу ++ ++ ++ power menu ++ күч менюсу ++ ++ ++ hibernate ++ уйку ++ ++ ++ suspend ++ токтотуу ++ ++ ++ restart ++ кайра ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ virtual keyboard ++ виртуалдык клавиатура ++ ++ ++ login other user ++ башка колдонуучуга кирүү ++ ++ ++ ++ LoginButton ++ ++ ++ Form ++ форма ++ ++ ++ ++ TextLabel ++ TextLabel ++ ++ ++ ++ login ++ кирүү ++ ++ ++ ++ LoginContentWindow ++ ++ Name ++ аты ++ ++ ++ Recertification ++ кайрадан ++ ++ ++ login other user ++ башка колдонуучуга кирүү ++ ++ ++ session menu ++ сессия менюсу ++ ++ ++ virtual keyboard ++ виртуалдык клавиатура ++ ++ ++ power menu ++ күч менюсу ++ ++ ++ hibernate ++ уйку ++ ++ ++ suspend ++ токтотуу ++ ++ ++ restart ++ кайра ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ Return ++ кайтаруу ++ ++ ++ Entry your name ++ Атыңызды жазыңыз ++ ++ ++ dddd MMM HH:mm ++ dddd MMM HH: мм ++ ++ ++ Start face authentication ++ Бет аныктыгын баштаңыз ++ ++ ++ Start fingerprint authentication ++ Манжа изинин аныктыгын текшерүүнү баштаңыз ++ ++ ++ ++ ScreenSaverDialog ++ ++ Name ++ аты ++ ++ ++ Recertification ++ кайрадан ++ ++ ++ shutdown ++ өчүрүү ++ ++ ++ suspend ++ токтотуу ++ ++ ++ Start fingerprint authentication ++ Манжа изинин аныктыгын текшерүүнү баштаңыз ++ ++ ++ Start face authentication ++ Бет аныктыгын баштаңыз ++ ++ ++ ++ UserItem ++ ++ ++ Form ++ форма ++ ++ ++ ++ Tom Hardy ++ Том Харди ++ ++ ++ ++ UserList ++ ++ ++ Form ++ форма ++ ++ ++ +\ No newline at end of file +diff --git a/translations/lightdm-kiran-greeter.kk_KZ.ts b/translations/lightdm-kiran-greeter.kk_KZ.ts +new file mode 100644 +index 0000000..f4d41b0 +--- /dev/null ++++ b/translations/lightdm-kiran-greeter.kk_KZ.ts +@@ -0,0 +1,398 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ Аутентификациялау жаңылысы ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ Атауы ++ ++ ++ Recertification ++ Қайта сертификаттау ++ ++ ++ login other user ++ басқа пайдаланушыға кіру ++ ++ ++ session menu ++ сеанс мәзірі ++ ++ ++ virtual keyboard ++ виртуалды пернетақта ++ ++ ++ power menu ++ қуат мәзірі ++ ++ ++ hibernate ++ Хибернате ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ restart ++ қайта іске қосу ++ ++ ++ shutdown ++ өшіру ++ ++ ++ Return ++ Қайтарым ++ ++ ++ Entry your name ++ Атыңызды жазу ++ ++ ++ dddd MMM HH:mm ++ d MMM HH:мм ++ ++ ++ Start face authentication ++ Бет аутентификациясын бастау ++ ++ ++ Start fingerprint authentication ++ Дактилоскопиялық аутентификацияны бастау ++ ++ ++ ++ Kiran::Greeter::Frame ++ ++ ++ login other ++ басқа жүйеге кіру ++ ++ ++ ++ session menu ++ сеанс мәзірі ++ ++ ++ ++ power menu ++ қуат мәзірі ++ ++ ++ ++ hibernate ++ Хибернате ++ ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ ++ restart ++ қайта іске қосу ++ ++ ++ ++ shutdown ++ өшіру ++ ++ ++ ++ virtual keyboard ++ виртуалды пернетақта ++ ++ ++ ++ login other user ++ басқа пайдаланушыға кіру ++ ++ ++ ++ ++ return ++ қайтарым ++ ++ ++ ++ Kiran::Greeter::SettingWindow ++ ++ ++ general settings ++ жалпы параметрлер ++ ++ ++ ++ autologin ++ автологин ++ ++ ++ ++ auto login user(take effect after restart) ++ авто кіру пайдаланушысы (қайта іске қосудан кейін күшіне енеді) ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ авто кіру кідірісі(секунд)(қайта іске қосылғаннан кейін күшіне енеді) ++ ++ ++ ++ ++ Save ++ Сақтау ++ ++ ++ ++ ++ Reset ++ Ысыру ++ ++ ++ ++ Scale Mode ++ Масштабтау режімі ++ ++ ++ ++ auto ++ автомобиль ++ ++ ++ ++ manual ++ қолмен ++ ++ ++ ++ disable ++ өшіру ++ ++ ++ ++ Scale Factor ++ Масштаб факторы ++ ++ ++ ++ Enable manual input user login ++ Қолмен енгізу пайдаланушысының кіруін қосу ++ ++ ++ ++ Show User List ++ Пайдаланушы тізімін көрсету ++ ++ ++ ++ ++ Configuration changed ++ Баптау өзгерді ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ Сыртқы баптау файлы өзгерді ++Сақтауды таңдасаңыз, барлық сыртқы өзгерістер қайта жазылады ++Өзгертуді алып тастау және жаңа конфигурацияны қайта жүктеу үшін алып тастауды таңдау ++ ++ ++ ++ ++ Save failed, reload ++ Сақтау жаңылысы, қайта жүктеу ++ ++ ++ ++ ++ Saved successfully ++ Сәтті сақталды ++ ++ ++ ++ Save failed: %1 ++ Сақтау жаңылысы:% 1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ Екі нұсқаның біреуін қосуды сұраймын! ++ ++ ++ ++ Kiran::GreeterFrame ++ ++ session menu ++ сеанс мәзірі ++ ++ ++ power menu ++ қуат мәзірі ++ ++ ++ hibernate ++ Хибернате ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ restart ++ қайта іске қосу ++ ++ ++ shutdown ++ өшіру ++ ++ ++ virtual keyboard ++ виртуалды пернетақта ++ ++ ++ login other user ++ басқа пайдаланушыға кіру ++ ++ ++ ++ LoginButton ++ ++ ++ Form ++ Пішін ++ ++ ++ ++ TextLabel ++ TextLabel ++ ++ ++ ++ login ++ кіру ++ ++ ++ ++ LoginContentWindow ++ ++ Name ++ Атауы ++ ++ ++ Recertification ++ Қайта сертификаттау ++ ++ ++ login other user ++ басқа пайдаланушыға кіру ++ ++ ++ session menu ++ сеанс мәзірі ++ ++ ++ virtual keyboard ++ виртуалды пернетақта ++ ++ ++ power menu ++ қуат мәзірі ++ ++ ++ hibernate ++ Хибернате ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ restart ++ қайта іске қосу ++ ++ ++ shutdown ++ өшіру ++ ++ ++ Return ++ Қайтарым ++ ++ ++ Entry your name ++ Атыңызды жазу ++ ++ ++ dddd MMM HH:mm ++ d MMM HH:мм ++ ++ ++ Start face authentication ++ Бет аутентификациясын бастау ++ ++ ++ Start fingerprint authentication ++ Дактилоскопиялық аутентификацияны бастау ++ ++ ++ ++ ScreenSaverDialog ++ ++ Name ++ Атауы ++ ++ ++ Recertification ++ Қайта сертификаттау ++ ++ ++ shutdown ++ өшіру ++ ++ ++ suspend ++ тоқтата тұру ++ ++ ++ Start fingerprint authentication ++ Дактилоскопиялық аутентификацияны бастау ++ ++ ++ Start face authentication ++ Бет аутентификациясын бастау ++ ++ ++ ++ UserItem ++ ++ ++ Form ++ Пішін ++ ++ ++ ++ Tom Hardy ++ Том Харди ++ ++ ++ ++ UserList ++ ++ ++ Form ++ Пішін ++ ++ ++ +\ No newline at end of file +diff --git a/translations/lightdm-kiran-greeter.mn_MN.ts b/translations/lightdm-kiran-greeter.mn_MN.ts +new file mode 100644 +index 0000000..4e1f8f0 +--- /dev/null ++++ b/translations/lightdm-kiran-greeter.mn_MN.ts +@@ -0,0 +1,398 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ Баталгаажуулалтыг хийж чадсангүй ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ Нэр ++ ++ ++ Recertification ++ Нөхөн сэргээлт ++ ++ ++ login other user ++ нэвтрэх ++ ++ ++ session menu ++ хуралдааны цэс ++ ++ ++ virtual keyboard ++ виртуал ++ ++ ++ power menu ++ хүч ++ ++ ++ hibernate ++ хибер ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ restart ++ дахин ++ ++ ++ shutdown ++ хаах ++ ++ ++ Return ++ Буцах ++ ++ ++ Entry your name ++ Нэрээ оруулна уу ++ ++ ++ dddd MMM HH:mm ++ dddd MMM HH: мм ++ ++ ++ Start face authentication ++ Нүүрний баталгаажуулалтыг эхлүүл ++ ++ ++ Start fingerprint authentication ++ Хурууны хээ баталгаажуулах ++ ++ ++ ++ Kiran::Greeter::Frame ++ ++ ++ login other ++ нэвтрэх ++ ++ ++ ++ session menu ++ хуралдааны цэс ++ ++ ++ ++ power menu ++ хүч ++ ++ ++ ++ hibernate ++ хибер ++ ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ ++ restart ++ дахин ++ ++ ++ ++ shutdown ++ хаах ++ ++ ++ ++ virtual keyboard ++ виртуал ++ ++ ++ ++ login other user ++ нэвтрэх ++ ++ ++ ++ ++ return ++ буцах ++ ++ ++ ++ Kiran::Greeter::SettingWindow ++ ++ ++ general settings ++ ерөнхий ++ ++ ++ ++ autologin ++ аутологи ++ ++ ++ ++ auto login user(take effect after restart) ++ авто нэвтрэх хэрэглэгч ( ) дахин ажиллуулсны дараа хүчин төгөлдөр болно ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ авто нэвтрэх саатал ( секундын хэмжээ ) ( ) <TAG1> дахин ажиллуулсны дараа хүчин төгөлдөр болно <TAG1> ++ ++ ++ ++ ++ Save ++ Хадгалах ++ ++ ++ ++ ++ Reset ++ Дахин тохируулах ++ ++ ++ ++ Scale Mode ++ Хэмжээ ++ ++ ++ ++ auto ++ авто ++ ++ ++ ++ manual ++ гарын ++ ++ ++ ++ disable ++ идэвхгүй ++ ++ ++ ++ Scale Factor ++ Хэмжээний хүчин ++ ++ ++ ++ Enable manual input user login ++ Гар оролт хэрэглэгчийн нэвтрэх ++ ++ ++ ++ Show User List ++ Хэрэглэгчийн жагсаалтыг харуулах ++ ++ ++ ++ ++ Configuration changed ++ Тохируулга өөрчлөгдсөн ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ Гадаад тохиргооны файл өөрчлөгдсөн ++Хэрэв та хэмнэхийг сонгосон бол бүх гадаад өөрчлөлтийг дарж бичих болно ++Өөрчлөлтийг хаяхын тулд дискээ сонгоод шинэ тохиргоог дахин ачаална уу ++ ++ ++ ++ ++ Save failed, reload ++ Амжилтгүй, дахин ачаална ++ ++ ++ ++ ++ Saved successfully ++ Амжилттай ++ ++ ++ ++ Save failed: %1 ++ Амжилтгүй болсон:% 1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ Хоёр хувилбарын аль нэгийг нь асаахыг баталгаажуулна уу! ++ ++ ++ ++ Kiran::GreeterFrame ++ ++ session menu ++ хуралдааны цэс ++ ++ ++ power menu ++ хүч ++ ++ ++ hibernate ++ хибер ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ restart ++ дахин ++ ++ ++ shutdown ++ хаах ++ ++ ++ virtual keyboard ++ виртуал ++ ++ ++ login other user ++ нэвтрэх ++ ++ ++ ++ LoginButton ++ ++ ++ Form ++ Маягт ++ ++ ++ ++ TextLabel ++ Текст ++ ++ ++ ++ login ++ нэвтрэх ++ ++ ++ ++ LoginContentWindow ++ ++ Name ++ Нэр ++ ++ ++ Recertification ++ Нөхөн сэргээлт ++ ++ ++ login other user ++ нэвтрэх ++ ++ ++ session menu ++ хуралдааны цэс ++ ++ ++ virtual keyboard ++ виртуал ++ ++ ++ power menu ++ хүч ++ ++ ++ hibernate ++ хибер ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ restart ++ дахин ++ ++ ++ shutdown ++ хаах ++ ++ ++ Return ++ Буцах ++ ++ ++ Entry your name ++ Нэрээ оруулна уу ++ ++ ++ dddd MMM HH:mm ++ dddd MMM HH: мм ++ ++ ++ Start face authentication ++ Нүүрний баталгаажуулалтыг эхлүүл ++ ++ ++ Start fingerprint authentication ++ Хурууны хээ баталгаажуулах ++ ++ ++ ++ ScreenSaverDialog ++ ++ Name ++ Нэр ++ ++ ++ Recertification ++ Нөхөн сэргээлт ++ ++ ++ shutdown ++ хаах ++ ++ ++ suspend ++ түр зогсоох ++ ++ ++ Start fingerprint authentication ++ Хурууны хээ баталгаажуулах ++ ++ ++ Start face authentication ++ Нүүрний баталгаажуулалтыг эхлүүл ++ ++ ++ ++ UserItem ++ ++ ++ Form ++ Маягт ++ ++ ++ ++ Tom Hardy ++ Том Харди ++ ++ ++ ++ UserList ++ ++ ++ Form ++ Маягт ++ ++ ++ +\ No newline at end of file +diff --git a/translations/lightdm-kiran-greeter.ug_CN.ts b/translations/lightdm-kiran-greeter.ug_CN.ts +new file mode 100644 +index 0000000..3061355 +--- /dev/null ++++ b/translations/lightdm-kiran-greeter.ug_CN.ts +@@ -0,0 +1,398 @@ ++ ++ ++ AuthProxy ++ ++ Failed to authenticate ++ دەلىللەش مەغلۇپ بولدى ++ ++ ++ ++ GreeterLoginWindow ++ ++ Name ++ ئىسىم-فامىلىسى ++ ++ ++ Recertification ++ قايتا دەلىللەش ++ ++ ++ login other user ++ باشقا ئىشلەتكۈچى كىرىش ++ ++ ++ session menu ++ يىغىن تىزىملىكى ++ ++ ++ virtual keyboard ++ مەۋھۇم كۇنۇپكا تاختىسى ++ ++ ++ power menu ++ ھوقۇق تىزىملىكى ++ ++ ++ hibernate ++ hibernate ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ restart ++ قايتا قوزغىتىش ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ Return ++ قايتىش ++ ++ ++ Entry your name ++ ئىسىم-فامىلىڭىز كىرىش ++ ++ ++ dddd MMM HH:mm ++ dddd MMM HH:mm ++ ++ ++ Start face authentication ++ يۈزنى دەلىللەشنى باشلاش ++ ++ ++ Start fingerprint authentication ++ بارماق ئىزىنى دەلىللەشنى باشلاش ++ ++ ++ ++ Kiran::Greeter::Frame ++ ++ ++ login other ++ باشقا كىرىش ++ ++ ++ ++ session menu ++ يىغىن تىزىملىكى ++ ++ ++ ++ power menu ++ ھوقۇق تىزىملىكى ++ ++ ++ ++ hibernate ++ hibernate ++ ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ ++ restart ++ قايتا قوزغىتىش ++ ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ ++ virtual keyboard ++ مەۋھۇم كۇنۇپكا تاختىسى ++ ++ ++ ++ login other user ++ باشقا ئىشلەتكۈچى كىرىش ++ ++ ++ ++ ++ return ++ قايتىش ++ ++ ++ ++ Kiran::Greeter::SettingWindow ++ ++ ++ general settings ++ ئادەتتىكى تەڭشەكلەر ++ ++ ++ ++ autologin ++ autologin ++ ++ ++ ++ auto login user(take effect after restart) ++ ئاپتوماتىك كىرىش ئىشلەتكۈچى (قايتا قوزغاتقاندىن كېيىن ئۈنۈمگە ئېرىش) ++ ++ ++ ++ auto login delay(seconds)(take effect after restart) ++ ئاپتۇماتىك كىرىشنى كېچىكتۈرۈش(سېكۇنت)(قايتا قوزغاتقاندىن كېيىن ئۈنۈمگە ئېرىش) ++ ++ ++ ++ ++ Save ++ ساقلاش ++ ++ ++ ++ ++ Reset ++ قايتا تىڭشى ++ ++ ++ ++ Scale Mode ++ كۆلەم شەكلى ++ ++ ++ ++ auto ++ ماشىنا ++ ++ ++ ++ manual ++ قوللانما ++ ++ ++ ++ disable ++ ئەمەلدىن قالىدۇ ++ ++ ++ ++ Scale Factor ++ كۆلەم ئامىلى ++ ++ ++ ++ Enable manual input user login ++ قولدا كىرگۈزگۈچىنى قوزغىتىش ++ ++ ++ ++ Show User List ++ ئىشلەتكۈچىلەر تىزىملىكىنى كۆرسەت ++ ++ ++ ++ ++ Configuration changed ++ سەپلىمە ئۆزگەرتىلدى ++ ++ ++ ++ ++ The external configuration file has changed ++If you choose to save, all external changes will be overwritten ++Select discard to discard the modification and reload the new configuration ++ سىرتقى سەپلىمە ھۆججىتى ئۆزگەردى ++ساقلاشنى تاللىسىڭىز، بارلىق تاشقى ئۆزگىرىشنىڭ ئۈستىگە يېزىپ قويۇلىدۇ ++ئۆزگەرتىشنى بىكار قىلىش ۋە يېڭى سەپلىمىنى قايتا قاچىلاشنى تاللاڭ ++ ++ ++ ++ ++ Save failed, reload ++ تېجەش مەغلۇپ بولدى، قايتا قاچىلاش ++ ++ ++ ++ ++ Saved successfully ++ مۇۋەپپىقىيەتلىك ساقلىدى ++ ++ ++ ++ Save failed: %1 ++ ساقلاش مەغلۇپ بولدى:٪1 ++ ++ ++ ++ Please ensure that one of the two options is turned on! ++ بۇ ئىككى تاللاشنىڭ بىرىنىڭ ئېچىلىپ بولۇشىغا كاپالەتلىك قىلىڭ! ++ ++ ++ ++ Kiran::GreeterFrame ++ ++ session menu ++ يىغىن تىزىملىكى ++ ++ ++ power menu ++ ھوقۇق تىزىملىكى ++ ++ ++ hibernate ++ hibernate ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ restart ++ قايتا قوزغىتىش ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ virtual keyboard ++ مەۋھۇم كۇنۇپكا تاختىسى ++ ++ ++ login other user ++ باشقا ئىشلەتكۈچى كىرىش ++ ++ ++ ++ LoginButton ++ ++ ++ Form ++ جەدۋەل ++ ++ ++ ++ TextLabel ++ TextLabel ++ ++ ++ ++ login ++ كىرىش ++ ++ ++ ++ LoginContentWindow ++ ++ Name ++ ئىسىم-فامىلىسى ++ ++ ++ Recertification ++ قايتا دەلىللەش ++ ++ ++ login other user ++ باشقا ئىشلەتكۈچى كىرىش ++ ++ ++ session menu ++ يىغىن تىزىملىكى ++ ++ ++ virtual keyboard ++ مەۋھۇم كۇنۇپكا تاختىسى ++ ++ ++ power menu ++ ھوقۇق تىزىملىكى ++ ++ ++ hibernate ++ hibernate ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ restart ++ قايتا قوزغىتىش ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ Return ++ قايتىش ++ ++ ++ Entry your name ++ ئىسىم-فامىلىڭىز كىرىش ++ ++ ++ dddd MMM HH:mm ++ dddd MMM HH:mm ++ ++ ++ Start face authentication ++ يۈزنى دەلىللەشنى باشلاش ++ ++ ++ Start fingerprint authentication ++ بارماق ئىزىنى دەلىللەشنى باشلاش ++ ++ ++ ++ ScreenSaverDialog ++ ++ Name ++ ئىسىم-فامىلىسى ++ ++ ++ Recertification ++ قايتا دەلىللەش ++ ++ ++ shutdown ++ تاقاش ++ ++ ++ suspend ++ توختىتىپ قويۇش ++ ++ ++ Start fingerprint authentication ++ بارماق ئىزىنى دەلىللەشنى باشلاش ++ ++ ++ Start face authentication ++ يۈزنى دەلىللەشنى باشلاش ++ ++ ++ ++ UserItem ++ ++ ++ Form ++ جەدۋەل ++ ++ ++ ++ Tom Hardy ++ Tom Hardy ++ ++ ++ ++ UserList ++ ++ ++ Form ++ جەدۋەل ++ ++ ++ +\ No newline at end of file +-- +2.33.0 + diff --git a/0002-fix-user-icon-fix-the-failure-to-update-the-drawing-.patch b/0002-fix-user-icon-fix-the-failure-to-update-the-drawing-.patch deleted file mode 100644 index cb4858ed9c9ed7c31143221068445ab021ff8111..0000000000000000000000000000000000000000 --- a/0002-fix-user-icon-fix-the-failure-to-update-the-drawing-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From d80a8b3b5dc5ddf841474ce1fd3024483e6adb9b Mon Sep 17 00:00:00 2001 -From: liuxinhao -Date: Fri, 18 Nov 2022 13:45:49 +0800 -Subject: [PATCH 2/6] fix(user icon): fix the failure to update the drawing in - time when setting the default avatar -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- 修复用户头像设置默认头像时未及时更新绘制 ---- - lib/common-widgets/user-avatar.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/lib/common-widgets/user-avatar.cpp b/lib/common-widgets/user-avatar.cpp -index 9394818..7869569 100644 ---- a/lib/common-widgets/user-avatar.cpp -+++ b/lib/common-widgets/user-avatar.cpp -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #define DEFAULT_USER_AVATAR ":/common-widgets-images/user_180.png" - -@@ -81,7 +82,7 @@ QPixmap UserAvatar::scalePixmapAdjustSize (const QPixmap &pixmap) - QPixmap temp = pixmap.scaled(radius * 2, radius * 2, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); - return temp; - } --#include -+ - void UserAvatar::setDefaultImage () - { - if (!m_pixmap.load(DEFAULT_USER_AVATAR)) -@@ -90,4 +91,5 @@ void UserAvatar::setDefaultImage () - return; - } - m_scaledPixmap = scalePixmapAdjustSize(m_pixmap); -+ update(); - } --- -2.33.0 - diff --git a/0003-fix-virtualkeyboard-Invoke-virtual-keyboard-initiali.patch b/0003-fix-virtualkeyboard-Invoke-virtual-keyboard-initiali.patch deleted file mode 100644 index c4e989bfc3993b3df1d05d3b731c0881e265b85f..0000000000000000000000000000000000000000 --- a/0003-fix-virtualkeyboard-Invoke-virtual-keyboard-initiali.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 5281b560fbb8a241b5fcc7dbc8f3634602420476 Mon Sep 17 00:00:00 2001 -From: liuxinhao -Date: Tue, 6 Dec 2022 09:45:21 +0800 -Subject: [PATCH 3/6] fix(virtualkeyboard): Invoke virtual keyboard - initialization during plug-in initialization -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- 在插件初始化时调用虚拟键盘初始化 ---- - screensaver-dialog/src/plugin.cpp | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/screensaver-dialog/src/plugin.cpp b/screensaver-dialog/src/plugin.cpp -index f8f036f..8699d3c 100644 ---- a/screensaver-dialog/src/plugin.cpp -+++ b/screensaver-dialog/src/plugin.cpp -@@ -12,12 +12,13 @@ - * Author: liuxinhao - */ - #include "plugin.h" -+#include "config.h" -+#include "screensaver-dialog.h" -+#include "virtual-keyboard.h" - - #include - #include - #include --#include "config.h" --#include "screensaver-dialog.h" - - - #define TRANSLATION_FILE_DIR "/usr/share/kiran-screensaver-dialog/translations/" -@@ -46,6 +47,13 @@ int KSPlugin::init(Interface* ksInterface) - KLOG_WARNING() << "can't load kiran-screensaver-dialog translator"; - } - -+#ifdef VIRTUAL_KEYBOARD -+ if( !VirtualKeyboard::instance()->init() ) -+ { -+ KLOG_WARNING() << "init virtual keyboard failed!"; -+ } -+#endif -+ - return 0; - } - --- -2.33.0 - diff --git a/0004-fix-SIGTERM-Processing-Use-socket-to-notify-SIGTERM-.patch b/0004-fix-SIGTERM-Processing-Use-socket-to-notify-SIGTERM-.patch deleted file mode 100644 index ef2ae2a0659c8b20ca8de48ecf7879d9f712fc18..0000000000000000000000000000000000000000 --- a/0004-fix-SIGTERM-Processing-Use-socket-to-notify-SIGTERM-.patch +++ /dev/null @@ -1,311 +0,0 @@ -From b7a069a36d6e61977f32b2a24d84899182e38149 Mon Sep 17 00:00:00 2001 -From: liuxinhao -Date: Thu, 8 Dec 2022 10:42:44 +0800 -Subject: [PATCH 4/6] fix(SIGTERM Processing): Use socket to notify SIGTERM - signal, and process SIGTERM signal in the main thread to avoid abnormal exit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- 使用socket通知SIGTERM信号,在主线程里处理SIGTERM信号,避免非正常退出,修复之前QLightdm::Greeter释放过早导致AuthLightdm调用接口时崩溃问题 ---- - lib/auth-proxy/auth-lightdm.cpp | 24 ++++++------- - lib/auth-proxy/auth-lightdm.h | 5 +-- - lightdm-greeter/src/greeter-login-window.cpp | 24 ++++++------- - lightdm-greeter/src/greeter-login-window.h | 3 +- - lightdm-greeter/src/main.cpp | 37 ++++++++++++++------ - 5 files changed, 56 insertions(+), 37 deletions(-) - -diff --git a/lib/auth-proxy/auth-lightdm.cpp b/lib/auth-proxy/auth-lightdm.cpp -index 59e7849..e9193e9 100644 ---- a/lib/auth-proxy/auth-lightdm.cpp -+++ b/lib/auth-proxy/auth-lightdm.cpp -@@ -16,13 +16,13 @@ - #include "auth-lightdm.h" - #include - --AuthLightdm::AuthLightdm(QLightDM::Greeter* greeterAuth, QObject* parent) -+AuthLightdm::AuthLightdm(QSharedPointer greeterAuth, QObject* parent) - : AuthBase(parent), -- m_greeterAuth(greeterAuth) -+ m_greeterPtrAuth(greeterAuth) - { -- connect(m_greeterAuth,&QLightDM::Greeter::showPrompt,this,&AuthLightdm::handleGreeterAuthShowPrompt); -- connect(m_greeterAuth,&QLightDM::Greeter::showMessage,this,&AuthLightdm::handleGreeterAuthShowMessage); -- connect(m_greeterAuth,&QLightDM::Greeter::authenticationComplete, this,&AuthLightdm::handleGreeterAuthComplete); -+ connect(m_greeterPtrAuth.data(),&QLightDM::Greeter::showPrompt,this,&AuthLightdm::handleGreeterAuthShowPrompt); -+ connect(m_greeterPtrAuth.data(),&QLightDM::Greeter::showMessage,this,&AuthLightdm::handleGreeterAuthShowMessage); -+ connect(m_greeterPtrAuth.data(),&QLightDM::Greeter::authenticationComplete, this,&AuthLightdm::handleGreeterAuthComplete); - } - - AuthLightdm::~AuthLightdm() -@@ -31,7 +31,7 @@ AuthLightdm::~AuthLightdm() - - bool AuthLightdm::init() - { -- bool bRes = m_greeterAuth->connectSync(); -+ bool bRes = m_greeterPtrAuth->connectSync(); - if( !bRes ) - { - KLOG_ERROR() << "can't connect greeter auth!"; -@@ -41,33 +41,33 @@ bool AuthLightdm::init() - - bool AuthLightdm::authenticate(const QString &userName) - { -- m_greeterAuth->authenticate(userName); -+ m_greeterPtrAuth->authenticate(userName); - return true; - } - - void AuthLightdm::cancelAuthentication() - { -- m_greeterAuth->cancelAuthentication(); -+ m_greeterPtrAuth->cancelAuthentication(); - } - - bool AuthLightdm::isAuthenticated() const - { -- return m_greeterAuth->isAuthenticated(); -+ return m_greeterPtrAuth->isAuthenticated(); - } - - bool AuthLightdm::inAuthentication() const - { -- return m_greeterAuth->inAuthentication(); -+ return m_greeterPtrAuth->inAuthentication(); - } - - QString AuthLightdm::authenticationUser() const - { -- return m_greeterAuth->authenticationUser(); -+ return m_greeterPtrAuth->authenticationUser(); - } - - void AuthLightdm::respond(const QString &response) - { -- m_greeterAuth->respond(response); -+ m_greeterPtrAuth->respond(response); - } - - void AuthLightdm::handleGreeterAuthShowPrompt(QString text, QLightDM::Greeter::PromptType type) -diff --git a/lib/auth-proxy/auth-lightdm.h b/lib/auth-proxy/auth-lightdm.h -index 9451f3c..810c107 100644 ---- a/lib/auth-proxy/auth-lightdm.h -+++ b/lib/auth-proxy/auth-lightdm.h -@@ -17,6 +17,7 @@ - - #include "auth-base.h" - #include -+#include - - /** - * 简单的对QLightDM::Greeter进行了一层包装,只是为了给上层认证代理AuthProxy提供统一的接口 -@@ -25,7 +26,7 @@ class AuthLightdm : public AuthBase - { - Q_OBJECT - public: -- explicit AuthLightdm(QLightDM::Greeter* greeterAuth, QObject* parent = nullptr); -+ explicit AuthLightdm(QSharedPointer greeterAuth, QObject* parent = nullptr); - ~AuthLightdm() override; - - bool init() override; -@@ -44,7 +45,7 @@ private slots: - void handleGreeterAuthComplete(); - - private: -- QLightDM::Greeter* m_greeterAuth; -+ QSharedPointer m_greeterPtrAuth; - - }; - -diff --git a/lightdm-greeter/src/greeter-login-window.cpp b/lightdm-greeter/src/greeter-login-window.cpp -index 9d46662..99beb43 100644 ---- a/lightdm-greeter/src/greeter-login-window.cpp -+++ b/lightdm-greeter/src/greeter-login-window.cpp -@@ -86,7 +86,7 @@ bool getIsLoggedIn(const QString &userName) - GreeterLoginWindow::GreeterLoginWindow(QWidget *parent) - : QWidget(parent), - ui(new Ui::GreeterLoginWindow), -- m_greeter(this), -+ m_greeterPtr(new QLightDM::Greeter()), - m_powerMenu(nullptr), - m_sessionMenu(nullptr), - m_noListButotnVisiable(true), -@@ -239,12 +239,12 @@ void GreeterLoginWindow::initUI() - this, &GreeterLoginWindow::slotUserActivated); - ///自动登录按钮点击 - connect(ui->btn_autologin, &LoginButton::sigClicked, [this]() { -- m_authProxy->authenticate(m_greeter.autologinUserHint()); -+ m_authProxy->authenticate(m_greeterPtr->autologinUserHint()); - }); -- connect(&m_greeter, &QLightDM::Greeter::autologinTimerExpired, [this]() { -+ connect(m_greeterPtr.data(), &QLightDM::Greeter::autologinTimerExpired, [this]() { - //NOTE:修复机器配置了autologin-timeout,但未配置autologin-user的情况 -- if( !m_greeter.autologinUserHint().isEmpty() ) -- m_authProxy->authenticate(m_greeter.autologinUserHint()); -+ if( !m_greeterPtr->autologinUserHint().isEmpty() ) -+ m_authProxy->authenticate(m_greeterPtr->autologinUserHint()); - }); - ///重新认证按钮点击 - connect(ui->btn_reAuth, &QPushButton::clicked, [this]() { -@@ -348,7 +348,7 @@ void GreeterLoginWindow::initMenu() - - void GreeterLoginWindow::initLightdmGreeter() - { -- AuthBase *authInterface = new AuthLightdm(&m_greeter); -+ AuthBase *authInterface = new AuthLightdm(m_greeterPtr); - AuthMsgQueue *msgQueue = new AuthMsgQueue(); - - m_authProxy = new AuthProxy(authInterface, this); -@@ -382,7 +382,7 @@ void GreeterLoginWindow::initLightdmGreeter() - ///用户0->1 且 配置允许显示用户链表 且 当前登录模式为输入用户登录 且 手动登录还未输入用户名并点击确定 - ///显示返回按钮 - qInfo() << "rowInserted:" << m_filterModel.rowCount(QModelIndex()); -- if ((m_filterModel.rowCount(QModelIndex()) == 1) && m_showUserList && m_loginMode == LOGIN_MODE_MANUAL && !m_greeter.isAuthenticated()) -+ if ((m_filterModel.rowCount(QModelIndex()) == 1) && m_showUserList && m_loginMode == LOGIN_MODE_MANUAL && !m_greeterPtr->isAuthenticated()) - { - qInfo() << "setReturn visible true"; - ui->btn_notListAndCancel->setVisible(true); -@@ -410,12 +410,12 @@ void GreeterLoginWindow::initLightdmGreeter() - ui->userlist->loadUserList(); - - //NOTE:修复#52982问题,若自动登录用户已存在不自动触发延时自动登录 -- if ( !m_greeter.autologinUserHint().isEmpty() ) -+ if ( !m_greeterPtr->autologinUserHint().isEmpty() ) - { -- bool isLogged = getIsLoggedIn(m_greeter.autologinUserHint()); -+ bool isLogged = getIsLoggedIn(m_greeterPtr->autologinUserHint()); - if( isLogged ) - { -- m_greeter.cancelAutologin(); -+ m_greeterPtr->cancelAutologin(); - } - #if 0 - //WARNING:这种方法不能取得root是否已登录信息 -@@ -551,7 +551,7 @@ void GreeterLoginWindow::startAuthUser(const QString &username, QString userIcon - ui->label_userName->setText(username); - ui->loginAvatar->setImage(userIcon); - -- if (username == m_greeter.autologinUserHint()) -+ if (username == m_greeterPtr->autologinUserHint()) - { - KLOG_DEBUG() << "authproxy user" << username << "is auto login user,switch to auto login"; - switchToAutoLogin(); -@@ -819,7 +819,7 @@ void GreeterLoginWindow::slotAuthenticationComplete(bool success) - } - } - #endif -- if (!m_greeter.startSessionSync(m_session)) -+ if (!m_greeterPtr->startSessionSync(m_session)) - { - KLOG_WARNING() << "start session failed,session:" << m_session; - } -diff --git a/lightdm-greeter/src/greeter-login-window.h b/lightdm-greeter/src/greeter-login-window.h -index 689025e..caf5d63 100644 ---- a/lightdm-greeter/src/greeter-login-window.h -+++ b/lightdm-greeter/src/greeter-login-window.h -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - #include "auth-define.h" - #include "auth-msg-queue.h" -@@ -124,7 +125,7 @@ private: - - FilterUserProxyModel m_filterModel; - -- QLightDM::Greeter m_greeter; -+ QSharedPointer m_greeterPtr; - QLightDM::UsersModel m_userModel; - QLightDM::PowerInterface m_powerIface; - -diff --git a/lightdm-greeter/src/main.cpp b/lightdm-greeter/src/main.cpp -index 0320c51..e145b1f 100644 ---- a/lightdm-greeter/src/main.cpp -+++ b/lightdm-greeter/src/main.cpp -@@ -19,6 +19,8 @@ - #include - #include - #include -+#include -+#include - - #include "../../lib/common-widgets/virtual-keyboard.h" - #include "cursor-helper.h" -@@ -28,23 +30,27 @@ - #include "scaling-helper.h" - #include "sync-lock-status.h" - -+static int sigtermFd[2]; -+ - #define DEFAULT_STYLE_FILE ":/themes/lightdm-kiran-greeter-normal.qss" - - void termSignalHandler(int unused) - { --#ifdef VIRTUAL_KEYBOARD -- VirtualKeyboard::instance()->keyboardProcessExit(); --#endif -- qApp->quit(); -+ char a = 1; -+ if(write(sigtermFd[0], &a, sizeof(a)) < 1) -+ { -+ qWarning("Failed to handle term signal."); -+ } - } - - void setup_unix_signal_handlers() - { - struct sigaction term; - term.sa_handler = termSignalHandler; -- sigemptyset(&term.sa_mask); - term.sa_flags = 0; -- term.sa_flags |= SA_RESETHAND; -+ term.sa_flags = SA_RESTART; -+ -+ sigemptyset(&term.sa_mask); - int iRet = sigaction(SIGTERM, &term, 0); - if (iRet != 0) - { -@@ -61,9 +67,6 @@ int main(int argc, char *argv[]) - qWarning() << "klog_qt5_init error:" << iRet; - } - -- ///安装信号处理 -- setup_unix_signal_handlers(); -- - ///设置缩放比 - double scaled_factor = 0.0; - switch (KiranGreeterPrefs::instance()->scale_mode()) -@@ -93,6 +96,15 @@ int main(int argc, char *argv[]) - QApplication a(argc, argv); - QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - -+ // 处理SIGTERM信号 -+ if (::socketpair(AF_UNIX, SOCK_STREAM, 0, sigtermFd)) -+ { -+ KLOG_WARNING() << "Couldn't create TERM socketpair"; -+ } -+ QSocketNotifier *snTerm = new QSocketNotifier(sigtermFd[1], QSocketNotifier::Read, &a); -+ QObject::connect(snTerm, SIGNAL(activated(int)), &a, SLOT(quit())); -+ setup_unix_signal_handlers(); -+ - ///依据登陆器整体缩放比例,设置默认光标大小 - if (!CursorHelper::setDefaultCursorSize(scaled_factor)) - { -@@ -135,5 +147,10 @@ int main(int argc, char *argv[]) - GreeterScreenManager screenManager; - screenManager.init(); - -- return a.exec(); -+ int res = a.exec(); -+ -+ close(sigtermFd[0]); -+ close(sigtermFd[1]); -+ -+ return res; - } --- -2.33.0 - diff --git a/0005-fix-Locker-VirtualKeyboard-unlock-interface-calls-on.patch b/0005-fix-Locker-VirtualKeyboard-unlock-interface-calls-on.patch deleted file mode 100644 index 7b95f35555b27005caa8042826b4524eaed0c596..0000000000000000000000000000000000000000 --- a/0005-fix-Locker-VirtualKeyboard-unlock-interface-calls-on.patch +++ /dev/null @@ -1,202 +0,0 @@ -From c3472c9d50c5fb40f49d3de3d03d4d812bb48959 Mon Sep 17 00:00:00 2001 -From: liuxinhao -Date: Thu, 8 Dec 2022 10:56:20 +0800 -Subject: [PATCH 5/6] fix(Locker VirtualKeyboard): unlock interface calls - onboard, and the onboard process cycle is consistent with the unlock - interface -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -- 解锁界面调用onboard,onboard进程周期和解锁界面一致,避免出现解锁后onboard进程不退出和kiran-screensaver同一生存周期的问题 ---- - lib/common-widgets/virtual-keyboard.cpp | 8 ++-- - lib/common-widgets/virtual-keyboard.h | 8 ++-- - screensaver-dialog/src/plugin.cpp | 8 ---- - screensaver-dialog/src/screensaver-dialog.cpp | 37 +++++++++++-------- - screensaver-dialog/src/screensaver-dialog.h | 4 ++ - 5 files changed, 33 insertions(+), 32 deletions(-) - -diff --git a/lib/common-widgets/virtual-keyboard.cpp b/lib/common-widgets/virtual-keyboard.cpp -index a6921af..4e39e54 100644 ---- a/lib/common-widgets/virtual-keyboard.cpp -+++ b/lib/common-widgets/virtual-keyboard.cpp -@@ -78,7 +78,7 @@ bool VirtualKeyboard::init(QWidget *parent) - } - - xid = stdoutput.toULongLong(); -- -+ KLOG_DEBUG() << "foreign virtual keyboard window id:" << xid; - foreignWindow = QWindow::fromWinId(xid); - foreignWindow->setFlag(Qt::ForeignWindow); - m_keyboardWidget = QWidget::createWindowContainer(foreignWindow, nullptr); -@@ -113,15 +113,15 @@ void VirtualKeyboard::showAdjustSize(QWidget *parent) - if (parent == nullptr) - { - KLOG_WARNING() << "VirtualKeyboard::showAdjustSize parent can't be nullptr"; -+ return; - } - - KLOG_DEBUG() << "VirtualKeyboard::showAdjustSize" << parent->objectName(); - m_keyboardWidget->hide(); -- QRect parentRect = parent->geometry(); - m_keyboardWidget->setParent(parent); - -+ QRect parentRect = parent->geometry(); - QSize keyboardSize(parentRect.width()*ONBOARD_WIDTH_FACTOR,parentRect.height()*ONBOARD_HEIGHT_FACTOR); -- - m_keyboardWidget->resize(parentRect.width()*ONBOARD_WIDTH_FACTOR, parentRect.height()*ONBOARD_HEIGHT_FACTOR); - m_keyboardWidget->move((parentRect.width() - keyboardSize.width()) / 2, parentRect.height() - keyboardSize.height()); - m_keyboardWidget->show(); -@@ -170,4 +170,4 @@ VirtualKeyboard::VirtualKeyboard(QObject *parent) - - void VirtualKeyboard::slotReadyReadStandardOutput() - { --} -+} -\ No newline at end of file -diff --git a/lib/common-widgets/virtual-keyboard.h b/lib/common-widgets/virtual-keyboard.h -index 31ca7c7..72d8134 100644 ---- a/lib/common-widgets/virtual-keyboard.h -+++ b/lib/common-widgets/virtual-keyboard.h -@@ -21,9 +21,11 @@ class VirtualKeyboard : public QObject - { - Q_OBJECT - public: -- static VirtualKeyboard *instance(); -+ explicit VirtualKeyboard(QObject *parent = nullptr); - ~VirtualKeyboard(); - -+ static VirtualKeyboard *instance(); -+ - bool init(QWidget *parent = nullptr); - void hide(); - bool isVisible(); -@@ -34,13 +36,11 @@ public: - public slots: - void slot_finished(int exitCode, QProcess::ExitStatus exitStatus); - --private: -- explicit VirtualKeyboard(QObject *parent = nullptr); -- - private slots: - void slotReadyReadStandardOutput(); - - private: - QWidget * m_keyboardWidget; - QProcess *m_process; -+ QWidget *m_keyboardEmbed = nullptr; - }; -diff --git a/screensaver-dialog/src/plugin.cpp b/screensaver-dialog/src/plugin.cpp -index 8699d3c..7c435de 100644 ---- a/screensaver-dialog/src/plugin.cpp -+++ b/screensaver-dialog/src/plugin.cpp -@@ -46,14 +46,6 @@ int KSPlugin::init(Interface* ksInterface) - { - KLOG_WARNING() << "can't load kiran-screensaver-dialog translator"; - } -- --#ifdef VIRTUAL_KEYBOARD -- if( !VirtualKeyboard::instance()->init() ) -- { -- KLOG_WARNING() << "init virtual keyboard failed!"; -- } --#endif -- - return 0; - } - -diff --git a/screensaver-dialog/src/screensaver-dialog.cpp b/screensaver-dialog/src/screensaver-dialog.cpp -index 3ab7d19..2f1634e 100644 ---- a/screensaver-dialog/src/screensaver-dialog.cpp -+++ b/screensaver-dialog/src/screensaver-dialog.cpp -@@ -101,7 +101,17 @@ ScreenSaverDialog::ScreenSaverDialog(Kiran::ScreenSaver::Interface* ksInterface, - - ScreenSaverDialog::~ScreenSaverDialog() - { -- delete ui; -+#ifdef VIRTUAL_KEYBOARD -+ if( m_keyboard ) -+ { -+ auto keyboardWidget = m_keyboard->getKeyboard(); -+ if (m_keyboard->getKeyboard() && m_keyboard->getKeyboard()->parentWidget()==this) -+ { -+ m_keyboard->getKeyboard()->setParent(nullptr); -+ } -+ } -+#endif -+ delete ui; - } - - QWidget *ScreenSaverDialog::get_widget_ptr() -@@ -274,17 +284,23 @@ void ScreenSaverDialog::initUI() - m_authProxy->respond(ui->promptEdit->getText()); - }); - -+ - #ifdef VIRTUAL_KEYBOARD -+ m_keyboard = new VirtualKeyboard(this); -+ -+ if (!m_keyboard->init()) -+ { -+ KLOG_WARNING() << "init virtual keyboard failed!"; -+ } - connect(ui->btn_keyboard, &QToolButton::pressed, this, [this] { -- VirtualKeyboard *keyboard = VirtualKeyboard::instance(); -- if (keyboard->isVisible()) -+ if (m_keyboard->isVisible()) - { -- keyboard->hide(); -+ m_keyboard->hide(); - } - else - { - //虚拟键盘通过传入的父窗口调整大小并进行显示 -- keyboard->showAdjustSize(this); -+ m_keyboard->showAdjustSize(this); - } - this->window()->windowHandle()->setKeyboardGrabEnabled(true); - }); -@@ -560,17 +576,6 @@ void ScreenSaverDialog::startAuth() - - void ScreenSaverDialog::closeEvent(QCloseEvent *event) - { --#ifdef VIRTUAL_KEYBOARD -- //在关闭时若虚拟键盘的副窗口设置为当前窗口的话,则更改父窗口,避免释放相关X资源导致onboard释放出错,导致onboard崩溃 -- if (VirtualKeyboard::instance()->getKeyboard()) -- { -- if (VirtualKeyboard::instance()->getKeyboard()->parentWidget() == this) -- { -- KLOG_DEBUG() << "keyboard reparent"; -- VirtualKeyboard::instance()->getKeyboard()->setParent(nullptr); -- } -- } --#endif - QWidget::closeEvent(event); - } - -diff --git a/screensaver-dialog/src/screensaver-dialog.h b/screensaver-dialog/src/screensaver-dialog.h -index fe7a899..f166841 100644 ---- a/screensaver-dialog/src/screensaver-dialog.h -+++ b/screensaver-dialog/src/screensaver-dialog.h -@@ -37,6 +37,7 @@ class Interface; - - class QMenu; - class AuthProxy; -+class VirtualKeyboard; - class ScreenSaverDialog : public QWidget, public Kiran::ScreenSaver::LockerInterface - { - Q_OBJECT -@@ -112,6 +113,9 @@ private: - Kiran::AuthType m_authType = Kiran::AUTH_TYPE_PASSWD; - bool m_havePrompt = false; - QString m_userName; -+#ifdef VIRTUAL_KEYBOARD -+ VirtualKeyboard *m_keyboard = nullptr; -+#endif - }; - - #endif // WIDGET_H --- -2.33.0 - diff --git a/0006-fix-screensaver-dialog-Fix-the-zombie-process-caused.patch b/0006-fix-screensaver-dialog-Fix-the-zombie-process-caused.patch deleted file mode 100644 index 726ae24565584573740ca2b6e34a85e2aceeb223..0000000000000000000000000000000000000000 --- a/0006-fix-screensaver-dialog-Fix-the-zombie-process-caused.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1f3d5e1f2378a71ec8c5c75abb388059bc17d182 Mon Sep 17 00:00:00 2001 -From: liuxinhao -Date: Fri, 9 Dec 2022 11:00:15 +0800 -Subject: [PATCH 6/6] fix(screensaver-dialog): Fix the zombie process caused by - waitpid reclaiming that the authentication process is not blocked after the - command is invoked in the unlock box -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -修复在解锁框调用命令解锁后,waitpid回收认证进程未阻塞导致的僵尸进程 ---- - lib/auth-proxy/auth-pam.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/auth-proxy/auth-pam.cpp b/lib/auth-proxy/auth-pam.cpp -index 3c2bcda..61feae6 100644 ---- a/lib/auth-proxy/auth-pam.cpp -+++ b/lib/auth-proxy/auth-pam.cpp -@@ -139,7 +139,7 @@ void AuthPam::cancelAuthentication() - if (m_authPid != 0) - { - kill(m_authPid, SIGKILL); -- waitpid(m_authPid, nullptr, WNOHANG); -+ waitpid(m_authPid, nullptr, 0); - m_authPid = 0; - } - --- -2.33.0 - diff --git a/kiran-session-guard-2.4.0.tar.gz b/kiran-session-guard-2.4.0.tar.gz deleted file mode 100644 index f061aa41c68127cb115b4f7cd4b6c272bca5241b..0000000000000000000000000000000000000000 Binary files a/kiran-session-guard-2.4.0.tar.gz and /dev/null differ diff --git a/kiran-session-guard-2.5.0.tar.gz b/kiran-session-guard-2.5.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6495d61dfe232f1b64713dddc8c32d7d558ff955 Binary files /dev/null and b/kiran-session-guard-2.5.0.tar.gz differ diff --git a/kiran-session-guard.spec b/kiran-session-guard.spec index 8ea096acbc791e5603ce28dda353537e9dbb4427..5ac23224eec9dda11fc1c3e90a9ff13ee808248c 100644 --- a/kiran-session-guard.spec +++ b/kiran-session-guard.spec @@ -1,18 +1,12 @@ Name: kiran-session-guard -Version: 2.4.0 -Release: 4 +Version: 2.5.0 +Release: 2 Summary: Kiran desktop environment login and lock screen dialog Summary(zh_CN): Kiran桌面环境登录和解锁框 License: MulanPSL-2.0 Source0: %{name}-%{version}.tar.gz - -Patch01: 0001-fix-CVE-PAM-authorization-bypass-due-to-incorrect-us.patch -Patch02: 0002-fix-user-icon-fix-the-failure-to-update-the-drawing-.patch -Patch03: 0003-fix-virtualkeyboard-Invoke-virtual-keyboard-initiali.patch -Patch04: 0004-fix-SIGTERM-Processing-Use-socket-to-notify-SIGTERM-.patch -Patch05: 0005-fix-Locker-VirtualKeyboard-unlock-interface-calls-on.patch -Patch06: 0006-fix-screensaver-dialog-Fix-the-zombie-process-caused.patch +Patch0: 0001-fix-translate-add-some-translation.patch %define SHOW_VIRTUAL_KEYBOARD 0 @@ -40,6 +34,7 @@ BuildRequires: kiran-authentication-service-devel BuildRequires: kiran-cc-daemon-devel BuildRequires: kiran-control-panel-devel >= 2.4 BuildRequires: kiran-qt5-integration-devel >= 2.4 +BuildRequires: kiran-qdbusxml2cpp Requires: qt5-qtbase Requires: qt5-qtsvg @@ -80,6 +75,12 @@ Summary(zh_CN): Kiran桌面环境解锁框 BuildRequires: kiran-screensaver-devel Requires: kiran-screensaver +%package -n kiran-polkit-agent +Summary: Kiran desktop environment polkit agent +Summary(zh_CN): Kiran桌面环境授权框 +BuildRequires: polkit-qt5-1-devel +Requires: polkit-qt5-1 + %description %{summary}. @@ -87,7 +88,10 @@ Requires: kiran-screensaver lightdm login greeter %description -n kiran-screensaver-dialog -mate-screensaver lock dialog +kiran-screensaver lock dialog + +%description -n kiran-polkit-agent +Kiran desktop environment polkit agent %prep %autosetup -p1 @@ -104,14 +108,6 @@ make %{?_smp_mflags} %install %make_install -%posttrans -n lightdm-kiran-greeter -%define link_source %{_datadir}/kiran-control-panel/plugins/desktop/kiran-cpanel-greeter.desktop -%define link_target %{_datadir}/applications/kiran-cpanel-greeter.desktop -if [ ! -e %{link_target} ] ; then - ln -sf %{link_source} %{link_target} - echo "link %{link_source} -> %{link_target}" -fi - %post -n lightdm-kiran-greeter gtk-update-icon-cache -f /usr/share/icons/hicolor/ @@ -119,15 +115,13 @@ gtk-update-icon-cache -f /usr/share/icons/hicolor/ %doc %{_libdir}/kiran-screensaver/libkiran-screensaver-dialog.so %{_datadir}/kiran-screensaver-dialog/translations/* -%{_datadir}/kiran-screensaver-dialog/screensaver.ini +%{_datadir}/kiran-screensaver-dialog//screensaver-dialog.ini %{_libexecdir}/kiran-session-guard-checkpass %files -n lightdm-kiran-greeter %doc %{_datadir}/kiran-control-panel/plugins/libs/libkiran-cpanel-greeter.so* %{_datadir}/kiran-control-panel/plugins/desktop/* -%{_datadir}/icons/hicolor/* -%{_datadir}/applications/*.desktop %{_sbindir}/lightdm-kiran-greeter %{_datadir}/lightdm-kiran-greeter/translations/* @@ -136,10 +130,27 @@ gtk-update-icon-cache -f /usr/share/icons/hicolor/ %{_datadir}/xgreeters/lightdm-kiran-greeter.desktop %{_datadir}/lightdm/lightdm.conf.d/*-lightdm-kiran-greeter.conf +%files -n kiran-polkit-agent +%doc +%{_libexecdir}/kiran-polkit-agent +%{_sysconfdir}/xdg/autostart/kiran-polkit-agent.desktop +%{_datadir}/kiran-polkit-agent/translations/kiran-polkit-agent.zh_CN.qm +%{_datadir}/kiran-polkit-agent/translations/kiran-polkit-agent.bo_CN.qm +%{_datadir}/kiran-polkit-agent/translations/kiran-polkit-agent.kk_KG.qm +%{_datadir}/kiran-polkit-agent/translations/kiran-polkit-agent.kk_KZ.qm +%{_datadir}/kiran-polkit-agent/translations/kiran-polkit-agent.mn_MN.qm +%{_datadir}/kiran-polkit-agent/translations/kiran-polkit-agent.ug_CN.qm + %clean rm -rf %{buildroot} %changelog +* Mon Apr 10 2023 wangyucheng - 2.5.0-2 +- KYOS-T: add some translation + +* Tue Apr 04 2023 liuxinhao - 2.5.0-1 +- KYOS-F: Supports the new biometric authentication framework and adds the authorization prompt box + * Fri Dec 09 2022 liuxinhao - 2.4.0-4 - KYOS-F: Fix the zombie process caused by waitpid reclaiming that the authentication process is not blocked after the command is invoked in the unlock box - KYOS-F: unlock interface calls onboard, and the onboard process cycle is consistent with the unlock interface