diff --git a/server/src/uds/locale/ar/LC_MESSAGES/django.po b/server/src/uds/locale/ar/LC_MESSAGES/django.po index 65b90010..b804d196 100644 --- a/server/src/uds/locale/ar/LC_MESSAGES/django.po +++ b/server/src/uds/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Abdel Baaddi , 2017-2018\n" "Language-Team: Arabic (http://www.transifex.com/openuds/openuds/language/" @@ -32,7 +32,7 @@ msgstr "حسابات" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "الاسم" @@ -42,8 +42,8 @@ msgstr "الاسم" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "تعليقات" @@ -213,7 +213,7 @@ msgid "If active, authenticator will be visible for users" msgstr "إذا كان المصدق نشطًا ، فسيكون مرئيًا للمستخدمين" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -229,11 +229,11 @@ msgstr "مزود MFA" msgid "MFA provider to use for this authenticator" msgstr "مزود MFA لاستخدامه لهذا المصدق" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "نتائج كثيرة للغاية ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "حدد استفسارك" @@ -588,7 +588,7 @@ msgstr "تحقق من الشهادة" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -606,7 +606,7 @@ msgstr "الخادم (IP أو FQDN) الذي سيعمل بمثابة وكيل." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -653,12 +653,12 @@ msgstr "" msgid "Available reports" msgstr "التقارير المتوفرة" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -724,13 +724,13 @@ msgstr "وكيل للخدمات وراء جدار الحماية" msgid "Advanced" msgstr "متقدم" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "مع الأخطاء" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "موافق" @@ -1006,15 +1006,15 @@ msgstr "سجل التغيير" msgid "Comment" msgstr "التعليق" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "مشرف" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "موظف" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1026,20 +1026,20 @@ msgstr "موظف" msgid "User" msgstr "المستخدم" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "مستخدمين {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "المستخدمون الحاليون" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1057,48 +1057,48 @@ msgstr "المستخدمون الحاليون" msgid "Username" msgstr "اسم المستخدم" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "وظيفة" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "الحالة" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "آخر وصول" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "اسم المستخدم لا يمكن أن يكون فارغا" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "المستخدم موجود مسبقا (خطأ مفتاح مكرر)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "مجموعات من {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "المجموعات الحالية" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "المجموعة المصغرة" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Meta المجموعة" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "مجموعة Meta المصغرة" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "اسم المجموعة مطلوب" @@ -1188,9 +1188,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1274,11 +1274,15 @@ msgstr "" "خادم المضيف الرئيسي" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "سمة MFA" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "السمة من مكان استخراج رمز MFA" @@ -1292,50 +1296,50 @@ msgid "Authenticate against Active Directory" msgstr "المصادقة بالمقابلة مع خدمة Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "يجب تحديد اسم المستخدم في النموذج USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "لم يتم العثور على اسم المستخدم" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "لم يتم العثور على المجموعة" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "الكثير من النتائج، كن أكثر تحديداً" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "المجال غير صحيح، الرجاء التحقق من ذلك" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "الملقم لا يبدو Active Directory (ليس لديه كائنات المستخدم)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "الملقم لا يبدو Active Directory (ليس لديه كائنات المجموعة)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "يبدو الاتصال params صحيحا، تم تنفيذ الأختبار بنجاح" @@ -1469,30 +1473,30 @@ msgstr "اسم المستخدم امتيازات القراءة على eDirector msgid "Timeout in seconds of connection to LDAP" msgstr "المهلة بالثواني لاتصال LDAP" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "eDirectory المصادق" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "مصادقة ضد eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "خطأ في اتصال Edirectory: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "قاعدة البحث Ldap غير صحيح" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "يبدو أن فئة Ldap المستخدم غير صحيحة (العثور على لا مستخدم من تلك الفئة)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1500,11 +1504,11 @@ msgid "" msgstr "" "يبدو أن Ldap المستخدم معرف السمة غير صحيحة (أي مستخدم موجود بذلك السمة)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "مجموعة السمة المتوقعة " -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1569,11 +1573,11 @@ msgstr "عكس DNS" msgid "If checked, the host will be reversed dns" msgstr "في حالة تحديد المضيف سوف تكون عكس dns" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "هياكل داخلية على ما يرام" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "كل شيء يبدو بشكل جيد في المصادق." @@ -1581,27 +1585,27 @@ msgstr "كل شيء يبدو بشكل جيد في المصادق." msgid "Radius Authenticator" msgstr "Radius Authenticator" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "Radius Server IP أو اسم المضيف" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "منفذ مصادقة نصف قطر (عادة 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "سر" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "سر عميل Radius" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "معرف NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "معرف NAS لخادم Radius" @@ -1622,15 +1626,15 @@ msgid "If set, this value will be added as group for all radius users" msgstr "" "في حالة التعيين ، ستتم إضافة هذه القيمة كمجموعة لجميع مستخدمي النطاق الجغرافي" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "خطأ في اختبار الاتصال" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "فشل الاتصال بخادم Radius" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "يبدو الاتصال بخادم Radius جيدًا" @@ -1707,22 +1711,22 @@ msgid "" msgstr "" "فئة لكائنات LDAP التي سيتم التحقق منها أيضا لاسترجاعها للمجموعات (عادة فارغة)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "المصادق Regex LDAP" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr " التعبيرات العادية لمصادق LDAP" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" msgstr "" "ربما Ldap user id attr خاطئ (لا يمكن العثور على أي مستخدم مع كل الشروط)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2028,38 +2032,43 @@ msgstr "لا يمكن إلغاء نشر منشور غير صالح للاستع msgid "Can't unpublish publications with services in process" msgstr "لا يمكن إلغاء نشر المنشورات مع خدمات في طور الإستعمال" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "تم بلوغ الحد الأقصى لعدد خدمات المستخدم لهذا {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "لا يمكن إزالة عنصر غير نشط" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "لا يمكن إزالة أو إلغاء {} لأن حالته لا تسمح بذلك" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "الخدمة المطلوبة مقيدة" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" msgstr "" "الخدمة غير صالحة. الخدمة غير متوفرة في هذه اللحظة. من فضلك، حاول في وقت لاحق" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "النقل المطلوب {} غير صالح لـ {}" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "لا يمكن الوصول إلى الخدمة من هذا الجهاز" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "قاعدة MFA" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "رمز MFA غير صالح" @@ -2358,19 +2367,19 @@ msgstr "نقل غير موجود" msgid "Service not ready at this moment. Please, try again in a while." msgstr "الخدمة ليست على استعداد في هذه اللحظة. من فضلك، حاول مرة أخرى في حين." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "متعدد العوامل البريد الإلكتروني" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "أداة مصادقة متعددة العوامل للبريد الإلكتروني" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "مضيف SMTP" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2378,88 +2387,192 @@ msgstr "" "اسم مضيف خادم SMTP أو عنوان IP. إذا كنت تستخدم منفذًا غير قياسي ، فأضفه بعد " "نقطتين ، على سبيل المثال: smtp.gmail.com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "خادم SMTP" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "الأمن" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "بروتوكول أمان للاستخدام" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "مستخدم لديه حق الوصول إلى خادم SMTP" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "كلمة مرور المستخدم مع الوصول إلى خادم SMTP" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "موضوعات" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "موضوع البريد الإلكتروني" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "التكوين" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "من البريد الإلكترونى" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "عنوان البريد الإلكتروني الذي سيتم استخدامه كمرسل" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "تمكين HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "تمكين HTML في رسائل البريد الإلكتروني" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "مستخدم بدون سياسة MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "الإجراء لخطأ استجابة SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "السماح بتسجيل دخول المستخدم" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "رفض تسجيل دخول المستخدم" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "اسمح للمستخدم بتسجيل الدخول إذا كان IP موجودًا في قائمة الشبكات" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "رفض المستخدم لتسجيل الدخول إذا كان IP موجودًا في قائمة الشبكات" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "شبكات الرسائل القصيرة" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "شبكات لمصادقة الرسائل القصيرة" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "اسم مضيف SMTP غير صالح" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "راجع بريدك. سوف تتلقى رسالة بريد إلكتروني مع رمز التحقق" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "تحدي Radius OTP" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "يجب على جميع المستخدمين إرسال OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"إذا لم يتم تحديده ، فستكون هناك حاجة إلى خطوة مصادقة لمعرفة ما إذا كان يجب " +"على هذا المستخدم إدخال OTP. إذا تم تحديده ، يجب على جميع المستخدمين إدخال " +"OTP ، لذلك يتم تخطي خطوة المصادقة." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "إجراء خطأ اتصال Radius OTP" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "الإجراء الخاص بخطأ اتصال خادم OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "شبكات Radius OTP" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "شبكات لمصادقة Radius OTP" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "مستخدم بدون كلمة مرور محددة في الخادم" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "إجراء للمستخدم بدون تحدي نصف القطر المحدد" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "رمز OTP" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "الرجاء إدخال OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "خطأ في اتصال Radius OTP" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "رمز OTP غير صحيح" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "يعتقد SMS HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "إرسال رسائل قصيرة بسيطة MFA باستخدام HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "نمط URL لإرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2467,20 +2580,20 @@ msgid "" "* {username} - the username\n" "* {justUsername} - the username without @...." msgstr "" -"نمط URL لإرسال الرسائل القصيرة. يمكن أن يحتوي على المتغيرات التالية: * {code}" -" - رمز الإرسال * {phone / + phone} - رقم الهاتف * {username} - اسم المستخدم *" -" {justUsername} - اسم المستخدم بدون @ ...." +"نمط URL لإرسال الرسائل القصيرة. يمكن أن يحتوي على المتغيرات التالية: * " +"{code} - رمز الإرسال * {phone / + phone} - رقم الهاتف * {username} - اسم " +"المستخدم * {justUsername} - اسم المستخدم بدون @ ...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "خادم HTTP" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "تجاهل أخطاء الشهادة" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2488,19 +2601,19 @@ msgstr "" "إذا تم تحديده ، فسيتم تجاهل شهادة الخادم. يكون هذا مفيدًا إذا كان الخادم " "يستخدم شهادة موقعة ذاتيًا." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "طريقة إرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "طريقة إرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "رؤوس طلبات الرسائل القصيرة" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2514,18 +2627,11 @@ msgstr "" "{justUsername} - اسم المستخدم بدون @ .... العناوين موجودة شكل \"Header: Value" "\". (بدون اقتباس)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "معلمات لإرسال POST / PUT SMS" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2535,102 +2641,102 @@ msgid "" "* {justUsername} - the username without @...." msgstr "" "معلمات إرسال الرسائل القصيرة عبر POST / PUT. يمكن أن يحتوي على المتغيرات " -"التالية: * {code} - رمز الإرسال * {phone / + phone} - رقم الهاتف * {username}" -" - اسم المستخدم * {justUsername} - اسم المستخدم بدون @ ...." +"التالية: * {code} - رمز الإرسال * {phone / + phone} - رقم الهاتف * " +"{username} - اسم المستخدم * {justUsername} - اسم المستخدم بدون @ ...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "ترميز الرسائل القصيرة" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "ترميز الرسائل القصيرة" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "طريقة مصادقة الرسائل القصيرة" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "مصادقة HTTP" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "مصادقة HTTP الأساسية" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "مصادقة ملخص HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "مصادقة HTTP" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "مستخدم مصادقة SMS أو رمز مميز" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "مستخدم أو رمز مميز للمصادقة عبر الرسائل القصيرة" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "كلمة مرور مصادقة SMS" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "كلمة مرور لمصادقة الرسائل القصيرة" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "استجابة الرسائل القصيرة موافق regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" -"Regex لاستجابة الرسائل القصيرة موافق. إذا كانت emty ، تعتبر الاستجابة جيدة " -"إذا كان رمز الحالة 200." +"Regex لاستجابة الرسائل القصيرة موافق. إذا كانت الاستجابة فارغة ، فسيتم " +"اعتبارها على ما يرام إذا كان رمز الحالة 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "استجابة HTTP" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "إجراء خطأ استجابة SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "الإجراء لخطأ استجابة SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "السماح للمستخدم بتسجيل الدخول بدون MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "رفض تسجيل دخول المستخدم" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "فشل إرسال الرسائل القصيرة" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "خطأ في استجابة الرسائل القصيرة" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "كود وزارة الخارجية" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "افحص هاتفك. ستتلقى رسالة نصية قصيرة تحتوي على رمز التحقق" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "نموذج متعدد العوامل" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "نموذج مصدق متعدد العوامل" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "عينة مجال عديم الفائدة" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "هذا مجال عديم الفائدة ، لأخذ العينات والاختبار" @@ -2819,6 +2925,17 @@ msgstr "" "(يتطلب بيثون> = 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"ممثل UDS لأجهزة Centos و Fedora و RH و Suse و ... أجهزة Linux. تستخدم فقط " +"للأجهزة الثابتة. (يتطلب python> = 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2826,7 +2943,7 @@ msgstr "" "إرث الفاعل مصغراً ديبيان، أوبونتو،... آلات لينكس (يتطلب بيثون 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2834,7 +2951,7 @@ msgstr "" "Legacy UDS Actor for Centos ، Fedora ، RH ، ... أجهزة Linux (يتطلب " "python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4457,6 +4574,16 @@ msgstr "" "إذا كانت الأجهزة نشطة ، فستحاول الأجهزة غير المتوفرة عند اتصال المستخدم (في " "بعض أنظمة التشغيل) التشغيل من خلال OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "الأعلى. الخدمات المسموح بها" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "الحد الأقصى لعدد الخدمات المسموح بها (0 أو أقل يعني عدم وجود حد)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "مزودمنصة OpenNebula ." @@ -5120,19 +5247,11 @@ msgstr "بداية المسار" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "المسار حيث سيتم تشغيل التطبيق على. (مثال: f: \\ example \\ folder)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "الخدمات المسموح بها كحد أقصى." - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "الحد الأقصى لعدد الخدمات المسموح بها (0 يعني عدم وجود حد)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "انتظر العمليات الناتجة" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5140,7 +5259,7 @@ msgstr "" "إذا تم تحديده، RDS Actor سينتظر إنهاء التطبيق وجميع العمليات قبل النظر في " "تطبيق الخروج" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "مطلوب مسار تطبيق صحيح" @@ -7017,10 +7136,10 @@ msgstr "جاري إنشاء الخدمة الخاصة بك ، يرجى الان msgid "Authenticator does not provide information" msgstr "الموثق لا يوفر المعلومات" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} أيام" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} ساعات" diff --git a/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po b/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po index f0824945..99d5720f 100644 --- a/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/ar/LC_MESSAGES/djangojs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Arabic (http://www.transifex.com/openuds/openuds/language/" @@ -511,14 +511,14 @@ msgstr "خدمات بركة" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "المجموعات" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "خدمات حمامات" @@ -708,7 +708,7 @@ msgstr "تخصيص الخدمة" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "إلغاء الأمر" @@ -1059,8 +1059,8 @@ msgstr "إضافة" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "حسنا" @@ -1405,7 +1405,7 @@ msgstr "الرسوم البيانية" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "معلومات عن" @@ -1539,7 +1539,11 @@ msgstr "مشرف" msgid "Staff member" msgstr "موظف" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "MFA" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "الخدمات المعينة" diff --git a/server/src/uds/locale/ca/LC_MESSAGES/django.po b/server/src/uds/locale/ca/LC_MESSAGES/django.po index bbe73781..859040e3 100644 --- a/server/src/uds/locale/ca/LC_MESSAGES/django.po +++ b/server/src/uds/locale/ca/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Javier , 2020\n" "Language-Team: Catalan (http://www.transifex.com/openuds/openuds/language/" @@ -33,7 +33,7 @@ msgstr "Comptes" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Nom" @@ -43,8 +43,8 @@ msgstr "Nom" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Comentaris" @@ -214,7 +214,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Si està actiu, l'autenticador serà visible per als usuaris" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -230,11 +230,11 @@ msgstr "Proveïdor de MFA" msgid "MFA provider to use for this authenticator" msgstr "Proveïdor de MFA que cal utilitzar per a aquest autenticador" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Hi ha massa resultats ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Refineu la vostra consulta" @@ -592,7 +592,7 @@ msgstr "Comproveu el certificat" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -610,7 +610,7 @@ msgstr "Servidor (IP o FQDN) que servirà de servidor proxy." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -657,12 +657,12 @@ msgstr "" msgid "Available reports" msgstr "Informes disponibles" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -728,13 +728,13 @@ msgstr "Proxy per a serveis darrere d'un tallafoc" msgid "Advanced" msgstr "Avançat" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Amb errors" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "D'acord" @@ -1018,15 +1018,15 @@ msgstr "Registre de canvis" msgid "Comment" msgstr "Comentari" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Admin" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Membre del personal" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1038,20 +1038,20 @@ msgstr "Membre del personal" msgid "User" msgstr "Usuari" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Usuaris de {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Usuaris actuals" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1069,48 +1069,48 @@ msgstr "Usuaris actuals" msgid "Username" msgstr "Nom d'usuari" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Paper" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "estat" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Darrer accés" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "El nom d'usuari no pot estar buit" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "Aquest usuari ja existeix (error de clau duplicada)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Grups de {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Grups actuals" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "Grup UDS" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Metagrup" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "Metagrup UDS" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "El nom del grup és obligatori" @@ -1205,9 +1205,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1292,11 +1292,15 @@ msgstr "" "al servidor principal" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "Atribut MFA" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Atribut d'on extreure el codi MFA" @@ -1310,50 +1314,50 @@ msgid "Authenticate against Active Directory" msgstr "Autenticar sobre Directori Actiu" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Cal especificar el nom d'usuari en format USUARI@DOMINI.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Nom d'usuari no trobat" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Grup no trobat" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Massa resultats, cal especificar més" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "El Domini sembla ser incorrecte, si us plau verifiqueu-ho" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "El servidor sembla no ser un Directori Actiu (no té objectes d'usuari)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "El servidor sembla no ser un Directori Actiu (no té objectes de grup)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Els paràmetres de connexió semblen correctes, la prova s'ha executat " @@ -1492,31 +1496,31 @@ msgstr "Nom d'usuari amb privilegis de lectura sobre l'eDirectory" msgid "Timeout in seconds of connection to LDAP" msgstr "Temps d'espera de la connexió amb el LDAP en segons" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "Autenticador eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "Autenticar sobre eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Error de connexió amb l'eDirectori: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "La base de cerca LDAP no és correcta" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "La classe d'usuari LDAP sembla no ser correcta (no s'ha trobat cap usuari " "amb aquesta classe)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1525,11 +1529,11 @@ msgstr "" "L'atribut d'ID de l'usuari LDAP sembla no ser correcte (no s'ha trobat cap " "usuari amb aquest atribut)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Atribut de grup esperat" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1597,11 +1601,11 @@ msgstr "DNS invers" msgid "If checked, the host will be reversed dns" msgstr "Si està seleccionat, el host serà DNS invers" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Les estructures internes semblen correctes" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Tot sembla correcte a l'autenticador" @@ -1609,27 +1613,27 @@ msgstr "Tot sembla correcte a l'autenticador" msgid "Radius Authenticator" msgstr "Autenticador Radius" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "IP del servidor Radius o nom d’amfitrió" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Port d'autenticació Radius (normalment 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Secret" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Secret del client Radius" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "Identificador NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Identificador NAS del servidor Radius" @@ -1651,15 +1655,15 @@ msgstr "" "Si es defineix, aquest valor s'afegirà com a grup per a tots els usuaris de " "radius" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "S'ha produït un error intentant la connexió" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "Ha fallat la connexió amb el servidor Radius" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "La connexió amb servidor Radius sembla correcta" @@ -1740,15 +1744,15 @@ msgstr "" "Classe per a objectes LDAP que també se seleccionarà per a la recuperació de " "grups (normalment buit)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Autenticador Regex LDAP" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Autenticador LDAP d'Expressions Regulars" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1756,7 +1760,7 @@ msgstr "" "L'atribut d'ID d'usuari de LDAP probablement és incorrecte (no es pot trobar " "cap usuari que compleixi les dues condicions)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2070,19 +2074,24 @@ msgstr "No es pot anul·lar una publicació que no es pot utilitzar" msgid "Can't unpublish publications with services in process" msgstr "No es poden anul·lar publicacions amb serveis en procés" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "Nombre màxim de serveis d'usuari assolit per a aquest {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "No es pot eliminar un element no actiu" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "No es pot eliminar ni cancel·lar {} perquè el seu estat no ho permet" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "El servei sol·licitat està restringit" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2090,19 +2099,19 @@ msgstr "" "Servei no vàlid. El servei no està disponible ara mateix. Si us plau, " "intenteu-ho més tard" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "El transport sol·licitat {} no és vàlid per a {}" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "El servei no és accessible des d'aquest dispositiu" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "Base MFA" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Codi MFA no vàlid" @@ -2402,19 +2411,19 @@ msgid "Service not ready at this moment. Please, try again in a while." msgstr "" "Servei no disponible en aquest moment. Si us plau, intenteu-ho més tard." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "Correu electrònic multifactor" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Correu electrònic Multifactor Authenticator" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "Amfitrió SMTP" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2422,88 +2431,198 @@ msgstr "" "Nom d'amfitrió del servidor SMTP o adreça IP. Si utilitzeu un port no " "estàndard, afegiu-lo després de dos punts, per exemple: smtp.gmail.com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "Servidor SMTP" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Seguretat" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Protocol de seguretat a utilitzar" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Usuari amb accés al servidor SMTP" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Contrasenya de l'usuari amb accés al servidor SMTP" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Assignatura" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Assumpte del correu electrònic" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Config" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Des del correu electrònic" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "Adreça de correu electrònic que s'utilitzarà com a remitent" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Activa HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Activa l'HTML als correus electrònics" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Usuari sense política MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Acció per error de resposta SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Permet l'inici de sessió de l'usuari" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Denegar l'inici de sessió de l'usuari" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" +"Permet que l'usuari iniciï sessió si la seva IP es troba a la llista de " +"xarxes" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" +"Denegueu que l'usuari iniciï sessió si la seva IP és a la llista de " +"xarxes" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "Xarxes SMS" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Xarxes per a l'autenticació de SMS" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Nom d'amfitrió SMTP no vàlid" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "" +"Comproveu el vostre correu. Rebràs un correu electrònic amb el codi de " +"verificació" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Repte Radius OTP" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Tots els usuaris han d'enviar OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Si no està marcat, cal un pas d'autenticació per saber si aquest usuari " +"ha d'introduir OTP. Si està marcat, tots els usuaris han d'introduir " +"OTP, de manera que es salta el pas d'autenticació." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Acció d'error de comunicació de Radius OTP" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Acció per error de comunicació del servidor OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Xarxes Radius OTP" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Xarxes per a l'autenticació Radius OTP" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Usuari sense OTP definit al servidor" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Acció per a l'usuari sense Radius Challenge definit" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "Codi OTP" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Introduïu OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Error de connexió de Radius OTP" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Codi OTP no vàlid" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS Pensat HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "SMS senzill que envia MFA mitjançant HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "Patró d'URL per enviar SMS" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2511,20 +2630,21 @@ msgid "" "* {username} - the username\n" "* {justUsername} - the username without @...." msgstr "" -"Patró d'URL per enviar SMS. Pot contenir les variables següents: * {code}" -" - el codi a enviar * {telèfon/+telèfon} - el número de telèfon * {username} " -"- el nom d'usuari * {justUsername} - el nom d'usuari sense @...." +"Patró d'URL per enviar SMS. Pot contenir les variables següents: * " +"{code} - el codi a enviar * {telèfon/+telèfon} - el número de telèfon * " +"{username} - el nom d'usuari * {justUsername} - el nom d'usuari " +"sense @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "Servidor HTTP" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Ignora els errors del certificat" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2532,19 +2652,19 @@ msgstr "" "Si està marcat, el certificat del servidor s'ignorarà. Això és útil si " "el servidor utilitza un certificat autofirmat." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "Mètode d'enviament de SMS" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Mètode per enviar SMS" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "Capçaleres per a sol·licituds d'SMS" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2559,18 +2679,11 @@ msgstr "" "usuari sense @.... Les capçaleres estan a la forma de \"Encapçalament: valor" "\". (sense cometes)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Paràmetres per a l'enviament de SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2584,99 +2697,99 @@ msgstr "" "número de telèfon * {username} - el nom d'usuari * {justUsername} - el " "nom d'usuari sense @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "Codificació de SMS" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Codificació per a SMS" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "Mètode d'autenticació per SMS" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "Autenticació HTTP" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "Autenticació bàsica HTTP" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "HTTP Digest Auth" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "Autenticació HTTP" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Usuari o testimoni d'autenticació per SMS" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Usuari o testimoni per a l'autenticació per SMS" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "Contrasenya d'autenticació per SMS" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Contrasenya per a l'autenticació per SMS" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "Resposta d'SMS OK regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" -"Regex per a la resposta d'SMS OK. Si està buida, la resposta es " -"considera correcta si el codi d'estat és 200." +"Regex per a la resposta d'SMS OK. Si està buit, la resposta es considera " +"correcta si el codi d'estat és 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "Resposta HTTP" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "Acció d'error de resposta SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Acció per error de resposta SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Permet que l'usuari iniciï sessió sense MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Denegueu l'inici de sessió de l'usuari" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "S'ha produït un error en l'enviament de SMS" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "Error de resposta SMS" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "Codi MFA" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "Comprova el teu telèfon. Rebràs un SMS amb el codi de verificació" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Mostra de múltiples factors" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Exemple d'autenticador de múltiples factors" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Camp inútil de mostra" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Aquest és un camp inútil, per a mostres i proves" @@ -2867,6 +2980,17 @@ msgstr "" "màquines estàtiques. (requereix python >= 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"UDS Actor per a màquines Centos, Fedora, RH, Suse, ... Linux. S'utilitza " +"NOMÉS per a màquines estàtiques. (Requereix Python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2874,7 +2998,7 @@ msgstr "" "Legacy Actor UDS per a màquines Linux Debian, Ubuntu, ... " "(Requereix python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2882,7 +3006,7 @@ msgstr "" "Actor UDS \"legacy\" per a Centos, Fedora, RH, ... Machines Linux " "(requereix python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4542,6 +4666,16 @@ msgstr "" "l'usuari (en alguns sistemes operatius) intentaran engegar-se a través " "d'OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "Màx. Serveis permesos" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "Nombre màxim de serveis permesos (0 o menys significa sense límit)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "Proveïdor de la plataforma OpenNebula" @@ -5232,19 +5366,11 @@ msgstr "Ruta inicial" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Ruta on s’iniciarà l’aplicació. (per exemple, F:\\ruta\\carpeta)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Màxim de serveis permesos" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Nombre màxim de serveis permesos (0 vol dir sense límit)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Esperar els processos generats" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5252,7 +5378,7 @@ msgstr "" "Si està activat, l'actor de RDS esperarà fins que l'aplicació i tots els " "processos generats finalitzin abans de considerar-ne la sortida" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Es necessita una ruta d'aplicació vàlida" @@ -7191,10 +7317,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "L'autenticador no proporciona informació" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} dies" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} hores" diff --git a/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po b/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po index e7266ecf..73e12ff4 100644 --- a/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/ca/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Adolfo Gómez , 2017,2020\n" "Language-Team: Catalan (http://www.transifex.com/openuds/openuds/language/" @@ -509,14 +509,14 @@ msgstr "Pool de serveis" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Grups" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Pools de serveis" @@ -707,7 +707,7 @@ msgstr "Assignar servei" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Cancel·lar" @@ -1058,8 +1058,8 @@ msgstr "Afegir" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "D'acord" @@ -1404,7 +1404,7 @@ msgstr "Gràfics" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Informació per a" @@ -1539,7 +1539,11 @@ msgstr "Admin" msgid "Staff member" msgstr "Membre del personal" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "MFA" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Serveis assignats" diff --git a/server/src/uds/locale/de/LC_MESSAGES/django.po b/server/src/uds/locale/de/LC_MESSAGES/django.po index a344d435..b716e0ea 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/django.po +++ b/server/src/uds/locale/de/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Víctor Alonso , 2022\n" "Language-Team: German (http://www.transifex.com/openuds/openuds/language/" @@ -33,7 +33,7 @@ msgstr "Konten" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Name" @@ -43,8 +43,8 @@ msgstr "Name" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Bemerkungen" @@ -214,7 +214,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Wenn aktiv, ist der Authentifikator für Benutzer sichtbar" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -230,11 +230,11 @@ msgstr "MFA-Anbieter" msgid "MFA provider to use for this authenticator" msgstr "MFA-Anbieter, der für diesen Authentifikator verwendet werden soll" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Zu viele Ergebnisse ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Verfeinern Sie Ihre Suchanfrage" @@ -593,7 +593,7 @@ msgstr "Zertifikat prüfen" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -611,7 +611,7 @@ msgstr "Server (IP oder FQDN), der als Proxy dienen soll." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -658,12 +658,12 @@ msgstr "" msgid "Available reports" msgstr "Verfügbare Berichte" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -729,13 +729,13 @@ msgstr "Proxy für Dienste hinter einer Firewall" msgid "Advanced" msgstr "Erweitert" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Mit Fehlern" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "OK" @@ -1022,15 +1022,15 @@ msgstr "Änderungsprotokoll" msgid "Comment" msgstr "Kommentar" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Administrator" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Mitarbeiter" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1042,20 +1042,20 @@ msgstr "Mitarbeiter" msgid "User" msgstr "Benutzer" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Benutzer von {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Derzeitige Nutzer" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1073,48 +1073,48 @@ msgstr "Derzeitige Nutzer" msgid "Username" msgstr "Benutzername" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Rolle" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "Zustand" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Letzter Zugriff" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "Benutzername darf nicht leer sein" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "Benutzer ist bereits vorhanden (Fehler durch doppelten Schlüssel)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Gruppen von {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Aktuelle Gruppen" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "UDS-Gruppe" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Metagruppe" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "UDS-Metagruppe" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "Gruppenname ist erforderlich" @@ -1209,9 +1209,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1296,11 +1296,15 @@ msgstr "" "erreichbar ist" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "MFA-Attribut" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Attribut, aus dem der MFA-Code extrahiert werden soll" @@ -1314,52 +1318,52 @@ msgid "Authenticate against Active Directory" msgstr "Authentifizieren Sie sich gegen Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Der Benutzername muss in der Form USERNAME@DOMAIN.DOM angegeben werden" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Benutzername nicht gefunden" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Gruppe nicht gefunden" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Zu viele Ergebnisse, bitte konkretisieren" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Die Domain scheint falsch zu sein, bitte überprüfen Sie es" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Server scheint kein Active Directory zu sein (es hat keine Benutzerobjekte)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" "Server scheint kein Active Directory zu sein (er hat keine Gruppenobjekte)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Verbindungsparameter scheinen korrekt zu sein, der Test wurde erfolgreich " @@ -1497,31 +1501,31 @@ msgstr "Benutzername mit Leserechten für das eDirectory" msgid "Timeout in seconds of connection to LDAP" msgstr "Timeout in Sekunden der Verbindung zu LDAP" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "eDirectory Authenticator" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "Authentifizierung gegen eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "eDirectory-Verbindungsfehler: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "Ldap-Suchbasis ist falsch" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "LDAP-Benutzerklasse scheint falsch zu sein (kein Benutzer wurde von dieser " "Klasse gefunden)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1530,11 +1534,11 @@ msgstr "" "LDAP-Benutzer-ID-Attribut scheint falsch zu sein (kein Benutzer wurde von " "diesem Attribut gefunden)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Erwartetes Gruppenattribut" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1603,11 +1607,11 @@ msgstr "Umgekehrtes DNS" msgid "If checked, the host will be reversed dns" msgstr "Wenn aktiviert, wird der Host dns rückgängig gemacht" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Interne Strukturen scheinen in Ordnung zu sein" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Beim Authentifikator scheint alles in Ordnung zu sein." @@ -1615,27 +1619,27 @@ msgstr "Beim Authentifikator scheint alles in Ordnung zu sein." msgid "Radius Authenticator" msgstr "Radius-Authentifikator" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "Radius Server IP oder Hostname" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Radius-Authentifizierungsport (normalerweise 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Geheimnis" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Radius-Client-Geheimnis" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "NAS-Kennung" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "NAS-Kennung für Radius-Server" @@ -1657,15 +1661,15 @@ msgstr "" "Wenn gesetzt, wird dieser Wert als Gruppe für alle Umkreisbenutzer " "hinzugefügt" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Fehler beim Testen der Verbindung" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "Verbindung zum Radius-Server fehlgeschlagen" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "Die Verbindung zum Radius-Server scheint in Ordnung zu sein" @@ -1746,15 +1750,15 @@ msgstr "" "Klasse für LDAP-Objekte, die auch auf Gruppenabruf geprüft werden " "(normalerweise leer)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Regex LDAP Authentifikator" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Reguläre Ausdrücke LDAP-Authentifikator" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1762,7 +1766,7 @@ msgstr "" "Ldap-Benutzer-ID attr ist wahrscheinlich falsch (kann keinen Benutzer mit " "beiden Bedingungen finden)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2084,21 +2088,26 @@ msgid "Can't unpublish publications with services in process" msgstr "" "Veröffentlichungen mit laufenden Services können nicht aufgehoben werden" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "Maximale Anzahl von Benutzerdiensten für diese {} erreicht" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "Ein nicht aktives Element kann nicht entfernt werden" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "" "{} Kann nicht entfernt oder abgebrochen werden, da der Status dies nicht " "zulässt" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "Der angeforderte Service ist eingeschränkt" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2106,19 +2115,19 @@ msgstr "" "Ungültiger Service. Der Service ist momentan nicht verfügbar. Bitte versuch " "es später erneut" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "Der angeforderte Transport {} ist für {} nicht gültig" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "Der Service ist auf diesem Gerät nicht erreichbar" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "Basis-MFA" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Ungültiger MFA-Code" @@ -2419,19 +2428,19 @@ msgstr "" "Der Service ist momentan nicht fertig. Bitte versuchen Sie es in einer Weile " "erneut." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "E-Mail-Multifaktor" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "E-Mail-Multi-Faktor-Authentifikator" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "SMTP-Host" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2440,88 +2449,197 @@ msgstr "" "standardmäßigen Port verwenden, fügen Sie ihn nach einem Doppelpunkt hinzu, " "zum Beispiel: smtp.gmail.com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "SMTP-Server" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Sicherheit" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Zu verwendendes Sicherheitsprotokoll" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Benutzer mit Zugriff auf den SMTP-Server" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Passwort des Benutzers mit Zugriff auf den SMTP-Server" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Thema" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Betreff der E-Mail" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Konfig" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Aus der Email" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "E-Mail-Adresse, die als Absender verwendet wird" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "HTML aktivieren" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Aktivieren Sie HTML in E-Mails" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Benutzer ohne MFA-Richtlinie" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Aktion für SMS-Antwortfehler" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Benutzeranmeldung zulassen" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Benutzeranmeldung verweigern" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" +"Erlauben Sie dem Benutzer, sich anzumelden, wenn seine IP in der " +"Netzwerkliste enthalten ist" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" +"Benutzern die Anmeldung verweigern, wenn sich die IP in der Netzwerkliste " +"befindet" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "SMS-Netzwerke" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Netzwerke für die SMS-Authentifizierung" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Ungültiger SMTP-Hostname" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "Prüfe deine Mails. Sie erhalten eine E-Mail mit dem Bestätigungscode" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Radius-OTP-Herausforderung" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Alle Benutzer müssen OTP senden" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Wenn nicht aktiviert, ist ein Authentifizierungsschritt erforderlich, um zu " +"wissen, ob dieser Benutzer OTP eingeben muss. Wenn diese Option aktiviert " +"ist, müssen alle Benutzer OTP eingeben, sodass der Authentifizierungsschritt " +"übersprungen wird." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Radius OTP-Kommunikationsfehleraktion" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Aktion für OTP-Server-Kommunikationsfehler" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Radius-OTP-Netzwerke" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Netzwerke für die Radius-OTP-Authentifizierung" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Benutzer ohne definiertes OTP im Server" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Aktion für Benutzer ohne definierte Radius-Challenge" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "OTP-Code" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Bitte OTP eingeben" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Radius-OTP-Verbindungsfehler" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Ungültiger OTP-Code" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS dachte HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "Einfacher SMS-Versand per MFA über HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "URL-Muster für den SMS-Versand" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2533,16 +2651,16 @@ msgstr "" "{code} - der zu sendende Code * {phone/+phone} - die Telefonnummer * " "{username} - der Benutzername * {justUsername} - der Benutzername ohne @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "HTTP-Server" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Zertifikatsfehler ignorieren" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2550,19 +2668,19 @@ msgstr "" "Wenn diese Option aktiviert ist, wird das Serverzertifikat ignoriert. Dies " "ist nützlich, wenn der Server ein selbstsigniertes Zertifikat verwendet." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "SMS-Sendemethode" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Methode zum Senden von SMS" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "Header für SMS-Anfragen" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2576,18 +2694,11 @@ msgstr "" "der Benutzername * {justUsername} - der Benutzername ohne @... Header sind " "in die Form \"Kopfzeile: Wert\". (ohne die Anführungszeichen)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Parameter für das Senden von SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2601,99 +2712,99 @@ msgstr "" "Telefonnummer * {username} - der Benutzername * {justUsername} - der " "Benutzername ohne @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "SMS-Verschlüsselung" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Verschlüsselung für SMS" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "SMS-Authentifizierungsmethode" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "HTTP-Authentifizierung" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "HTTP-Basis-Auth" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "HTTP-Digest-Auth" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "HTTP-Authentifizierung" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Benutzer oder Token für die SMS-Authentifizierung" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Benutzer oder Token für die SMS-Authentifizierung" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "SMS-Authentifizierungspasswort" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Passwort für die SMS-Authentifizierung" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "SMS-Antwort OK Regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" "Regex für SMS-Antwort OK. Wenn leer, wird die Antwort als OK betrachtet, " "wenn der Statuscode 200 ist." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "HTTP-Antwort" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "SMS-Antwort-Fehleraktion" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Aktion für SMS-Antwortfehler" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Benutzeranmeldung ohne MFA zulassen" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Benutzeranmeldung verweigern" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "SMS-Versand fehlgeschlagen" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "SMS-Antwortfehler" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "MFA-Code" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "Schau auf dein Telefon. Sie erhalten eine SMS mit dem Bestätigungscode" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Beispiel Multifaktor" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Beispiel für einen Multi-Faktor-Authentifikator" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Beispiel für ein nutzloses Feld" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Dies ist ein nutzloses Feld für Muster- und Testzwecke" @@ -2886,6 +2997,17 @@ msgstr "" "Maschinen verwendet. (Benötigt Python> >= 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"UDS Actor für Centos, Fedora, RH, Suse, ... Linux-Rechner. Wird NUR für " +"statische Maschinen verwendet. (Erfordert Python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2893,7 +3015,7 @@ msgstr "" "Legacy UUDS Actor für Debian, Ubuntu, ... Linux-Maschinen " "(Erfordert Python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2901,7 +3023,7 @@ msgstr "" "Legacy UDS Actor für CentOS, Fedora, RH, ... Linux-Maschinen " "(Benötigt Python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4560,6 +4682,17 @@ msgstr "" "verfügbar sind (auf einigen Betriebssystemen), sich über OpenGnsys " "einzuschalten." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "max. Erlaubte Dienste" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "" +"Maximale Anzahl zulässiger Dienste (0 oder weniger bedeutet keine Begrenzung)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "OpenNebula-Plattformanbieter" @@ -5252,19 +5385,11 @@ msgstr "Pfad starten" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Pfad, auf dem die App gestartet wird. (zB f:\\example\\ folder)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Max. Allowd-Dienste" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Maximale Anzahl erlaubter Services (0 bedeutet keine Begrenzung)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Warten Sie die erzeugten Prozesse" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5272,7 +5397,7 @@ msgstr "" "Wenn aktiv, wartet RDS Akteur, bis die Anwendung und alle erzeugten Prozesse " "abgeschlossen sind, bevor die Abmeldung der App in Betracht gezogen wird" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Ein gültiger Anwendungspfad ist erforderlich" @@ -7221,10 +7346,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "Der Authentifikator liefert keine Informationen" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} Tage" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} Std" diff --git a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po index e81bc194..b8f6ff5e 100644 --- a/server/src/uds/locale/de/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/de/LC_MESSAGES/djangojs.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020,2022\n" "Language-Team: German (http://www.transifex.com/openuds/openuds/language/" @@ -511,14 +511,14 @@ msgstr "Dienstleistungen Pool" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Gruppen" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Service-Pools" @@ -710,7 +710,7 @@ msgstr "Service zuweisen" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Stornieren" @@ -1062,8 +1062,8 @@ msgstr "Hinzufügen" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "OK" @@ -1408,7 +1408,7 @@ msgstr "Diagramme" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Information für" @@ -1543,7 +1543,11 @@ msgstr "Administrator" msgid "Staff member" msgstr "Mitarbeiter" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "MFA" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Zugewiesene Services" diff --git a/server/src/uds/locale/en/LC_MESSAGES/django.po b/server/src/uds/locale/en/LC_MESSAGES/django.po index cd8a3a18..331f2966 100644 --- a/server/src/uds/locale/en/LC_MESSAGES/django.po +++ b/server/src/uds/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +29,7 @@ msgstr "" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "" @@ -39,8 +39,8 @@ msgstr "" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "" @@ -210,7 +210,7 @@ msgid "If active, authenticator will be visible for users" msgstr "" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -226,11 +226,11 @@ msgstr "" msgid "MFA provider to use for this authenticator" msgstr "" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "" @@ -581,7 +581,7 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -599,7 +599,7 @@ msgstr "" #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -644,12 +644,12 @@ msgstr "" msgid "Available reports" msgstr "" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -713,13 +713,13 @@ msgstr "" msgid "Advanced" msgstr "" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "" @@ -983,15 +983,15 @@ msgstr "" msgid "Comment" msgstr "" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1003,20 +1003,20 @@ msgstr "" msgid "User" msgstr "" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1034,48 +1034,48 @@ msgstr "" msgid "Username" msgstr "" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "" @@ -1163,9 +1163,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1243,11 +1243,15 @@ msgid "" msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "" @@ -1261,50 +1265,50 @@ msgid "Authenticate against Active Directory" msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "" @@ -1431,40 +1435,40 @@ msgstr "" msgid "Timeout in seconds of connection to LDAP" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1525,11 +1529,11 @@ msgstr "" msgid "If checked, the host will be reversed dns" msgstr "" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "" @@ -1537,27 +1541,27 @@ msgstr "" msgid "Radius Authenticator" msgstr "" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "" @@ -1577,15 +1581,15 @@ msgstr "" msgid "If set, this value will be added as group for all radius users" msgstr "" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "" @@ -1660,21 +1664,21 @@ msgid "" "(normally empty)" msgstr "" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" msgstr "" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -1964,37 +1968,41 @@ msgstr "" msgid "Can't unpublish publications with services in process" msgstr "" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +msgid "Maximum number of user services reached for this {}" +msgstr "" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" msgstr "" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "" @@ -2291,99 +2299,197 @@ msgstr "" msgid "Service not ready at this moment. Please, try again in a while." msgstr "" -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" msgstr "" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +msgid "Allow user login" +msgstr "" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +msgid "Deny user login" +msgstr "" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +msgid "SMS networks" +msgstr "" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +msgid "Networks for SMS authentication" +msgstr "" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "" + +#: mfas/Radius/mfa.py:109 +msgid "Action for OTP server communication error" +msgstr "" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "" + +#: mfas/Radius/mfa.py:125 +msgid "Networks for Radius OTP authentication" +msgstr "" + +#: mfas/Radius/mfa.py:131 +msgid "User without defined OTP in server" +msgstr "" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "" + +#: mfas/Radius/mfa.py:194 +msgid "OTP Code" +msgstr "" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +msgid "Radius OTP connection error" +msgstr "" + +#: mfas/Radius/mfa.py:279 +msgid "Invalid OTP code" +msgstr "" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "" -#: mfas/SMS/mfa.py:29 +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2392,34 +2498,34 @@ msgid "" "* {justUsername} - the username without @...." msgstr "" -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." msgstr "" -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2429,11 +2535,11 @@ msgid "" "Headers are in the form of \"Header: Value\". (without the quotes)" msgstr "" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "" -#: mfas/SMS/mfa.py:84 +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2443,97 +2549,93 @@ msgid "" "* {justUsername} - the username without @...." msgstr "" -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +msgid "SMS response error" +msgstr "" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "" @@ -2718,17 +2820,23 @@ msgstr "" #: osmanagers/LinuxOsManager/__init__.py:80 msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" + +#: osmanagers/LinuxOsManager/__init__.py:90 +msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" msgstr "" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" msgstr "" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4302,6 +4410,14 @@ msgid "" "try to power on through OpenGnsys." msgstr "" +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +msgid "Max. Allowed services" +msgstr "" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "" @@ -4933,25 +5049,17 @@ msgstr "" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" msgstr "" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "" @@ -6756,10 +6864,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "" diff --git a/server/src/uds/locale/en/LC_MESSAGES/djangojs.po b/server/src/uds/locale/en/LC_MESSAGES/djangojs.po index 4ab8d40f..71f5d564 100644 --- a/server/src/uds/locale/en/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/en/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -506,14 +506,14 @@ msgstr "" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "" @@ -703,7 +703,7 @@ msgstr "" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "" @@ -1054,8 +1054,8 @@ msgstr "" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "" @@ -1400,7 +1400,7 @@ msgstr "" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "" @@ -1533,7 +1533,11 @@ msgstr "" msgid "Staff member" msgstr "" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "" diff --git a/server/src/uds/locale/es/LC_MESSAGES/django.po b/server/src/uds/locale/es/LC_MESSAGES/django.po index 4509f390..495fbf5d 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/django.po +++ b/server/src/uds/locale/es/LC_MESSAGES/django.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Spanish (http://www.transifex.com/openuds/openuds/language/" @@ -46,7 +46,7 @@ msgstr "Cuentas" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Nombre" @@ -56,8 +56,8 @@ msgstr "Nombre" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Comentarios" @@ -227,7 +227,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Si está activo, el autenticador será visible para los usuarios" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -243,11 +243,11 @@ msgstr "Proveedor de MFA" msgid "MFA provider to use for this authenticator" msgstr "Proveedor de MFA que se usará para este autenticador" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Demasiados resultados..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Depura tu consulta" @@ -605,7 +605,7 @@ msgstr "Verifique el certificado" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -623,7 +623,7 @@ msgstr "Servidor (IP o FQDN) que servirá como proxy." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -670,12 +670,12 @@ msgstr "" msgid "Available reports" msgstr "Informes disponibles" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -741,13 +741,13 @@ msgstr "Proxy para servicios detrás de un firewall" msgid "Advanced" msgstr "Avanzado" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Con errores" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "Ok" @@ -1031,15 +1031,15 @@ msgstr "Registro de cambios" msgid "Comment" msgstr "Comentario" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Admin" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Miembro del personal" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1051,20 +1051,20 @@ msgstr "Miembro del personal" msgid "User" msgstr "Usuario" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Usuarios de {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Usuarios actuales" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1082,48 +1082,48 @@ msgstr "Usuarios actuales" msgid "Username" msgstr "Nombre de usuario" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Rol" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "estado" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Último acceso" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "El nombre de usuario no puede estar vacío" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "Este usuario ya existe (error de clave duplicada)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Grupos de {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Grupos actuales" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "Grupo UDS" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Metagrupo" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "Metagrupo UDS " -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "El nombre del grupo es obligatorio" @@ -1216,9 +1216,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1303,11 +1303,15 @@ msgstr "" "principal no sea accesible" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "atributo MFA" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Atributo desde donde extraer el código MFA" @@ -1321,52 +1325,52 @@ msgid "Authenticate against Active Directory" msgstr "Autenticar contra Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "" "Debe especificar el nombre de usuario con este formato: " "NOMBREDEUSUARIO@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Nombre de usuario no encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Grupo no encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Demasiados resultados, sea más específico" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Dominio parece incorrecto, por favor compruébelo" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "Servidor no parece un Active Directory (no tiene objetos de usuario)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "Servidor no parece un Active Directory (no tiene objetos de grupo)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Los parámetros de conexión parecen correctos, la prueba fue ejecutada con " @@ -1503,31 +1507,31 @@ msgstr "Nombre de usuario con privilegios de lectura en eDirectory" msgid "Timeout in seconds of connection to LDAP" msgstr "Tiempo de espera en segundos de conexión a LDAP" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "Autenticador eDirectory " -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "Autenticar contra eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Error de conexión con Edirectory: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "La base de búsqueda LDAP es incorrecta" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "La clase de usuario de LDAP parece ser incorrecta (ningún usuario encontrado " "por esa clase)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1536,11 +1540,11 @@ msgstr "" "El atributo de id de usuario Ldap parece ser incorrecto (ningún usuario " "encontrado por ese atributo)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Atributo de grupo previsto" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1608,11 +1612,11 @@ msgstr "DNS Inversa" msgid "If checked, the host will be reversed dns" msgstr "Si está seleccionado, el host será DNS Inversa" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Las estructuras internas parecen correctas" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Parace que todo funciona correctamente en el autenticador. " @@ -1620,27 +1624,27 @@ msgstr "Parace que todo funciona correctamente en el autenticador. " msgid "Radius Authenticator" msgstr "Autenticador Radius" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "Nombre de host o IP del servidor Radius" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Puerto de autenticación Radius (generalmente 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Secret" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "\"Secret\" del cliente Radius" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "Identificador NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Identificador NAS para Radius Server" @@ -1662,15 +1666,15 @@ msgstr "" "Si se establece, este valor se agregará como grupo para todos los usuarios " "de radius" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Error al probar la conexión" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "La conexión al servidor Radius falló" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "La conexión al servidor Radius parece estar bien" @@ -1751,15 +1755,15 @@ msgstr "" "Clase de objetos LDAP que se verificará también para la recuperación de los " "grupos (normalmente vacío)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Autenticador Regex LDAP" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Expresiones regulares autenticador LDAP " -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1767,7 +1771,7 @@ msgstr "" "El atributo del id de usuario LDAP es probablemente incorrecto (no se puede " "encontrar ningún usuario con ambas condiciones)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2088,19 +2092,24 @@ msgstr "No se puede anular una publicación que no se está utilizando" msgid "Can't unpublish publications with services in process" msgstr "No se pueden anular publicaciones con servicios en proceso" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "Número máximo de servicios de usuario alcanzados para este {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "No se puede eliminar un elemento que no está activo" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "No se puede eliminar ni cancelar {} porque su estado no lo permite" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "El servicio solicitado está restringido." -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2108,19 +2117,19 @@ msgstr "" "Servicio inválido. El servicio no está disponible en estos momentos. Por " "favor, inténtelo de nuevo pasados unos instantes." -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "El transporte solicitado {} no es válido para {}" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "El servicio no es accesible desde este dispositivo." -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "MFA base" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Código MFA no válido" @@ -2421,19 +2430,19 @@ msgstr "" "El servicio no está disponible en este momento. Por favor, inténtelo de " "nuevo pasados unos instantes." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "Correo electrónico multifactor" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Autenticador multifactor de correo electrónico" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "Anfitrión SMTP" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2442,88 +2451,194 @@ msgstr "" "puerto no estándar, agréguelo después de dos puntos, por ejemplo: smtp.gmail." "com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "Servidor SMTP" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Seguridad" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Protocolo de seguridad a utilizar" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Usuario con acceso al servidor SMTP" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Contraseña del usuario con acceso al servidor SMTP" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Tema" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Asunto del correo electrónico" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Configuración" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Desde el e-mail" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "Dirección de correo electrónico que se utilizará como remitente" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Habilitar HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Habilitar HTML en correos electrónicos" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Usuario sin política de MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Acción para el error de respuesta de SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Permitir inicio de sesión de usuario" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Denegar inicio de sesión de usuario" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" +"Permitir que el usuario inicie sesión si su IP está en la lista de redes" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" +"Denegar al usuario el inicio de sesión si su IP está en la lista de redes" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "Redes SMS" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Redes para la autenticación de SMS" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Nombre de host SMTP no válido" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "Revisa tu correo. Recibirás un email con el código de verificación" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Desafío OTP de radio" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Todos los usuarios deben enviar OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Si no está marcado, se necesita un paso de autenticación para saber si este " +"usuario debe ingresar a OTP. Si está marcado, todos los usuarios deben " +"ingresar OTP, por lo que se omite el paso de autenticación." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Acción de error de comunicación Radius OTP" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Acción para el error de comunicación del servidor OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Redes OTP de radio" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Redes para autenticación Radius OTP" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Usuario sin OTP definida en servidor" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Acción para usuario sin Radius Challenge definido" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "Código OTP" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Por favor ingrese OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Error de conexión OTP de radio" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Código OTP no válido" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS pensamiento HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "MFA de envío de SMS simple usando HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "Patrón de URL para envío de SMS" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2536,16 +2651,16 @@ msgstr "" "{username} - el nombre de usuario * {justUsername} - el nombre de usuario " "sin @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "Servidor HTTP" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Ignorar errores de certificado" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2553,19 +2668,19 @@ msgstr "" "Si está marcado, se ignorará el certificado del servidor. Esto es útil si el " "servidor usa un certificado autofirmado." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "Método de envío de SMS" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Método para enviar SMS" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "Encabezados para solicitudes de SMS" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2580,18 +2695,11 @@ msgstr "" "usuario sin @.... Los encabezados están en la forma de \"Encabezado: Valor" "\". (sin las comillas)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Parámetros para el envío de SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2605,99 +2713,99 @@ msgstr "" "teléfono * {username} - el nombre de usuario * {justUsername} - el nombre de " "usuario sin @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "Codificación de SMS" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Codificación para SMS" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "Método de autenticación por SMS" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "Autenticación HTTP" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "Autenticación básica HTTP" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "Autenticación de resumen HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "Autenticación HTTP" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Usuario o token de autenticación por SMS" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Usuario o token para autenticación por SMS" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "Contraseña de autenticación de SMS" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Contraseña para la autenticación por SMS" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "Respuesta de SMS OK expresión regular" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" "Regex para respuesta SMS OK. Si está vacío, la respuesta se considera " "correcta si el código de estado es 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "Respuesta HTTP" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "Acción de error de respuesta de SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Acción para el error de respuesta de SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Permitir que el usuario inicie sesión sin MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Denegar el inicio de sesión del usuario" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "Envío de SMS fallido" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "Error de respuesta de SMS" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "Código MFA" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "Revisa tu teléfono. Recibirás un SMS con el código de verificación" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Ejemplo de multifactor" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Ejemplo de autenticador multifactor" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Ejemplo de campo inútil" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Este es un campo inútil, para fines de muestra y prueba." @@ -2889,6 +2997,17 @@ msgstr "" "estáticas. (Requiere python> = 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"Actor UDS para máquinas Linux Centos, Fedora, RH, Suse,... Usado SOLAMENTE " +"para máquinas estáticas. (Requiere python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2896,7 +3015,7 @@ msgstr "" "Actor UDSLegacy para máquinas Linux: Debian, Ubuntu... (requiere " "Python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2904,7 +3023,7 @@ msgstr "" "Actor UDS Legacy para máquinas Linux: Centos, Fedora, RH, ... " "(Requiere python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4555,6 +4674,17 @@ msgstr "" "usuario (en algunos sistemas operativos) intentarán encenderse a través de " "OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "máx. Servicios permitidos" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "" +"Número máximo de servicios permitidos (0 o menos significa que no hay límite)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "Proveedor de plataforma OpenNebula" @@ -5244,19 +5374,11 @@ msgstr "Ruta de inicio" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Ruta donde se iniciará la aplicación. (ejemplo: f:\\ejemplo\\carpeta)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Máx. servicios permitidos" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Número máximo de servicios permitidos (0 significa sin límite)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Esperar procesos generados" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5264,7 +5386,7 @@ msgstr "" "Si activa RDS Actor esperará hasta la aplicación y todos los procesos " "generados acaben antes de considerar la aplicación ha finalizado." -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Se requiere una ruta de aplicación válida" @@ -7193,10 +7315,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "El Autenticador no proporciona información" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} días" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} horas" diff --git a/server/src/uds/locale/es/LC_MESSAGES/djangojs.po b/server/src/uds/locale/es/LC_MESSAGES/djangojs.po index 68bd18a6..d64f34cd 100644 --- a/server/src/uds/locale/es/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/es/LC_MESSAGES/djangojs.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Spanish (http://www.transifex.com/openuds/openuds/language/" @@ -521,14 +521,14 @@ msgstr "Pool de Servicios" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Grupos" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Pools de Servicios" @@ -720,7 +720,7 @@ msgstr "Servicios asignados" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Cancelar" @@ -1071,8 +1071,8 @@ msgstr "Añadir" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "Ok" @@ -1417,7 +1417,7 @@ msgstr "Gráficos" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Información para" @@ -1553,7 +1553,11 @@ msgstr "Admin" msgid "Staff member" msgstr "Miembro del personal" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "AMF" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Servicios Asignados" diff --git a/server/src/uds/locale/eu/LC_MESSAGES/django.po b/server/src/uds/locale/eu/LC_MESSAGES/django.po index 6d2e3a3a..7b1305ae 100644 --- a/server/src/uds/locale/eu/LC_MESSAGES/django.po +++ b/server/src/uds/locale/eu/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Adolfo Gómez , 2015\n" "Language-Team: Basque (http://www.transifex.com/openuds/openuds/language/" @@ -32,7 +32,7 @@ msgstr "Kontuak" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Izena" @@ -42,8 +42,8 @@ msgstr "Izena" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Iruzkinak" @@ -213,7 +213,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Aktibo badago, autentifikatzailea ikusgai egongo da erabiltzaileentzat" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -229,11 +229,11 @@ msgstr "MFA hornitzailea" msgid "MFA provider to use for this authenticator" msgstr "MFA hornitzailea autentifikatzaile honetarako erabiltzeko" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Emaitz gehiegi ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Zure kontsulta hobetu" @@ -593,7 +593,7 @@ msgstr "Egiaztatu ziurtagiria" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -611,7 +611,7 @@ msgstr "Proxy gisa erabiliko den zerbitzaria (IP edo FQDN)." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -658,12 +658,12 @@ msgstr "" msgid "Available reports" msgstr "Txosten erabilgarriak" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -729,13 +729,13 @@ msgstr "Suebaki baten atzean zerbitzuen proxya" msgid "Advanced" msgstr "Aurreratua" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Erroreekin" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "Ondo" @@ -1016,15 +1016,15 @@ msgstr "Aldaketa Log-a" msgid "Comment" msgstr "Iruzkina" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Admin" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Langile Kidea" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1036,20 +1036,20 @@ msgstr "Langile Kidea" msgid "User" msgstr "Erabiltzailea" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "{0} erabiltzaile" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Momentuko erabiltzaileak" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1067,48 +1067,48 @@ msgstr "Momentuko erabiltzaileak" msgid "Username" msgstr "Erabiltzaile izena" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Rol" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "Egoera" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Azken sarrera" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "Erabiltzaile izena ezin da hutsik egon" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "Dagoeneko erabiltzailea existitzen da (Hutsa,gako bikoiztua)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "{0} talde" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Momentuko taldeak" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "UDS Taldea" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Meta-taldea" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "UDS Meta-taldea" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "Taldearen izena beharrezkoa da" @@ -1199,9 +1199,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1286,11 +1286,15 @@ msgstr "" "heltzen ez bada" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "MFA atributua" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Atributua nondik atera MFA kodea" @@ -1304,54 +1308,54 @@ msgid "Authenticate against Active Directory" msgstr "Active Directory-aren kontra autentikatu" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Erabiltzailea USERNAME@DOMAIN.DOM formatuan jarri behar da " -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Erabiltzaile ez da aurkitu" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Ez da aurkitu talderik" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "konkretuagoa izan, emaitz gehiegi daude eta." -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Domeinua txarto omen dago, egiazta ezazu." -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Zerbitzaria ez omen da Active Directory Zerbitzari bat (ez du erabiltzaile " "objeturik)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" "Zerbitzaria ez omen da Active Directory Zerbitzari bat (ez du talde " "objeturik)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "Konexio parametruak ondo daudela dirudi, proba ondo joan da." @@ -1483,31 +1487,31 @@ msgstr "eDirectory-an irakurtzeko pribilegioa daukan erabiltzailea" msgid "Timeout in seconds of connection to LDAP" msgstr "Denbora-muga LDAP konexio segundotan" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "eDirectory autentikatzailea" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "eDirectory-ren kontra autentikatu" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Zuzendaritza konexioaren errorea: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "LDAP bilaketa oinarria txarto dago" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "LDAP erabiltzaile mota txarto dagoela dirudi (ez da aurkitu mota horretako " "erabiltzailerik)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1516,11 +1520,11 @@ msgstr "" "Ldap erabiltzailearen id atributua okerra dela dirudi (atributuak aurkitu ez " "dituen erabiltzaileak)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Itxarondako talde atributua" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1588,11 +1592,11 @@ msgstr "Atzeranzko DNS-a" msgid "If checked, the host will be reversed dns" msgstr "Aktibo izanez gero, ostalariak atzeranzko dns-a izango du" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Barne egitura ondo dagoela dirudi" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Autentikatzailea ondo dagoela dirudi " @@ -1600,27 +1604,27 @@ msgstr "Autentikatzailea ondo dagoela dirudi " msgid "Radius Authenticator" msgstr "Erradioaren autentifikatzailea" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "Radius Server IP edo Ostalari izena" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Erradioaren autentifikazio ataka (normalean 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Sekretua" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Erradioaren bezeroaren sekretua" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "NAS identifikatzailea" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "NAS identifikatzailea Radius Server zerbitzariarentzat" @@ -1642,15 +1646,15 @@ msgstr "" "Ezartzen bada, balio hori talde gisa gehituko da erradioko erabiltzaile " "guztientzat" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Errorea konexioa probatzean" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "Radius zerbitzarirako konexioak huts egin du" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "Badirudi Radius zerbitzarirako konexioa ondo dagoela" @@ -1733,15 +1737,15 @@ msgstr "" "Taldeak berreskuratzeko hautatutako taldeentzako LDAP objektuentzako klase " "(normalean hutsik dago)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Regex LDAP autentikatzailea" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "LDAP autentikatzailearen adierazpen erregularrak" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1749,7 +1753,7 @@ msgstr "" "LDAP erabiltzairen ID atributua txarto dagoela dirudi (ez da aurkitu " "balditza biak betetzen dituen erabiltzailerik)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2060,19 +2064,24 @@ msgstr "Ezin da argitalpen erabilgarririk argitaratu" msgid "Can't unpublish publications with services in process" msgstr "Ezin dira argitalpenak argitaratu zerbitzuen prozesuan" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "{} honetarako erabiltzaile-zerbitzuen gehienezko kopurua lortu da" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "Ezin da elementu ez aktiboa ezabatu" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "Ezin da {} kendu edo ezeztatu {} egoera ez baimendu horrek" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "Eskatutako zerbitzua geldiarazi egiten da" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2080,19 +2089,19 @@ msgstr "" "Zerbitzu baliogabea. Une honetan zerbitzua ez dago erabilgarri. Saiatu " "geroago" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "Eskatutako garraioa {} ez da {} baliozkoa" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "Zerbitzua ez dago gailutik eskura" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "Oinarrizko MFA" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "MFA kodea baliogabea" @@ -2391,19 +2400,19 @@ msgstr "Ez da aurkitu garraiorik" msgid "Service not ready at this moment. Please, try again in a while." msgstr "Zerbitzua ez dago prest une honetan. Saiatu berriz pixka bat." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "Posta elektronikoa Faktore anitzeko" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Posta elektronikoa Faktore anitzeko autentifikazioa" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "SMTP ostalaria" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2412,88 +2421,193 @@ msgstr "" "erabiltzen ari bazara, gehitu bi punturen ondoren, adibidez: smtp.gmail." "com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "SMTP zerbitzaria" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Segurtasuna" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Erabili beharreko segurtasun-protokoloa" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "SMTP zerbitzarirako sarbidea duen erabiltzailea" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "SMTP zerbitzarirako sarbidea duen erabiltzailearen pasahitza" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Gaia" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Posta elektronikoaren gaia" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Konfig" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Posta elektronikotik" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "Igorle gisa erabiliko den helbide elektronikoa" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Gaitu HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Gaitu HTML mezu elektronikoetan" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "MFA politikarik gabeko erabiltzailea" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "SMSen erantzunaren errorearen ekintza" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Baimendu erabiltzaileari saioa hasteko" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Ukatu erabiltzailearen saioa" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "Baimendu erabiltzaileari saioa hasteko IP sareen zerrendan badago" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "Ukatu erabiltzaileari saioa hasteko IP sareen zerrendan badago" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "SMS sareak" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "SMS autentifikaziorako sareak" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "SMTP ostalari-izen baliogabea" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "" +"Begiratu zure posta. Mezu elektroniko bat jasoko duzu egiaztapen-kodearekin" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Radius OTP Erronka" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Erabiltzaile guztiek OTP bidali behar dute" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Hautatu gabe badago, autentifikazio-urrats bat behar da erabiltzaile honek " +"OTP sartu behar duen jakiteko. Hautatzen bada, erabiltzaile guztiek OTP " +"sartu beharko dute, beraz, autentifikazio-urratsak saltatzen dira." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Radius OTP komunikazio-errorearen ekintza" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "OTP zerbitzariaren komunikazio-errorearen ekintza" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Radius OTP sareak" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Radius OTP autentifikaziorako sareak" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Zerbitzarian OTP definitu gabeko erabiltzailea" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Radius Challenge definitu gabeko erabiltzaileentzako ekintza" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "OTP kodea" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Mesedez, sartu OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Radius OTP konexio-errorea" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "OTP kodea baliogabea" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS Pentsamendua HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "SMS sinpleak MFA bidaltzen ditu HTTP erabiliz" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "SMSak bidaltzeko URL eredua" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2505,16 +2619,16 @@ msgstr "" "beharreko kodea * {telefonoa/+telefonoa} - telefono-zenbakia * {erabiltzaile-" "izena} - erabiltzaile-izena * {justUsername} - erabiltzaile-izena @ gabe...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "HTTP zerbitzaria" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Ez ikusi ziurtagiri-erroreei" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2522,19 +2636,19 @@ msgstr "" "Hautatzen bada, zerbitzariaren ziurtagiria ez ikusi egingo da. Hau " "erabilgarria da zerbitzariak berez sinatutako ziurtagiria erabiltzen badu." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "SMSak bidaltzeko metodoa" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "SMSak bidaltzeko metodoa" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "SMS eskaeren goiburuak" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2548,18 +2662,11 @@ msgstr "" "izena} - erabiltzaile-izena * {justUsername} - erabiltzaile-izena @ gabe.... " "Goiburuak sartuta daude \"Goiburua: balioa\" forma. (komatxorik gabe)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "SMS POST/PUT bidaltzeko parametroak" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2573,99 +2680,99 @@ msgstr "" "zenbakia * {erabiltzaile-izena} - erabiltzaile-izena * {justUsername} - " "erabiltzaile-izena @ gabe...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "SMS kodeketa" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "SMSetarako kodeketa" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "SMS autentifikazio metodoa" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "HTTP autentifikazioa" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "HTTP oinarrizko autentifikazioa" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "HTTP Digest Auth" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "HTTP autentifikazioa" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "SMS autentifikazioaren erabiltzailea edo tokena" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "SMS autentifikaziorako erabiltzailea edo tokena" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "SMS autentifikazio pasahitza" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "SMS autentifikaziorako pasahitza" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "SMS erantzuna OK regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" "SMS erantzunerako erregulazioa Ados. Hutsik badago, erantzuna ontzat joko da " "egoera kodea 200 bada." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "HTTP Erantzuna" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "SMS erantzunaren errore ekintza" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "SMSen erantzunaren errorearen ekintza" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Baimendu erabiltzaileari saioa hasteko MFArik gabe" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Ukatu erabiltzaileari saioa hastea" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "Ezin izan da SMS bidaltzean" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "SMS erantzunaren errorea" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "MFA kodea" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "Egiaztatu zure telefonoa. SMS bat jasoko duzu egiaztapen-kodearekin" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Faktore anitzeko lagina" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Faktore anitzeko autentifikazio lagina" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Alferrikako eremu lagina" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Hau alferrikako eremua da, laginak eta probak egiteko" @@ -2855,6 +2962,17 @@ msgstr "" "BAKARRA erabiltzen da. (Python behar du = = 3,6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"UDS Actor Centos, Fedora, RH, Suse, ... Linux makinetarako. Makina " +"estatikoetarako BAKARRIK erabiltzen da. (Python >= 3.6 behar du)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2862,7 +2980,7 @@ msgstr "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2870,7 +2988,7 @@ msgstr "" "Legacy UDS Centos, Fedora, RH, ... Linux makinen aktorea (python " "2.7 behar du)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4517,6 +4635,18 @@ msgstr "" "Aktiboak badira, erabiltzailea konektatzeko erabilgarri ez dauden makinak " "(sistema eragile batzuetan) OpenGnsys bidez saiatuko dira." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "Max. Baimendutako zerbitzuak" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "" +"Onartutako zerbitzuen gehienezko kopurua (0 edo gutxiago mugarik ez dela " +"esan nahi du)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "OpenNebula plataforma hornitzailea" @@ -5205,19 +5335,11 @@ msgstr "Hasi bidea" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Aplikazioa abiaraziko den bidea. (hau da, f: \\ adibidea \\ karpeta)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Gehienez baimenduritako zerbitzuak" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Zerbitzu baimenduen gehienezko kopurua (0 ez da mugarik)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Itxaron prozesu abiarazleak" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5225,7 +5347,7 @@ msgstr "" "Aktibo badago, RDS Aktorea aplikazioa eta abiarazitako prozesuak amaitu arte " "itxaron egingo da saioa amaitu aurretik" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Baliozko aplikazio bide bat behar da" @@ -7141,10 +7263,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "Autentikatzaileak ez du informaziorik eman." -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} egun" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} ordu" diff --git a/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po b/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po index 4d5e16de..2beeba5c 100644 --- a/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/eu/LC_MESSAGES/djangojs.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Basque (http://www.transifex.com/openuds/openuds/language/" @@ -513,14 +513,14 @@ msgstr "Zerbitzu-multzoak" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Taldeak" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Zerbitzu-multzoak" @@ -710,7 +710,7 @@ msgstr "Esleitu zerbitzua" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Ezeztatu" @@ -1061,8 +1061,8 @@ msgstr "Gehitu" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "Ados" @@ -1407,7 +1407,7 @@ msgstr "Taulak" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Informazioa honentzako" @@ -1542,7 +1542,11 @@ msgstr "Admin" msgid "Staff member" msgstr "Langilea" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "MFA" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Zerbitzu esleituak" diff --git a/server/src/uds/locale/fr/LC_MESSAGES/django.po b/server/src/uds/locale/fr/LC_MESSAGES/django.po index 1528fd50..8e53b831 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/django.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Adolfo Gómez , 2012\n" "Language-Team: French (http://www.transifex.com/openuds/openuds/language/" @@ -33,7 +33,7 @@ msgstr "Comptes" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Nom" @@ -43,8 +43,8 @@ msgstr "Nom" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Commentaires" @@ -215,7 +215,7 @@ msgstr "" "S'il est actif, l'authentificateur sera visible pour les utilisateurs" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -231,11 +231,11 @@ msgstr "Fournisseur MFA" msgid "MFA provider to use for this authenticator" msgstr "Fournisseur MFA à utiliser pour cet authentificateur" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Trop de résultats ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Affinez votre requête" @@ -594,7 +594,7 @@ msgstr "Certificat de vérification" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -612,7 +612,7 @@ msgstr "Serveur (IP ou FQDN) qui servira de proxy." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -661,12 +661,12 @@ msgstr "" msgid "Available reports" msgstr "Rapports disponibles" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -732,13 +732,13 @@ msgstr "Proxy pour les services derrière un pare-feu" msgid "Advanced" msgstr "Avancé" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Avec Erreurs" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "Bien" @@ -1025,15 +1025,15 @@ msgstr "Changelog" msgid "Comment" msgstr "Commentaire" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Admin" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Membre du personnel" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1045,20 +1045,20 @@ msgstr "Membre du personnel" msgid "User" msgstr "Utilisateur" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Utilisateurs de {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Utilisateurs actuels" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1076,48 +1076,48 @@ msgstr "Utilisateurs actuels" msgid "Username" msgstr "Nom d'utilisateur" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Rôle" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "État" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Dernier accès" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "Le nom d'utilisateur ne peut pas être vide" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "L'utilisateur existe déjà (erreur de clé en double)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Groupes de {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Groupes actuels" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "Groupe d'UDS" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Groupe Meta" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "UDS Meta Group" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "Le nom du groupe est requis" @@ -1211,9 +1211,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1298,11 +1298,15 @@ msgstr "" "principal ne serait pas accessible" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "Attribut MFA" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Attribut d'où extraire le code MFA" @@ -1316,54 +1320,54 @@ msgid "Authenticate against Active Directory" msgstr "S'authentifier sur Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Doit spécifier le nom d'utilisateur sous la forme USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Nom d'utilisateur introuvable" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Groupe introuvable" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Trop de résultats, être plus spécifique" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Domaine semble être incorrect, veuillez bien consulter le" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Serveur ne semble pas un serveur Active Directory (il n'a pas d'objets " "utilisateur)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" "Serveur ne semble pas un serveur Active Directory (il n'a pas d'objets de " "groupe)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "Connexion params semblent correctes, le test a été correctement exécutée" @@ -1503,31 +1507,31 @@ msgstr "Nom d'utilisateur avec des privilèges de lecture sur l'eDirectory" msgid "Timeout in seconds of connection to LDAP" msgstr "Délai en secondes de la connexion à LDAP" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "eDirectory authentificateur" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "S'authentifier auprès d'eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Erreur de connexion Edirectory: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "Base de recherche LDAP est incorrect" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "Classe d'utilisateur LDAP semble incorrect (aucun utilisateur trouvé par " "cette classe)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1536,11 +1540,11 @@ msgstr "" "Attribut d'id utilisateur LDAP semble incorrect (aucun utilisateur trouvée " "par qui attribut)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Attribut groupe attendue " -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1610,11 +1614,11 @@ msgstr "Reverse-DNS" msgid "If checked, the host will be reversed dns" msgstr "S'il est activé, l'hôte sera DNS inversée" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Les structures internes semblent ok" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Tout semble ok dans l'authentificateur." @@ -1622,27 +1626,27 @@ msgstr "Tout semble ok dans l'authentificateur." msgid "Radius Authenticator" msgstr "Authentificateur Radius" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "IP ou nom d'hôte du serveur Radius" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Port d'authentification Radius (généralement 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Secret" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Secret client de rayon" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "Identifiant NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Identifiant NAS pour le serveur Radius" @@ -1666,15 +1670,15 @@ msgstr "" "Si elle est définie, cette valeur sera ajoutée en tant que groupe pour tous " "les utilisateurs du rayon" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Erreur de test de connexion" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "Échec de la connexion au serveur Radius" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "La connexion au serveur Radius semble correcte" @@ -1757,15 +1761,15 @@ msgstr "" "Classe d’objets LDAP qui sera également vérifiée pour la récupération des " "groupes (normalement vide)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Authentificateur LDAP Regex" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Authentificateur de LDAP d'Expressions régulière" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1773,7 +1777,7 @@ msgstr "" "LDAP user id attr est probablement faux (ne peut pas trouver n'importe quel " "utilisateur avec les deux conditions)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2095,20 +2099,25 @@ msgid "Can't unpublish publications with services in process" msgstr "" "Ne peut annuler la publication des publications avec services en processus" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "Nombre maximum de services utilisateur atteint pour ce {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "Impossible de supprimer un élément non actif" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "" "Impossible de supprimer ni d'annuler {} car son état ne le permet pas" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "Le service demandé est restreint" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2116,19 +2125,19 @@ msgstr "" "Service non valide. Le service n'est pas disponible en ce moment. SVP, " "essayez plus tard" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "Le transport demandé {} n'est pas valide pour {}." -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "Le service n'est pas accessible depuis cet appareil" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "AMF de base" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Code MFA invalide" @@ -2429,19 +2438,19 @@ msgstr "" "Le service n'est pas prêt à ce moment. S'il vous plaît, essayez à nouveau " "dans un moment." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "E-mail multi-facteur" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Authentificateur multifacteur de messagerie" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "Hôte SMTP" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2449,88 +2458,197 @@ msgstr "" "Nom d'hôte ou adresse IP du serveur SMTP. Si vous utilisez un port non " "standard, ajoutez-le après deux-points, par exemple : smtp.gmail.com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "Serveur SMTP" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Sécurité" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Protocole de sécurité à utiliser" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Utilisateur ayant accès au serveur SMTP" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Mot de passe de l'utilisateur ayant accès au serveur SMTP" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Matière" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Objet du mail" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Configuration" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "De l'email" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "Adresse e-mail qui sera utilisée comme expéditeur" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Activer HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Activer le HTML dans les e-mails" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Utilisateur sans stratégie MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Action en cas d'erreur de réponse SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Autoriser la connexion de l'utilisateur" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Refuser la connexion de l'utilisateur" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" +"Autoriser l'utilisateur à se connecter si son adresse IP figure dans la " +"liste des réseaux" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" +"Refuser à l'utilisateur de se connecter si son IP est dans la liste des " +"réseaux" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "Réseaux SMS" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Réseaux pour l'authentification par SMS" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Nom d'hôte SMTP non valide" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "" +"Vérifier votre courrier. Vous recevrez un e-mail avec le code de vérification" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Défi Radius OTP" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Tous les utilisateurs doivent envoyer OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Si décoché, une étape d'authentification est nécessaire afin de savoir " +"si cet utilisateur doit entrer OTP. Si coché, tous les utilisateurs doivent " +"entrer OTP, donc l'étape d'authentification est ignorée." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Action d'erreur de communication Radius OTP" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Action en cas d'erreur de communication du serveur OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Réseaux Radius OTP" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Réseaux pour l'authentification Radius OTP" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Utilisateur sans OTP défini sur le serveur" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Action pour l'utilisateur sans défi Radius défini" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "Code OTP" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Veuillez entrer OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Erreur de connexion Radius OTP" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Code OTP invalide" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS Pensée HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "Envoi de SMS simple MFA via HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "Modèle d'URL pour l'envoi de SMS" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2543,16 +2661,16 @@ msgstr "" "téléphone * {username} - le nom d'utilisateur * {justUsername} - le nom " "d'utilisateur sans @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "Serveur HTTP" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Ignorer les erreurs de certificat" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2560,19 +2678,19 @@ msgstr "" "Si coché, le certificat du serveur sera ignoré. Ceci est utile si le serveur " "utilise un certificat auto-signé." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "Méthode d'envoi de SMS" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Méthode d'envoi de SMS" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "En-têtes pour les demandes SMS" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2587,18 +2705,11 @@ msgstr "" "utilisateur sans @.... Les en-têtes sont dans sous la forme \"En-tête : " "valeur\". (sans les guillemets)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Paramètres pour l'envoi de SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2612,99 +2723,100 @@ msgstr "" "numéro de téléphone * {username} - le nom d'utilisateur * {justUsername} " "- le nom d'utilisateur sans @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "Encodage SMS" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Encodage pour SMS" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "Méthode d'authentification par SMS" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "Authentification HTTP" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "Authentification de base HTTP" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "Authentification de résumé HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "Authentification HTTP" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Utilisateur ou jeton d'authentification par SMS" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Utilisateur ou jeton pour l'authentification par SMS" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "Mot de passe d'authentification SMS" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Mot de passe pour l'authentification par SMS" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "Réponse SMS OK regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" -"Regex pour la réponse SMS OK. Si vide, la réponse est considérée comme OK si " -"le code d'état est 200." +"Regex pour la réponse SMS OK. S'il est vide, la réponse est considérée " +"comme OK si le code d'état est 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "Réponse HTTP" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "Action d'erreur de réponse SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Action en cas d'erreur de réponse SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Autoriser la connexion de l'utilisateur sans MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Refuser la connexion de l'utilisateur" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "L'envoi du SMS a échoué" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "Erreur de réponse SMS" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "Code AMF" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "" +"Regarde ton Téléphone. Vous recevrez un SMS avec le code de vérification" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Échantillon multi-facteur" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Exemple d'authentificateur multifacteur" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Exemple de champ inutile" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "" "C'est un champ inutile, à des fins d'échantillonnage et de test" @@ -2897,6 +3009,17 @@ msgstr "" "pour les machines statiques. (Nécessite python> = 3,6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"Acteur UDS pour les machines Centos, Fedora, RH, Suse, ... Linux. Utilisé " +"UNIQUEMENT pour les machines statiques. (Nécessite Python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2904,7 +3027,7 @@ msgstr "" "Legacy Acteur de l’UDS pour Debian, Ubuntu... Machines Linux " "(nécessite Python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2912,7 +3035,7 @@ msgstr "" "Acteur UDS hérité pour Centos, Fedora, RH, ... Machines Linux " "(nécessite python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4586,6 +4709,17 @@ msgstr "" "connexion utilisateur (sur certains systèmes d'exploitation) essaieront " "de s'allumer via OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "Max. Services autorisés" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "" +"Nombre maximal de services autorisés (0 ou moins signifie aucune limite)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "Fournisseur de plates-formes de OpenNebula" @@ -5287,19 +5421,11 @@ msgstr "" "Chemin d'accès au démarrage de l'application. (c'est-à-dire f: " "\\ exemple \\ dossier)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Max. Services autorisés" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Nombre maximum de services autorisés (0 ne signifie aucune limite)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Attendre le processus engendré" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5307,7 +5433,7 @@ msgstr "" "S'il est actif, RDS Actor attendra que l'application et tous les processus " "engendrés aient terminé avant de considérer l'application déconnectée" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Un chemin d'accès d'application valide est requis" @@ -7240,10 +7366,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "Authentificateur ne fournit pas d'informations" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} journées" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} heures" diff --git a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po index 1c974718..95075967 100644 --- a/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/fr/LC_MESSAGES/djangojs.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: French (http://www.transifex.com/openuds/openuds/language/" @@ -512,14 +512,14 @@ msgstr "Piscine de services" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Groupes" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Services Piscines" @@ -710,7 +710,7 @@ msgstr "Attribuer un service" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Annuler" @@ -1065,8 +1065,8 @@ msgstr "Ajouter" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "D'accord" @@ -1411,7 +1411,7 @@ msgstr "Graphiques" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Information pour" @@ -1546,7 +1546,11 @@ msgstr "Admin" msgid "Staff member" msgstr "Membre du personnel" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "AMF" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Services assignés" diff --git a/server/src/uds/locale/it/LC_MESSAGES/django.po b/server/src/uds/locale/it/LC_MESSAGES/django.po index 0bf6e669..d80ef700 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/django.po +++ b/server/src/uds/locale/it/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Víctor Alonso , 2019\n" "Language-Team: Italian (http://www.transifex.com/openuds/openuds/language/" @@ -38,7 +38,7 @@ msgstr "Resoconti" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Nome" @@ -48,8 +48,8 @@ msgstr "Nome" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Commenti" @@ -219,7 +219,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Se attivo, l'autenticatore sarà visibile agli utenti" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -235,11 +235,11 @@ msgstr "Fornitore dell'AMF" msgid "MFA provider to use for this authenticator" msgstr "Provider MFA da utilizzare per questo autenticatore" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Troppi risultati ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Affina la tua richiesta" @@ -598,7 +598,7 @@ msgstr "Controllare il certificato" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -616,7 +616,7 @@ msgstr "Server (IP o FQDN) che fungerà da proxy." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -663,12 +663,12 @@ msgstr "" msgid "Available reports" msgstr "Rapporti disponibili" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -734,13 +734,13 @@ msgstr "Proxy per servizi dietro un firewall" msgid "Advanced" msgstr "Avanzate" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Con errori" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "Ok" @@ -1023,15 +1023,15 @@ msgstr "Changelog" msgid "Comment" msgstr "Commento" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Admin" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Membro dello staff" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1043,20 +1043,20 @@ msgstr "Membro dello staff" msgid "User" msgstr "Utente" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Utenti di {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Utenti attuali" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1074,48 +1074,48 @@ msgstr "Utenti attuali" msgid "Username" msgstr "Nome utente" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Ruolo" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "stato" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Ultimo accesso" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "Il nome utente non può essere vuoto" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "L'utente esiste già (errore chiave duplicata)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Gruppi di {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Gruppi attuali" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "Gruppo UDS" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Meta gruppo" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "Meta gruppo UDS" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "Il nome del gruppo è obbligatorio" @@ -1210,9 +1210,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1297,11 +1297,15 @@ msgstr "" "principale non sia raggiungibile" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "Attributo MFA" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Attributo da cui estrarre il codice MFA" @@ -1315,51 +1319,51 @@ msgid "Authenticate against Active Directory" msgstr "Autentica con Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "" "È necessario specificare il nome utente nel formato USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Nome utente non trovato" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Gruppo non trovato" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Troppi risultati, essere più specifici" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Il dominio sembra essere errato, per favore controllalo" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "Il server non sembra un Active Directory (non ha oggetti utente)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "Il server non sembra un Active Directory (non ha oggetti di gruppo)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "" "I parametri di connessione sembrano corretti, il test è stato eseguito " @@ -1494,31 +1498,31 @@ msgstr "Nome utente con privilegi di lettura su eDirectory" msgid "Timeout in seconds of connection to LDAP" msgstr "Timeout in secondi per la connessione a LDAP" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "Autenticatore eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "Autentica con eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Errore di connessione a eDirectory: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "La base di ricerca Ldap non è corretta" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "La classe utente Ldap sembra non essere corretta (nessun utente trovato da " "quella classe)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1527,11 +1531,11 @@ msgstr "" "L'attributo ID utente Ldap sembra non corretto (nessun utente trovato da " "tale attributo)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Attributo di gruppo richiesto" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1600,11 +1604,11 @@ msgstr "DNS inverso" msgid "If checked, the host will be reversed dns" msgstr "Se selezionato, l'host effettuerà una risoluzione DNS inversa" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Le strutture interne sembrano ok" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Tutto sembra a posto nell'autenticatore." @@ -1612,27 +1616,27 @@ msgstr "Tutto sembra a posto nell'autenticatore." msgid "Radius Authenticator" msgstr "Autenticatore raggio" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "IP o nome host del server Radius" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Porta di autenticazione Radius (solitamente 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Segreto" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Segreto client Radius" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "Identificatore NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Identificatore NAS per Radius Server" @@ -1656,15 +1660,15 @@ msgstr "" "Se impostato, questo valore verrà aggiunto come gruppo per tutti gli utenti " "del raggio" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Errore durante il test della connessione" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "Connessione al server Radius non riuscita" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "La connessione al server Radius sembra ok" @@ -1745,15 +1749,15 @@ msgstr "" "Classe per oggetti LDAP che verrà anche controllata per il recupero dei " "gruppi (normalmente vuota)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Autenticatore Regex LDAP" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Autenticatore LDAP con espressioni regolari" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1761,7 +1765,7 @@ msgstr "" "L'attributo id utente di Ldap è probabilmente sbagliato (non riesce a " "trovare nessun utente con entrambe le condizioni)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2081,20 +2085,25 @@ msgid "Can't unpublish publications with services in process" msgstr "" "Impossibile annullare una pubblicazione di pubblicazioni con servizi in corso" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "Numero massimo di servizi utente raggiunto per questo {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "Impossibile rimuovere un elemento non attivo" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "" "Impossibile rimuovere o annullare {} perché il suo stato non lo consente" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "Il servizio richiesto è limitato" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2102,19 +2111,19 @@ msgstr "" "Servizio non valido. Il servizio non è disponibile in questo momento. Per " "favore prova più tardi" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "Il trasporto richiesto {} non è valido per {}" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "Il servizio non è accessibile da questo dispositivo" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "MAE di base" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Codice MFA non valido" @@ -2414,19 +2423,19 @@ msgstr "Trasporto non trovato" msgid "Service not ready at this moment. Please, try again in a while." msgstr "Servizio non pronto in questo momento. Per favore, riprova di nuovo." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "E-mail multifattore" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Autenticatore multifattore di posta elettronica" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "Host SMTP" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2434,88 +2443,195 @@ msgstr "" "Nome host o indirizzo IP del server SMTP. Se stai utilizzando una porta non " "standard, aggiungila dopo i due punti, ad esempio: smtp.gmail.com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "Server SMTP" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Sicurezza" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Protocollo di sicurezza da utilizzare" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Utente con accesso al server SMTP" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Password dell'utente con accesso al server SMTP" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Materia" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Oggetto dell'e-mail" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Config" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Dall'email" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "Indirizzo email che verrà utilizzato come mittente" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Abilita HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Abilita HTML nelle e-mail" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Utente senza criterio MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Azione per errore di risposta SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Consenti accesso utente" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Nega accesso utente" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" +"Consenti all'utente di accedere se l'IP è nell'elenco delle reti" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" +"Nega all'utente di accedere se l'IP è nell'elenco delle reti" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "Reti SMS" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Reti per autenticazione SMS" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Nome host SMTP non valido" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "" +"Controlla la tua posta. Riceverai un'e-mail con il codice di verifica" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Sfida OTP del raggio" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Tutti gli utenti devono inviare OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Se deselezionata, è necessario un passaggio di autenticazione per sapere se " +"questo utente deve inserire OTP. Se selezionato, tutti gli utenti devono " +"immettere OTP, quindi il passaggio di autenticazione viene saltato." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Azione di errore di comunicazione OTP del raggio" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Azione per errore di comunicazione del server OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Reti OTP a raggio" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Reti per l'autenticazione OTP del raggio" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Utente senza OTP definito nel server" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Azione per l'utente senza Raggio Challenge definito" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "Codice OTP" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Si prega di inserire OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Errore di connessione OTP del raggio" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Codice OTP non valido" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS pensato HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "Semplice invio di SMS MFA tramite HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "Pattern URL per l'invio di SMS" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2527,16 +2643,16 @@ msgstr "" "{code} - il codice da inviare * {phone/+phone} - il numero di telefono * " "{username} - il nome utente * {justUsername} - il nome utente senza @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "Server HTTP" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Ignora gli errori del certificato" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2544,19 +2660,19 @@ msgstr "" "Se selezionato, il certificato del server verrà ignorato. Ciò è utile se il " "server utilizza un certificato autofirmato." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "Metodo di invio SMS" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Metodo per l'invio di SMS" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "Intestazioni per richieste SMS" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2570,18 +2686,11 @@ msgstr "" "{username} - il nome utente * {justUsername} - il nome utente senza @.... Le " "intestazioni sono in la forma di \"Intestazione: Valore\". (senza virgolette)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Parametri per l'invio di SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2595,99 +2704,99 @@ msgstr "" "telefono * {username} - il nome utente * {justUsername} - il nome utente " "senza @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "Codifica SMS" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Codifica per SMS" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "Metodo di autenticazione SMS" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "Autenticazione HTTP" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "Autenticazione di base HTTP" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "Aut. digest HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "Autenticazione HTTP" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Utente o token di autenticazione SMS" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Utente o token per l'autenticazione SMS" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "Password di autenticazione SMS" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Password per autenticazione SMS" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "Risposta SMS OK regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" -"Regex per risposta SMS OK. Se emty, la risposta è considerata OK se il " +"Regex per risposta SMS OK. Se vuoto, la risposta è considerata OK se il " "codice di stato è 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "Risposta HTTP" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "Azione di errore di risposta SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Azione per errore di risposta SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Consenti l'accesso utente senza MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Nega l'accesso all'utente" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "Invio SMS fallito" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "Errore di risposta SMS" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "Codice AMF" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "Controlla il tuo telefono. Riceverai un SMS con il codice di verifica" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Campione multifattoriale" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Esempio di autenticatore multifattoriale" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Campione campo inutile" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Questo è un campo inutile, a scopo di campionamento e test" @@ -2877,6 +2986,17 @@ msgstr "" "statiche. (Richied ePython >= 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"Attore UDS per macchine Centos, Fedora, RH, Suse, ... Linux. Usato SOLO per " +"macchine statiche. (Richiede Python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2884,7 +3004,7 @@ msgstr "" "Legacy UDS Actor per sistemi Linux Debian, Ubuntu, ...(Richiede " "Python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2892,7 +3012,7 @@ msgstr "" "Legacy UDS Actor per Centos, Fedora, RH, ... Macchine Linux " "(richiede python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4547,6 +4667,16 @@ msgstr "" "utente (su alcuni sistemi operativi) proveranno ad accendersi tramite " "OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "Massimo Servizi consentiti" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "Numero massimo di servizi consentiti (0 o meno significa nessun limite)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "OpenNebula Platform Provider" @@ -5234,19 +5364,11 @@ msgstr "Percorso di partenza" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Percorso in cui verrà avviata l'app. (per es. f:\\esempio\\cartella)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Max. Servizi consentiti" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Numero massimo di servizi consentiti (0 significa nessun limite)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Attendi i processi generati" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5254,7 +5376,7 @@ msgstr "" "Se attivo, RDS Actor attenderà che l'applicazione e tutti i processi " "spawnati terminino prima di considerare l'app disconnessa" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "È richiesto un percorso dell'applicazione valido" @@ -7189,10 +7311,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "Autenticatore non fornisce informazioni" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} giorni" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} ore" diff --git a/server/src/uds/locale/it/LC_MESSAGES/djangojs.po b/server/src/uds/locale/it/LC_MESSAGES/djangojs.po index 441be9be..3e6baa88 100644 --- a/server/src/uds/locale/it/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/it/LC_MESSAGES/djangojs.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Italian (http://www.transifex.com/openuds/openuds/language/" @@ -514,14 +514,14 @@ msgstr "Pool di servizi" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Gruppi" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Pool di servizi" @@ -712,7 +712,7 @@ msgstr "Assegna servizio" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Annulla" @@ -1064,8 +1064,8 @@ msgstr "Aggiungi" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "Ok" @@ -1410,7 +1410,7 @@ msgstr "Grafici" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Informazioni per" @@ -1545,7 +1545,11 @@ msgstr "Admin" msgid "Staff member" msgstr "Membro dello staff" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "MAE" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Servizi assegnati" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/django.po b/server/src/uds/locale/pt/LC_MESSAGES/django.po index 1912560e..53c42f0f 100644 --- a/server/src/uds/locale/pt/LC_MESSAGES/django.po +++ b/server/src/uds/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Adolfo Gómez , 2012\n" "Language-Team: Portuguese (http://www.transifex.com/openuds/openuds/language/" @@ -32,7 +32,7 @@ msgstr "Contas" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Nome" @@ -42,8 +42,8 @@ msgstr "Nome" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Comentários" @@ -213,7 +213,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Se ativo, o autenticador ficará visível para os usuários" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -229,11 +229,11 @@ msgstr "Provedor de MFA" msgid "MFA provider to use for this authenticator" msgstr "Provedor de MFA a ser usado para este autenticador" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Muitos resultados ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Refine sua consulta" @@ -591,7 +591,7 @@ msgstr "Verificar certificado" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -609,7 +609,7 @@ msgstr "Servidor (IP ou FQDN) que servirá como proxy." #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -656,12 +656,12 @@ msgstr "" msgid "Available reports" msgstr "Relatórios disponíveis" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -727,13 +727,13 @@ msgstr "Proxy para serviços atrás de um firewall" msgid "Advanced" msgstr "Avançado" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "Com erros" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "Está bem" @@ -1013,15 +1013,15 @@ msgstr "Changelog" msgid "Comment" msgstr "Comente" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Admin" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Membro da equipe" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1033,20 +1033,20 @@ msgstr "Membro da equipe" msgid "User" msgstr "Do utilizador" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Usuários de {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Usuários atuais" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1064,48 +1064,48 @@ msgstr "Usuários atuais" msgid "Username" msgstr "Nome de usuário" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Função" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "Estado" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Último acesso" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "O nome de usuário não pode estar vazio" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "Usuário já existe (erro de chave duplicado)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Grupos de {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Grupos atuais" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "Grupo UDS" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Grupo meta" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "Grupo Meta UDS" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "O nome do grupo é obrigatório" @@ -1198,9 +1198,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1285,11 +1285,15 @@ msgstr "" "não esteja acessível" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "Atributo MFA" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Atributo de onde extrair o código MFA" @@ -1303,51 +1307,51 @@ msgid "Authenticate against Active Directory" msgstr "Autenticar-se contra o Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Deve especificar o nome de usuário no formulário USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Nome de usuário não encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Grupo não encontrado" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Muitos resultados, sejam mais específicos" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Domínio parece estar incorreto, por favor, verifique" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Servidor não parece um Active Directory (ele não tem objetos de usuário)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "Servidor não parece um Active Directory (ele não tem objetos de grupo)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "Params de conexão parecem corretos, teste foi executado com sucesso" @@ -1481,31 +1485,31 @@ msgstr "Nome de usuário com privilégios de leitura no eDirectory" msgid "Timeout in seconds of connection to LDAP" msgstr "Tempo limite em segundos de conexão ao LDAP" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "Autenticador do eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "Autenticar-se contra o eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Erro de conexão do Edirectory: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "A base de pesquisa do Ldap está incorreta" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "A classe de usuário Ldap parece estar incorreta (nenhum usuário encontrado " "por essa classe)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1514,11 +1518,11 @@ msgstr "" "O atributo de ID do usuário do Ldap parece estar incorreto (nenhum usuário " "foi encontrado por esse atributo)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Atributo de grupo esperado" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1585,11 +1589,11 @@ msgstr "DNS reverso" msgid "If checked, the host will be reversed dns" msgstr "Se marcado, o host será invertido dns" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Estruturas internas parece ok" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Tudo parece bem no autenticador." @@ -1597,27 +1601,27 @@ msgstr "Tudo parece bem no autenticador." msgid "Radius Authenticator" msgstr "Radius Authenticator" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "IP ou nome de host do servidor Radius" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Porta de autenticação Radius (geralmente 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Segredo" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Segredo do cliente Radius" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "Identificador NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Identificador NAS para Servidor Radius" @@ -1639,15 +1643,15 @@ msgstr "" "Se definido, este valor será adicionado como grupo para todos os usuários do " "raio" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Erro ao testar conexão" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "A conexão com o servidor Radius falhou" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "A conexão com o servidor Radius parece ok" @@ -1728,15 +1732,15 @@ msgstr "" "Classe para objetos LDAP que também serão verificados para recuperação de " "grupos (normalmente vazia)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Autenticador Regex LDAP" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Autenticador LDAP de Expressões Regulares" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1744,7 +1748,7 @@ msgstr "" "O ID do usuário do Ldap provavelmente está errado (não é possível encontrar " "nenhum usuário com ambas as condições)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2063,19 +2067,24 @@ msgid "Can't unpublish publications with services in process" msgstr "" "Não é possível cancelar a publicação de publicações com serviços em andamento" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "Número máximo de serviços de usuário alcançado para este {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "Não é possível remover um elemento não ativo" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "Não é possível remover nem cancelar {} porque seu estado não permite" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "O serviço solicitado é restrito" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2083,19 +2092,19 @@ msgstr "" "Serviço inválido. O serviço não está disponível neste momento. Por favor " "tente mais tarde" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "O transporte solicitado {} não é válido para {}" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "O serviço não está acessível a partir deste dispositivo" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "MFA básico" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Código MFA inválido" @@ -2397,19 +2406,19 @@ msgstr "" "O serviço não está pronto neste momento. Por favor, tente novamente daqui a " "pouco." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "E-mail multifator" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Autenticador multifator de e-mail" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "Host SMTP" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2418,88 +2427,193 @@ msgstr "" "porta não padrão, adicione-a após dois pontos, por exemplo: smtp.gmail." "com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "Servidor SMTP" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Segurança" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Protocolo de segurança a ser usado" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Usuário com acesso ao servidor SMTP" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Senha do usuário com acesso ao servidor SMTP" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Sujeito" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Assunto do e-mail" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Configuração" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Do email" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "Endereço de e-mail que será usado como remetente" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Ativar HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Ativar HTML em e-mails" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Usuário sem política de MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Ação para erro de resposta SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Permitir login do usuário" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Negar login de usuário" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "Permitir que o usuário faça login se o IP estiver na lista de redes" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "Negar o login do usuário se o IP estiver na lista de redes" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "redes SMS" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Redes para autenticação SMS" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Nome de host SMTP inválido" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "" +"Verifique seu e-mail. Você receberá um e-mail com o código de verificação" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Desafio OTP de raio" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Todos os usuários devem enviar OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Se desmarcada, uma etapa de autenticação é necessária para saber se esse " +"usuário deve entrar no OTP. Se marcado, todos os usuários devem inserir OTP, " +"portanto, a etapa de autenticação é ignorada." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Ação de erro de comunicação Radius OTP" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Ação para erro de comunicação do servidor OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Redes OTP de raio" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Redes para autenticação Radius OTP" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Usuário sem OTP definido no servidor" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Ação para usuário sem desafio de raio definido" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "Código OTP" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Por favor, insira OTP" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Erro de conexão Radius OTP" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Código OTP inválido" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "SMS Pensamento HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "MFA simples de envio de SMS usando HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "Padrão de URL para envio de SMS" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2511,16 +2625,16 @@ msgstr "" "{code} - o código para enviar * {phone/+phone} - o número de telefone * " "{username} - o nome de usuário * {justUsername} - o nome de usuário sem @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "Servidor HTTP" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Ignorar erros de certificado" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2528,19 +2642,19 @@ msgstr "" "Se marcado, o certificado do servidor será ignorado. Isso é útil se o " "servidor usar um certificado autoassinado." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "Método de envio de SMS" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Método de envio de SMS" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "Cabeçalhos para solicitações de SMS" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2554,18 +2668,11 @@ msgstr "" "{username} - o nome de usuário * {justUsername} - o nome de usuário sem " "@.... Os cabeçalhos estão em a forma de \"Cabeçalho: Valor\". (sem as aspas)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Parâmetros para envio de SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2579,99 +2686,100 @@ msgstr "" "telefone * {username} - o nome de usuário * {justUsername} - o nome de " "usuário sem @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "Codificação de SMS" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Codificação para SMS" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "Método de autenticação SMS" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "Autenticação HTTP" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "Autenticação básica HTTP" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "Autenticação de resumo HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "Autenticação HTTP" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Usuário ou token de autenticação SMS" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Usuário ou token para autenticação por SMS" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "Senha de autenticação SMS" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Senha para autenticação SMS" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "Resposta SMS OK regex" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" -"Regex para resposta SMS OK. Se vazio, a resposta é considerada OK se o " -"código de status for 200." +"Regex para resposta SMS OK. Se estiver vazio, a resposta será considerada OK " +"se o código de status for 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "Resposta HTTP" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "Ação de erro de resposta SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Ação para erro de resposta SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Permitir login do usuário sem MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Negar login de usuário" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "Falha no envio de SMS" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "Erro de resposta SMS" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "Código MFA" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "" +"Verifique seu telefone. Você receberá um SMS com o código de verificação" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Amostra Multifator" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Exemplo de autenticador multifator" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Exemplo de campo inútil" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Este é um campo inútil, para fins de amostragem e teste" @@ -2861,6 +2969,17 @@ msgstr "" "estáticas. (Requer python> = 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"Ator UDS para Centos, Fedora, RH, Suse, ... máquinas Linux. Usado SOMENTE " +"para máquinas estáticas. (Requer python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2868,7 +2987,7 @@ msgstr "" "Ator UDS Legado para Debian, Ubuntu, ... Máquinas Linux (Requer o " "python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2876,7 +2995,7 @@ msgstr "" "Ator UDS herdado para máquinas Centos, Fedora, RH, ... Linux " "(Requer python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4521,6 +4640,16 @@ msgstr "" "Se ativo, as máquinas que não estão disponíveis na conexão do usuário (em " "alguns sistemas operacionais) tentarão ligar por meio do OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "Máx. Serviços permitidos" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "Número máximo de serviços permitidos (0 ou menos significa sem limite)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "Fornecedor da Plataforma OpenNebula" @@ -5207,19 +5336,11 @@ msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "" "Caminho em que o aplicativo será iniciado. (ou seja, f: \\ example \\ folder)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Max. Serviços Permitidos" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "Número máximo de serviços permitidos (0 significa sem limite)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Espere processos gerados" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5228,7 +5349,7 @@ msgstr "" "processos gerados sejam concluídos antes de considerar o aplicativo " "desconectado" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Um caminho de aplicativo válido é obrigatório" @@ -7148,10 +7269,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "O autenticador não fornece informações" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} dias" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} horas" diff --git a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po index 2607a046..ddf3f5c4 100644 --- a/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/pt/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Portuguese (http://www.transifex.com/openuds/openuds/language/" @@ -510,14 +510,14 @@ msgstr "Piscina de serviços" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Grupos" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Piscinas de Serviços" @@ -707,7 +707,7 @@ msgstr "Atribuir serviço" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Cancelar" @@ -1058,8 +1058,8 @@ msgstr "Adicionar" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "Está bem" @@ -1404,7 +1404,7 @@ msgstr "Gráficos" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Informação para" @@ -1539,7 +1539,11 @@ msgstr "Admin" msgid "Staff member" msgstr "Membro da equipe" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "MFA" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Serviços Atribuídos" diff --git a/server/src/uds/locale/ru/LC_MESSAGES/django.po b/server/src/uds/locale/ru/LC_MESSAGES/django.po index 6a47179a..f44ae387 100644 --- a/server/src/uds/locale/ru/LC_MESSAGES/django.po +++ b/server/src/uds/locale/ru/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: Maxim Stepanov , 2021\n" "Language-Team: Russian (http://www.transifex.com/openuds/openuds/language/" @@ -36,7 +36,7 @@ msgstr "Accounts" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "Имя" @@ -46,8 +46,8 @@ msgstr "Имя" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "Комментарии" @@ -217,7 +217,7 @@ msgid "If active, authenticator will be visible for users" msgstr "Если активен, аутентификатор будет виден пользователям" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -233,11 +233,11 @@ msgstr "Поставщик МФА" msgid "MFA provider to use for this authenticator" msgstr "Поставщик MFA, который будет использоваться для этого аутентификатора" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "Слишком много результатов ..." -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "Уточните свой запрос" @@ -594,7 +594,7 @@ msgstr "Проверить сертификат" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -612,7 +612,7 @@ msgstr "Сервер (IP или FQDN), который будет служить #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -660,12 +660,12 @@ msgstr "" msgid "Available reports" msgstr "Доступные репорты" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -730,13 +730,13 @@ msgstr "Прокси для служб за брандмауэром" msgid "Advanced" msgstr "Расширенный" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "С ошибками" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "ОК" @@ -1017,15 +1017,15 @@ msgstr "Лог изменения" msgid "Comment" msgstr "Комментарий" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "Администратор" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "Штатный сотрудник" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1037,20 +1037,20 @@ msgstr "Штатный сотрудник" msgid "User" msgstr "Пользователь" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "Пользователей из {0}" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "Текущие пользователи" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1068,48 +1068,48 @@ msgstr "Текущие пользователи" msgid "Username" msgstr "Имя пользователя" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "Роль" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "состояние" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "Последний вход" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "Имя пользователя не может быть пустым" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "Пользователь уже существует (ошибка дублирования ключа)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "Групп из {0}" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "Текущие группы" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "UDS Группа" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "Метагруппа" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "UDS Метагруппа" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "Требуется название группы" @@ -1201,9 +1201,9 @@ msgstr "" #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1288,11 +1288,15 @@ msgstr "" "сервер недоступен." #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "Атрибут многофакторной идентификации" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "Атрибут откуда извлечь код MFA" @@ -1306,54 +1310,54 @@ msgid "Authenticate against Active Directory" msgstr "Аутентификация в Active Directory" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "Нужно указать имя пользователя в формате USERNAME@DOMAIN.DOM" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "Имя пользователя не найдено" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "Группа не найдена" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "Слишком много результатов, сделайте запрос более уникальным" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "Домен возможно некорректен, пожалуйста проверьте" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "" "Сервер возможно не является членом Active Directory (у него нет " "пользовательских объектов)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "" "Сервер возможно не является членом Active Directory (у него нет групповых " "объектов)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "Параметры подключения правильные, тест был успешно выполнен" @@ -1490,31 +1494,31 @@ msgstr "Имя пользователя с правами на чтение в e msgid "Timeout in seconds of connection to LDAP" msgstr "Таймаут подключения к LDAP в секундах" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "Аутентификатор eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "Аутентификация в eDirectory" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "Ошибка подключения к электронному каталогу: {}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "Поиск в LDAP некорректный" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "" "Класс пользователя Ldap возможно указан неправильно (пользователь с этим " "классом не найден)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " @@ -1523,11 +1527,11 @@ msgstr "" "Атрибут идентификатора пользователя Ldap возможно указан некорректно " "(пользователя с таким атрибутом не обнаружено)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "Ожидаемый групповой атрибут" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "" @@ -1594,11 +1598,11 @@ msgstr "Обратный DNS" msgid "If checked, the host will be reversed dns" msgstr "Если отмечено, хост будет использовать обратный DNS" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "Внутренняя структура - ОК" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "Все хорошо для актентификатора" @@ -1606,27 +1610,27 @@ msgstr "Все хорошо для актентификатора" msgid "Radius Authenticator" msgstr "Радиус аутентификатор" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "IP-адрес или имя хоста Radius Server" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Порт аутентификации Radius (обычно 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "Секрет" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Секрет клиента Radius" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "Идентификатор NAS" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Идентификатор NAS для Radius Server" @@ -1648,15 +1652,15 @@ msgstr "" "Если установлено, это значение будет добавлено как группа для всех " "пользователей радиуса." -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "Ошибка при тестировании соединения" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "Не удалось подключиться к Radius-серверу" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "Соединение с Radius-сервером вроде нормально" @@ -1737,15 +1741,15 @@ msgstr "" "Класс для объектов LDAP, которые также будут проверены для поиска групп " "(обычно пустой)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "Аутентификатор Regex LDAP" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "Регулярное выражение для аутентификатора LDAP" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" @@ -1753,7 +1757,7 @@ msgstr "" "Идентификатор аттрибута пользователя LDAP вероятно неверный (невозможно " "найти пользователя с обоими условиями)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -2065,20 +2069,26 @@ msgstr "Невозможно опубликовать неиспользуему msgid "Can't unpublish publications with services in process" msgstr "Невозможно опубликовать публикацию с сервисами в процессе" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "" +"Достигнуто максимальное количество пользовательских сервисов для этого {}" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "Нельзя удалить неактивный элемент" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "" "Невозможно удалить или отменить {}, потому что его состояние не позволяет" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "Запрашиваемая услуга ограничена" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" @@ -2086,19 +2096,19 @@ msgstr "" "Недействительный сервис. В настоящий момент услуга недоступна. Пожалуйста, " "попробуйте позднее" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "Запрошенный транспорт {} недействителен для {}" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "Сервис недоступен с этого устройства" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "База МФА" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "Неверный код МФА" @@ -2397,19 +2407,19 @@ msgstr "Транспорт не найден" msgid "Service not ready at this moment. Please, try again in a while." msgstr "Сервис не готов в данный момент. Пожалуйста попробуйте снова позднее." -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "Многофакторная электронная почта" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "Многофакторная аутентификация по электронной почте" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "SMTP-хост" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2417,89 +2427,195 @@ msgstr "" "Имя хоста SMTP-сервера или IP-адрес. Если вы используете нестандартный порт, " "добавьте его после двоеточия, например: smtp.gmail.com:587." -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "SMTP-сервер" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "Безопасность" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "Протокол безопасности для использования" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "Пользователь с доступом к SMTP-серверу" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "Пароль пользователя с доступом к SMTP-серверу" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "Предмет" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "Тема письма" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "Конфигурация" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "Из электронной почты" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "" "Адрес электронной почты, который будет использоваться в качестве отправителя" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "Включить HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "Включить HTML в электронных письмах" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "Пользователь без политики MFA" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "Действия при ошибке ответа на SMS" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "Разрешить вход пользователя" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "Запретить вход пользователя" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "" +"Разрешить пользователю вход в систему, если его IP-адрес есть в списке сетей" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "" +"Запретить пользователю вход в систему, если его IP-адрес есть в списке сетей" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "SMS-сети" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "Сети для SMS-аутентификации" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "Недопустимое имя хоста SMTP" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "Проверь почту. Вы получите электронное письмо с кодом подтверждения" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "Радиус OTP Challenge" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "Все пользователи должны отправлять OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "" +"Если этот флажок не установлен, потребуется этап аутентификации, чтобы " +"узнать, должен ли этот пользователь вводить OTP. Если флажок установлен, все " +"пользователи должны вводить OTP, поэтому шаг аутентификации пропускается." + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Действие при ошибке связи Radius OTP" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "Действия при ошибке связи с сервером OTP" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "Радиусные OTP-сети" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Сети для OTP-аутентификации Radius" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "Пользователь без определенного OTP на сервере" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "Действие для пользователя без определенного Radius Challenge" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "OTP-код" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "Пожалуйста, введите одноразовый код" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "Ошибка подключения Radius OTP" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "Неверный OTP-код" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "СМС Мысль HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "Простая отправка SMS MFA с использованием HTTP" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "Шаблон URL для отправки SMS" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2511,16 +2627,16 @@ msgstr "" "{code} - код для отправки * {phone/+phone} - номер телефона * {username} - " "имя пользователя * {justUsername} - имя пользователя без @...." -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "HTTP-сервер" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "Игнорировать ошибки сертификата" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." @@ -2528,19 +2644,19 @@ msgstr "" "Если этот флажок установлен, сертификат сервера будет игнорироваться. Это " "полезно, если сервер использует самозаверяющий сертификат." -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "Способ отправки СМС" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "Способ отправки СМС" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "Заголовки для SMS-запросов" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2554,18 +2670,11 @@ msgstr "" "имя пользователя * {justUsername} - имя пользователя без @.... Заголовки в " "виде «Заголовок: Значение». (без кавычек)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "Параметры для отправки SMS POST/PUT" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2578,99 +2687,99 @@ msgstr "" "переменные: * {code} - код для отправки * {phone/+phone} - номер телефона * " "{username} - имя пользователя * {justUsername} - имя пользователя без @...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "Кодировка SMS" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "Кодировка для СМС" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "Метод аутентификации по SMS" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "HTTP-аутентификация" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "Базовая HTTP-аутентификация" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "Дайджест-аутентификация HTTP" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "HTTP-аутентификация" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "Пользователь или токен SMS-аутентификации" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "Пользователь или токен для SMS-аутентификации" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "SMS-пароль аутентификации" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "Пароль для SMS-аутентификации" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "SMS ответ OK регулярное выражение" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." msgstr "" "Регулярное выражение для SMS-ответа OK. Если пусто, ответ считается ОК, если " "код состояния равен 200." -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "HTTP-ответ" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "Действие при ошибке ответа SMS" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "Действия при ошибке ответа на SMS" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "Разрешить вход пользователя без MFA" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "Запретить вход пользователя" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "Отправка СМС не удалась" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "Ошибка ответа на смс" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "Код МФА" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "Проверьте свой телефон. Вы получите SMS с кодом подтверждения" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "Образец мультифактора" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "Пример многофакторного аутентификатора" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "Пример бесполезного поля" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "Это бесполезное поле для выборки и тестирования." @@ -2862,6 +2971,17 @@ msgstr "" "статических машин. (Требуется Python> = 3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"Актер UDS для машин Centos, Fedora, RH, Suse, ... Linux. Используется ТОЛЬКО " +"для статических машин. (Требуется Python >= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" @@ -2869,7 +2989,7 @@ msgstr "" "Совместимый UDS Actor для Debian, Ubuntu... Linux машин (требует " "Python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2877,7 +2997,7 @@ msgstr "" "Совместимый UDS Actor для машин Centos, Fedora, RH, ... Linux " "(требуется python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4526,6 +4646,18 @@ msgstr "" "Если он активен, машины, недоступные при подключении пользователя (в " "некоторых ОС), будут пытаться включить питание через OpenGnsys." +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "Максимум. Разрешенные услуги" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "" +"Максимальное количество разрешенных сервисов (0 или меньше означает " +"отсутствие ограничений)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "Поставщик платформы OpenNebula" @@ -5215,20 +5347,11 @@ msgstr "Начальный путь" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "Путь, где будет запущено приложение. (т.е. папка f:\\example\\)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "Максимум. Разрешенные услуги" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "" -"Максимальное количество разрешенных сервисов (0 означает отсутствие лимита)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "Ожидание порожденных процессов" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5236,7 +5359,7 @@ msgstr "" "Если активен, RDS Actor будет ждать, пока приложение и все порожденные " "процессы завершены до того, как приложение выйдет из системы" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "Требуется допустимый путь к приложению" @@ -7164,10 +7287,10 @@ msgstr "" msgid "Authenticator does not provide information" msgstr "Аутентификатор не предоставляет информацию" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} дней" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} часы" diff --git a/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po b/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po index 1abcbd03..0fe6d291 100644 --- a/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/ru/LC_MESSAGES/djangojs.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: Víctor Alonso , 2020\n" "Language-Team: Russian (http://www.transifex.com/openuds/openuds/language/" @@ -514,14 +514,14 @@ msgstr "Сервисный пул" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "Группы" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "Сервисные пулы" @@ -711,7 +711,7 @@ msgstr "Назначить услугу" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "Отменить" @@ -1062,8 +1062,8 @@ msgstr "Добавить" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "Хорошо" @@ -1408,7 +1408,7 @@ msgstr "Диаграммы" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "Информация для" @@ -1541,7 +1541,11 @@ msgstr "Администратор" msgid "Staff member" msgstr "Штатный сотрудник" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "МИД" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "Назначенные сервисы" diff --git a/server/src/uds/locale/zh_Hans/LC_MESSAGES/django.po b/server/src/uds/locale/zh_Hans/LC_MESSAGES/django.po index 8f9ebf59..775fcd5b 100644 --- a/server/src/uds/locale/zh_Hans/LC_MESSAGES/django.po +++ b/server/src/uds/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:14+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese (http://www.transifex.com/openuds/openuds/language/" @@ -30,7 +30,7 @@ msgstr "帐号" #: REST/methods/reports.py:69 REST/methods/services_pool_groups.py:71 #: REST/methods/services_pools.py:136 REST/methods/transports.py:66 #: REST/methods/user_services.py:325 REST/methods/user_services.py:400 -#: REST/methods/users_groups.py:167 REST/model.py:149 +#: REST/methods/users_groups.py:169 REST/model.py:149 msgid "Name" msgstr "名称" @@ -40,8 +40,8 @@ msgstr "名称" #: REST/methods/osmanagers.py:57 REST/methods/providers.py:73 #: REST/methods/proxies.py:63 REST/methods/services.py:241 #: REST/methods/services_pool_groups.py:72 REST/methods/transports.py:68 -#: REST/methods/user_services.py:402 REST/methods/users_groups.py:168 -#: REST/methods/users_groups.py:384 REST/model.py:173 +#: REST/methods/user_services.py:402 REST/methods/users_groups.py:170 +#: REST/methods/users_groups.py:389 REST/model.py:173 msgid "Comments" msgstr "评论" @@ -211,7 +211,7 @@ msgid "If active, authenticator will be visible for users" msgstr "如果激活,验证器将对用户可见" #: REST/methods/authenticators.py:125 core/services/service.py:143 -#: core/services/service.py:154 mfas/Email/mfa.py:46 mfas/SMS/mfa.py:112 +#: core/services/service.py:154 mfas/Email/mfa.py:79 mfas/SMS/mfa.py:145 #: models/permissions.py:92 models/permissions.py:96 #: services/Azure_enterprise/helpers.py:116 services/OpenStack/helpers.py:82 #: services/Proxmox/service.py:208 services/Sample/service.py:100 @@ -227,11 +227,11 @@ msgstr "MFA 提供者" msgid "MFA provider to use for this authenticator" msgstr "用于此身份验证器的 MFA 提供程序" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Too many results..." msgstr "结果太多......" -#: REST/methods/authenticators.py:193 +#: REST/methods/authenticators.py:194 msgid "Refine your query" msgstr "优化您的查询" @@ -582,7 +582,7 @@ msgstr "检查证书" #: auths/ActiveDirectory_enterprise/authenticator.py:44 #: auths/EDirectory_enterprise/authenticator.py:47 #: auths/Radius/authenticator.py:67 auths/RegexLdap/authenticator.py:69 -#: auths/SimpleLDAP/authenticator.py:60 +#: auths/SimpleLDAP/authenticator.py:60 mfas/Radius/mfa.py:67 #: services/HyperV_enterprise/legacy/provider.py:88 #: services/HyperV_enterprise/provider.py:64 #: services/NutanixPrism_enterprise/provider.py:39 @@ -600,7 +600,7 @@ msgstr "将充当代理的服务器(IP或FQDN)。" #: REST/methods/proxies.py:97 auths/EDirectory_enterprise/authenticator.py:54 #: auths/Radius/authenticator.py:74 auths/RegexLdap/authenticator.py:76 -#: auths/SimpleLDAP/authenticator.py:67 +#: auths/SimpleLDAP/authenticator.py:67 mfas/Radius/mfa.py:74 #: services/HyperV_enterprise/legacy/provider.py:95 #: services/HyperV_enterprise/provider.py:136 #: services/NutanixPrism_enterprise/provider.py:46 @@ -645,12 +645,12 @@ msgstr "如果处于活动状态,将检查任何SSL证书(不允许代理上 msgid "Available reports" msgstr "可用报告" -#: REST/methods/reports.py:67 REST/methods/users_groups.py:375 -#: REST/methods/users_groups.py:396 +#: REST/methods/reports.py:67 REST/methods/users_groups.py:380 +#: REST/methods/users_groups.py:401 #: auths/ActiveDirectory_enterprise/authenticator.py:153 #: auths/AzureAD_enterprise/azure_ad.py:95 -#: auths/EDirectory_enterprise/authenticator.py:105 -#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:191 +#: auths/EDirectory_enterprise/authenticator.py:114 +#: auths/Radius/authenticator.py:63 auths/RegexLdap/authenticator.py:201 #: auths/SAML_enterprise/saml.py:109 auths/SimpleLDAP/authenticator.py:182 #: models/calendar_action.py:147 models/calendar_action.py:154 msgid "Group" @@ -714,13 +714,13 @@ msgstr "防火墙后面的服务代理" msgid "Advanced" msgstr "高级" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "With errors" msgstr "有错误" -#: REST/methods/services.py:365 REST/methods/users_groups.py:296 -#: REST/methods/users_groups.py:500 +#: REST/methods/services.py:365 REST/methods/users_groups.py:301 +#: REST/methods/users_groups.py:507 msgid "Ok" msgstr "好" @@ -986,15 +986,15 @@ msgstr "更新日志" msgid "Comment" msgstr "评论" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Admin" msgstr "管理员" -#: REST/methods/users_groups.py:113 REST/methods/users_groups.py:135 +#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:137 msgid "Staff member" msgstr "工作人员" -#: REST/methods/users_groups.py:114 REST/methods/users_groups.py:136 +#: REST/methods/users_groups.py:115 REST/methods/users_groups.py:138 #: auths/ActiveDirectory_enterprise/authenticator.py:70 #: auths/AzureAD_enterprise/azure_ad.py:94 #: auths/EDirectory_enterprise/authenticator.py:69 @@ -1006,20 +1006,20 @@ msgstr "工作人员" msgid "User" msgstr "用户" -#: REST/methods/users_groups.py:148 +#: REST/methods/users_groups.py:150 #, python-brace-format msgid "Users of {0}" msgstr "{0}的用户" -#: REST/methods/users_groups.py:154 +#: REST/methods/users_groups.py:156 msgid "Current users" msgstr "目前的用户" -#: REST/methods/users_groups.py:160 +#: REST/methods/users_groups.py:162 #: auths/ActiveDirectory_enterprise/authenticator.py:151 -#: auths/EDirectory_enterprise/authenticator.py:103 -#: auths/RegexLdap/authenticator.py:189 auths/SimpleLDAP/authenticator.py:180 -#: mfas/Email/mfa.py:54 services/HyperV_enterprise/legacy/provider.py:103 +#: auths/EDirectory_enterprise/authenticator.py:112 +#: auths/RegexLdap/authenticator.py:199 auths/SimpleLDAP/authenticator.py:180 +#: mfas/Email/mfa.py:87 services/HyperV_enterprise/legacy/provider.py:103 #: services/HyperV_enterprise/provider.py:86 #: services/NutanixPrism_enterprise/provider.py:54 #: services/Nutanix_enterprise/provider.py:54 services/OVirt/provider.py:121 @@ -1037,48 +1037,48 @@ msgstr "目前的用户" msgid "Username" msgstr "用户名" -#: REST/methods/users_groups.py:166 +#: REST/methods/users_groups.py:168 msgid "Role" msgstr "角色" -#: REST/methods/users_groups.py:171 REST/methods/users_groups.py:387 +#: REST/methods/users_groups.py:173 REST/methods/users_groups.py:392 msgid "state" msgstr "州" -#: REST/methods/users_groups.py:176 reports/lists/users.py:113 +#: REST/methods/users_groups.py:178 reports/lists/users.py:113 msgid "Last access" msgstr "上次访问" -#: REST/methods/users_groups.py:202 +#: REST/methods/users_groups.py:204 msgid "Username cannot be empty" msgstr "用户名不能为空" -#: REST/methods/users_groups.py:240 REST/methods/users_groups.py:468 +#: REST/methods/users_groups.py:245 REST/methods/users_groups.py:473 msgid "User already exists (duplicate key error)" msgstr "用户已存在(重复键错误)" -#: REST/methods/users_groups.py:363 +#: REST/methods/users_groups.py:368 #, python-brace-format msgid "Groups of {0}" msgstr "{0}组" -#: REST/methods/users_groups.py:369 +#: REST/methods/users_groups.py:374 msgid "Current groups" msgstr "目前的团体" -#: REST/methods/users_groups.py:396 +#: REST/methods/users_groups.py:401 msgid "UDS Group" msgstr "UDS集团" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "Meta group" msgstr "元组" -#: REST/methods/users_groups.py:397 +#: REST/methods/users_groups.py:402 msgid "UDS Meta Group" msgstr "UDS Meta Group" -#: REST/methods/users_groups.py:428 +#: REST/methods/users_groups.py:433 msgid "Group name is required" msgstr "组名是必填项" @@ -1166,9 +1166,9 @@ msgstr "在所选基础上具有读取权限的用户名(使用USER@DOMAIN.DOM #: auths/ActiveDirectory_enterprise/authenticator.py:80 #: auths/ActiveDirectory_enterprise/authenticator.py:155 #: auths/EDirectory_enterprise/authenticator.py:77 -#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:193 +#: auths/RegexLdap/authenticator.py:99 auths/RegexLdap/authenticator.py:203 #: auths/SimpleLDAP/authenticator.py:90 auths/SimpleLDAP/authenticator.py:184 -#: core/auths/authenticator.py:147 mfas/Email/mfa.py:63 +#: core/auths/authenticator.py:147 mfas/Email/mfa.py:96 #: osmanagers/WindowsOsManager/windows_domain.py:85 #: osmanagers/WindowsOsManager/windows_random.py:76 #: services/HyperV_enterprise/legacy/provider.py:110 @@ -1248,11 +1248,15 @@ msgid "" msgstr "如果不为空,则在无法访问主主机服务器的情况下将使用此主机" #: auths/ActiveDirectory_enterprise/authenticator.py:133 +#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/Radius/authenticator.py:118 auths/RegexLdap/authenticator.py:182 #: auths/SAML_enterprise/saml.py:207 msgid "MFA attribute" msgstr "MFA 属性" #: auths/ActiveDirectory_enterprise/authenticator.py:135 +#: auths/EDirectory_enterprise/authenticator.py:97 +#: auths/Radius/authenticator.py:120 auths/RegexLdap/authenticator.py:184 #: auths/SAML_enterprise/saml.py:209 msgid "Attribute from where to extract the MFA code" msgstr "从哪里提取 MFA 代码的属性" @@ -1266,50 +1270,50 @@ msgid "Authenticate against Active Directory" msgstr "针对Active Directory进行身份验证" #: auths/ActiveDirectory_enterprise/authenticator.py:187 -#: auths/ActiveDirectory_enterprise/authenticator.py:648 +#: auths/ActiveDirectory_enterprise/authenticator.py:647 msgid "Must specify the username in the form USERNAME@DOMAIN.DOM" msgstr "必须以USERNAME@DOMAIN.DOM格式指定用户名" -#: auths/ActiveDirectory_enterprise/authenticator.py:521 -#: auths/ActiveDirectory_enterprise/authenticator.py:578 +#: auths/ActiveDirectory_enterprise/authenticator.py:520 +#: auths/ActiveDirectory_enterprise/authenticator.py:577 #: auths/AzureAD_enterprise/azure_ad.py:315 -#: auths/EDirectory_enterprise/authenticator.py:269 -#: auths/EDirectory_enterprise/authenticator.py:300 -#: auths/RegexLdap/authenticator.py:538 auths/RegexLdap/authenticator.py:569 +#: auths/EDirectory_enterprise/authenticator.py:293 +#: auths/EDirectory_enterprise/authenticator.py:324 +#: auths/RegexLdap/authenticator.py:586 auths/RegexLdap/authenticator.py:617 #: auths/SimpleLDAP/authenticator.py:435 auths/SimpleLDAP/authenticator.py:478 msgid "Username not found" msgstr "找不到用户名" -#: auths/ActiveDirectory_enterprise/authenticator.py:560 +#: auths/ActiveDirectory_enterprise/authenticator.py:559 #: auths/SimpleLDAP/authenticator.py:468 msgid "Group not found" msgstr "未找到组" -#: auths/ActiveDirectory_enterprise/authenticator.py:605 -#: auths/ActiveDirectory_enterprise/authenticator.py:627 -#: auths/EDirectory_enterprise/authenticator.py:322 -#: auths/RegexLdap/authenticator.py:597 auths/SimpleLDAP/authenticator.py:503 +#: auths/ActiveDirectory_enterprise/authenticator.py:604 +#: auths/ActiveDirectory_enterprise/authenticator.py:626 +#: auths/EDirectory_enterprise/authenticator.py:346 +#: auths/RegexLdap/authenticator.py:645 auths/SimpleLDAP/authenticator.py:503 #: auths/SimpleLDAP/authenticator.py:523 msgid "Too many results, be more specific" msgstr "结果太多,更具体" -#: auths/ActiveDirectory_enterprise/authenticator.py:659 +#: auths/ActiveDirectory_enterprise/authenticator.py:658 msgid "Domain seems to be incorrect, please check it" msgstr "域似乎不正确,请检查它" -#: auths/ActiveDirectory_enterprise/authenticator.py:678 +#: auths/ActiveDirectory_enterprise/authenticator.py:677 msgid "" "Server does not seem an Active Directory (it does not have user objects)" msgstr "服务器似乎不是Active Directory(它没有用户对象)" -#: auths/ActiveDirectory_enterprise/authenticator.py:701 +#: auths/ActiveDirectory_enterprise/authenticator.py:700 msgid "" "Server does not seem an Active Directory (it does not have group objects)" msgstr "服务器似乎不是Active Directory(它没有组对象)" -#: auths/ActiveDirectory_enterprise/authenticator.py:710 -#: auths/EDirectory_enterprise/authenticator.py:445 -#: auths/RegexLdap/authenticator.py:707 auths/SimpleLDAP/authenticator.py:686 +#: auths/ActiveDirectory_enterprise/authenticator.py:709 +#: auths/EDirectory_enterprise/authenticator.py:469 +#: auths/RegexLdap/authenticator.py:755 auths/SimpleLDAP/authenticator.py:686 msgid "Connection params seem correct, test was succesfully executed" msgstr "连接参数似乎正确,测试成功执行" @@ -1438,40 +1442,40 @@ msgstr "具有eDirectory读取权限的用户名" msgid "Timeout in seconds of connection to LDAP" msgstr "连接到LDAP的超时(以秒为单位)" -#: auths/EDirectory_enterprise/authenticator.py:93 +#: auths/EDirectory_enterprise/authenticator.py:102 msgid "eDirectory Authenticator" msgstr "eDirectory身份验证器" -#: auths/EDirectory_enterprise/authenticator.py:95 +#: auths/EDirectory_enterprise/authenticator.py:104 msgid "Authenticate against eDirectory" msgstr "针对eDirectory进行身份验证" -#: auths/EDirectory_enterprise/authenticator.py:340 +#: auths/EDirectory_enterprise/authenticator.py:364 msgid "Edirectory connection error: {}" msgstr "电子目录连接错误:{}" -#: auths/EDirectory_enterprise/authenticator.py:345 -#: auths/RegexLdap/authenticator.py:620 auths/SimpleLDAP/authenticator.py:548 +#: auths/EDirectory_enterprise/authenticator.py:369 +#: auths/RegexLdap/authenticator.py:668 auths/SimpleLDAP/authenticator.py:548 msgid "Ldap search base is incorrect" msgstr "Ldap搜索库不正确" -#: auths/EDirectory_enterprise/authenticator.py:363 -#: auths/RegexLdap/authenticator.py:638 auths/SimpleLDAP/authenticator.py:556 +#: auths/EDirectory_enterprise/authenticator.py:387 +#: auths/RegexLdap/authenticator.py:686 auths/SimpleLDAP/authenticator.py:556 msgid "Ldap user class seems to be incorrect (no user found by that class)" msgstr "Ldap用户类似乎不正确(该类没有找到用户)" -#: auths/EDirectory_enterprise/authenticator.py:386 +#: auths/EDirectory_enterprise/authenticator.py:410 #: auths/SimpleLDAP/authenticator.py:602 msgid "" "Ldap user id attribute seems to be incorrect (no user found by that " "attribute)" msgstr "Ldap用户标识属性似乎不正确(该属性找不到用户)" -#: auths/EDirectory_enterprise/authenticator.py:409 +#: auths/EDirectory_enterprise/authenticator.py:433 msgid "Expected group attribute " msgstr "预期的组属性" -#: auths/EDirectory_enterprise/authenticator.py:436 +#: auths/EDirectory_enterprise/authenticator.py:460 msgid "" "Ldap user class or user id attr is probably wrong (Ldap is an eDirectory?)" msgstr "Ldap用户类或用户ID attr可能是错误的(Ldap是eDirectory?)" @@ -1534,11 +1538,11 @@ msgstr "反向DNS" msgid "If checked, the host will be reversed dns" msgstr "如果选中,则主机将被反转dns" -#: auths/InternalDB/authenticator.py:174 +#: auths/InternalDB/authenticator.py:180 msgid "Internal structures seems ok" msgstr "内部结构似乎没问题" -#: auths/InternalDB/authenticator.py:177 +#: auths/InternalDB/authenticator.py:183 msgid "All seems fine in the authenticator." msgstr "在验证器中一切似乎都很好。" @@ -1546,27 +1550,27 @@ msgstr "在验证器中一切似乎都很好。" msgid "Radius Authenticator" msgstr "半径验证器" -#: auths/Radius/authenticator.py:69 +#: auths/Radius/authenticator.py:69 mfas/Radius/mfa.py:69 msgid "Radius Server IP or Hostname" msgstr "Radius 服务器 IP 或主机名" -#: auths/Radius/authenticator.py:77 +#: auths/Radius/authenticator.py:77 mfas/Radius/mfa.py:77 msgid "Radius authentication port (usually 1812)" msgstr "Radius 认证端口(通常为 1812)" -#: auths/Radius/authenticator.py:82 +#: auths/Radius/authenticator.py:82 mfas/Radius/mfa.py:82 msgid "Secret" msgstr "秘密" -#: auths/Radius/authenticator.py:84 +#: auths/Radius/authenticator.py:84 mfas/Radius/mfa.py:84 msgid "Radius client secret" msgstr "Radius 客户端机密" -#: auths/Radius/authenticator.py:90 +#: auths/Radius/authenticator.py:90 mfas/Radius/mfa.py:98 msgid "NAS Identifier" msgstr "NAS 标识符" -#: auths/Radius/authenticator.py:93 +#: auths/Radius/authenticator.py:93 mfas/Radius/mfa.py:101 msgid "NAS Identifier for Radius Server" msgstr "Radius 服务器的 NAS 标识符" @@ -1586,15 +1590,15 @@ msgstr "全球组" msgid "If set, this value will be added as group for all radius users" msgstr "如果设置,此值将作为所有半径用户的组添加" -#: auths/Radius/authenticator.py:174 +#: auths/Radius/authenticator.py:196 msgid "Error testing connection" msgstr "错误测试连接" -#: auths/Radius/authenticator.py:186 +#: auths/Radius/authenticator.py:208 msgid "Connection to Radius server failed" msgstr "连接到 Radius 服务器失败" -#: auths/Radius/authenticator.py:187 +#: auths/Radius/authenticator.py:209 msgid "Connection to Radius server seems ok" msgstr "连接到 Radius 服务器似乎没问题" @@ -1669,21 +1673,21 @@ msgid "" "(normally empty)" msgstr "LDAP对象的类,也将检查组检索(通常为空)" -#: auths/RegexLdap/authenticator.py:179 +#: auths/RegexLdap/authenticator.py:189 msgid "Regex LDAP Authenticator" msgstr "正则表达式LDAP身份验证器" -#: auths/RegexLdap/authenticator.py:181 +#: auths/RegexLdap/authenticator.py:191 msgid "Regular Expressions LDAP authenticator" msgstr "正则表达式LDAP身份验证器" -#: auths/RegexLdap/authenticator.py:663 +#: auths/RegexLdap/authenticator.py:711 msgid "" "Ldap user id attr is probably wrong (can't find any user with both " "conditions)" msgstr "Ldap用户ID attr可能是错误的(找不到具有这两个条件的任何用户)" -#: auths/RegexLdap/authenticator.py:692 auths/SimpleLDAP/authenticator.py:625 +#: auths/RegexLdap/authenticator.py:740 auths/SimpleLDAP/authenticator.py:625 msgid "" "Ldap group id attribute seems to be incorrect (no group found by that " "attribute)" @@ -1974,37 +1978,42 @@ msgstr "无法取消发布不可用的出版物" msgid "Can't unpublish publications with services in process" msgstr "无法取消发布正在处理的服务的出版物" -#: core/managers/user_service.py:348 +#: core/managers/user_service.py:128 +#| msgid "Maximum number of services to provide" +msgid "Maximum number of user services reached for this {}" +msgstr "此 {} 达到的最大用户服务数" + +#: core/managers/user_service.py:364 msgid "Can't remove a non active element" msgstr "无法删除非活动元素" -#: core/managers/user_service.py:374 +#: core/managers/user_service.py:390 msgid "Can't remove nor cancel {} cause its state don't allow it" msgstr "无法删除或取消{},导致其状态不允许" -#: core/managers/user_service.py:406 +#: core/managers/user_service.py:422 msgid "The requested service is restrained" msgstr "请求的服务被限制" -#: core/managers/user_service.py:770 web/util/errors.py:83 +#: core/managers/user_service.py:788 web/util/errors.py:83 msgid "" "Invalid service. The service is not available at this moment. Please, try " "later" msgstr "服务无效。目前无法使用该服务。请稍后再试" -#: core/managers/user_service.py:807 +#: core/managers/user_service.py:825 msgid "The requested transport {} is not valid for {}" msgstr "请求的传输{}对{}无效" -#: core/managers/user_service.py:1084 +#: core/managers/user_service.py:1102 msgid "The service is not accessible from this device" msgstr "无法从此设备访问该服务" -#: core/mfas/mfa.py:60 core/mfas/mfa.py:72 +#: core/mfas/mfa.py:61 core/mfas/mfa.py:73 msgid "Base MFA" msgstr "基础 MFA" -#: core/mfas/mfa.py:184 +#: core/mfas/mfa.py:193 msgid "Invalid MFA code" msgstr "无效的 MFA 代码" @@ -2303,19 +2312,19 @@ msgstr "未找到运输" msgid "Service not ready at this moment. Please, try again in a while." msgstr "此时服务还没有准备好。请稍后再试一次。" -#: mfas/Email/mfa.py:22 +#: mfas/Email/mfa.py:55 msgid "Email Multi Factor" msgstr "电子邮件多因素" -#: mfas/Email/mfa.py:24 +#: mfas/Email/mfa.py:57 msgid "Email Multi Factor Authenticator" msgstr "电子邮件多因素身份验证器" -#: mfas/Email/mfa.py:29 +#: mfas/Email/mfa.py:62 msgid "SMTP Host" msgstr "SMTP 主机" -#: mfas/Email/mfa.py:32 +#: mfas/Email/mfa.py:65 msgid "" "SMTP Server hostname or IP address. If you are using a non-standard port, " "add it after a colon, for example: smtp.gmail.com:587" @@ -2323,88 +2332,189 @@ msgstr "" "SMTP 服务器主机名或 IP 地址。如果您使用的是非标准端口,请在冒号后添加,例如:" "smtp.gmail.com:587" -#: mfas/Email/mfa.py:37 mfas/Email/mfa.py:50 mfas/Email/mfa.py:59 -#: mfas/Email/mfa.py:68 +#: mfas/Email/mfa.py:70 mfas/Email/mfa.py:83 mfas/Email/mfa.py:92 +#: mfas/Email/mfa.py:101 msgid "SMTP Server" msgstr "SMTP 服务器" -#: mfas/Email/mfa.py:41 transports/HTML5RDP/html5rdp.py:268 +#: mfas/Email/mfa.py:74 transports/HTML5RDP/html5rdp.py:268 #: transports/HTML5RDS_enterprise/html5rds.py:255 msgid "Security" msgstr "安全" -#: mfas/Email/mfa.py:42 +#: mfas/Email/mfa.py:75 msgid "Security protocol to use" msgstr "使用的安全协议" -#: mfas/Email/mfa.py:44 +#: mfas/Email/mfa.py:77 msgid "TLS" msgstr "TLS" -#: mfas/Email/mfa.py:45 +#: mfas/Email/mfa.py:78 msgid "SSL" msgstr "SSL" -#: mfas/Email/mfa.py:56 +#: mfas/Email/mfa.py:89 msgid "User with access to SMTP server" msgstr "有权访问 SMTP 服务器的用户" -#: mfas/Email/mfa.py:65 +#: mfas/Email/mfa.py:98 msgid "Password of the user with access to SMTP server" msgstr "访问 SMTP 服务器的用户密码" -#: mfas/Email/mfa.py:74 +#: mfas/Email/mfa.py:107 msgid "Subject" msgstr "主题" -#: mfas/Email/mfa.py:76 +#: mfas/Email/mfa.py:109 msgid "Subject of the email" msgstr "电子邮件的主题" -#: mfas/Email/mfa.py:78 mfas/Email/mfa.py:87 mfas/Email/mfa.py:95 +#: mfas/Email/mfa.py:111 mfas/Email/mfa.py:120 mfas/Email/mfa.py:128 +#: mfas/Email/mfa.py:144 mfas/Email/mfa.py:154 mfas/Radius/mfa.py:117 +#: mfas/Radius/mfa.py:127 mfas/Radius/mfa.py:142 mfas/SMS/mfa.py:193 +#: mfas/SMS/mfa.py:208 mfas/SMS/mfa.py:218 msgid "Config" msgstr "配置" -#: mfas/Email/mfa.py:83 +#: mfas/Email/mfa.py:116 msgid "From Email" msgstr "从电子邮件" -#: mfas/Email/mfa.py:85 +#: mfas/Email/mfa.py:118 msgid "Email address that will be used as sender" msgstr "将用作发件人的电子邮件地址" -#: mfas/Email/mfa.py:91 +#: mfas/Email/mfa.py:124 msgid "Enable HTML" msgstr "启用 HTML" -#: mfas/Email/mfa.py:93 +#: mfas/Email/mfa.py:126 msgid "Enable HTML in emails" msgstr "在电子邮件中启用 HTML" -#: mfas/Email/mfa.py:110 +#: mfas/Email/mfa.py:133 mfas/SMS/mfa.py:197 +msgid "User without MFA policy" +msgstr "没有 MFA 策略的用户" + +#: mfas/Email/mfa.py:136 mfas/SMS/mfa.py:185 mfas/SMS/mfa.py:200 +msgid "Action for SMS response error" +msgstr "SMS 响应错误的操作" + +#: mfas/Email/mfa.py:139 mfas/Radius/mfa.py:112 mfas/Radius/mfa.py:137 +#: mfas/SMS/mfa.py:188 mfas/SMS/mfa.py:203 +#| msgid "Allow user log in without MFA" +msgid "Allow user login" +msgstr "允许用户登录" + +#: mfas/Email/mfa.py:140 mfas/Radius/mfa.py:113 mfas/Radius/mfa.py:138 +#: mfas/SMS/mfa.py:189 mfas/SMS/mfa.py:204 +#| msgid "Deny user log in" +msgid "Deny user login" +msgstr "拒绝用户登录" + +#: mfas/Email/mfa.py:141 mfas/Radius/mfa.py:114 mfas/Radius/mfa.py:139 +#: mfas/SMS/mfa.py:190 mfas/SMS/mfa.py:205 +msgid "Allow user to login if it IP is in the networks list" +msgstr "如果 IP 在网络列表中,则允许用户登录" + +#: mfas/Email/mfa.py:142 mfas/Radius/mfa.py:115 mfas/Radius/mfa.py:140 +#: mfas/SMS/mfa.py:191 mfas/SMS/mfa.py:206 +msgid "Deny user to login if it IP is in the networks list" +msgstr "如果 IP 在网络列表中,则拒绝用户登录" + +#: mfas/Email/mfa.py:148 mfas/SMS/mfa.py:212 +#| msgid "Subnetwork" +msgid "SMS networks" +msgstr "短信网络" + +#: mfas/Email/mfa.py:152 mfas/SMS/mfa.py:216 +#| msgid "Password for SMS authentication" +msgid "Networks for SMS authentication" +msgstr "用于 SMS 身份验证的网络" + +#: mfas/Email/mfa.py:169 msgid "Invalid SMTP hostname" msgstr "SMTP 主机名无效" -#: mfas/SMS/mfa.py:19 +#: mfas/Email/mfa.py:185 +msgid "Check your mail. You will receive an email with the verification code" +msgstr "请查收你的邮件。您将收到一封包含验证码的电子邮件" + +#: mfas/Radius/mfa.py:59 mfas/Radius/mfa.py:61 +msgid "Radius OTP Challenge" +msgstr "半径 OTP 挑战" + +#: mfas/Radius/mfa.py:88 +msgid "All users must send OTP" +msgstr "所有用户必须发送 OTP" + +#: mfas/Radius/mfa.py:92 +msgid "" +"If unchecked, an authentication step is needed in order to know if this user " +"must enter OTP. If checked, all users must enter OTP, so authentication step " +"is skipped." +msgstr "如果未选中,则需要进行身份验证步骤以了解此用户是否必须输入 OTP。如果选中,所有用户都必须输入 OTP,因此跳过验证步骤。" + +#: mfas/Radius/mfa.py:106 +msgid "Radius OTP communication error action" +msgstr "Radius OTP 通讯错误动作" + +#: mfas/Radius/mfa.py:109 +#| msgid "Action for SMS response error" +msgid "Action for OTP server communication error" +msgstr "OTP 服务器通信错误的措施" + +#: mfas/Radius/mfa.py:121 +msgid "Radius OTP networks" +msgstr "半径 OTP 网络" + +#: mfas/Radius/mfa.py:125 +#| msgid "Password for SMS authentication" +msgid "Networks for Radius OTP authentication" +msgstr "Radius OTP 身份验证的网络" + +#: mfas/Radius/mfa.py:131 +#| msgid "User with access to SMTP server" +msgid "User without defined OTP in server" +msgstr "服务器中未定义 OTP 的用户" + +#: mfas/Radius/mfa.py:134 +msgid "Action for user without defined Radius Challenge" +msgstr "未定义 Radius Challenge 的用户操作" + +#: mfas/Radius/mfa.py:194 +#| msgid "MFA Code" +msgid "OTP Code" +msgstr "一次性密码" + +#: mfas/Radius/mfa.py:202 +msgid "Please enter OTP" +msgstr "请输入一次性密码" + +#: mfas/Radius/mfa.py:230 mfas/Radius/mfa.py:292 +#| msgid "Connection error: " +msgid "Radius OTP connection error" +msgstr "半径 OTP 连接错误" + +#: mfas/Radius/mfa.py:279 +#| msgid "Invalid MFA code" +msgid "Invalid OTP code" +msgstr "无效的 OTP 代码" + +#: mfas/SMS/mfa.py:53 msgid "SMS Thought HTTP" msgstr "短信思想HTTP" -#: mfas/SMS/mfa.py:21 +#: mfas/SMS/mfa.py:55 msgid "Simple SMS sending MFA using HTTP" msgstr "使用 HTTP 发送 MFA 的简单 SMS" -#: mfas/SMS/mfa.py:26 +#: mfas/SMS/mfa.py:60 msgid "URL pattern for SMS sending" msgstr "SMS 发送的 URL 模式" -#: mfas/SMS/mfa.py:29 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:63 msgid "" "URL pattern for SMS sending. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2412,37 +2522,38 @@ msgid "" "* {username} - the username\n" "* {justUsername} - the username without @...." msgstr "" -"用于 SMS 发送的 URL 模式。它可以包含以下变量: * {code} - 要发送的代码 * {phone/+phone} - 电话号码 * " -"{username} - 用户名 * {justUsername} - 不带 @.... 的用户名" +"用于 SMS 发送的 URL 模式。它可以包含以下变量: * {code} - 要发送的代码 * " +"{phone/+phone} - 电话号码 * {username} - 用户名 * {justUsername} - 不带 " +"@.... 的用户名" -#: mfas/SMS/mfa.py:37 mfas/SMS/mfa.py:43 mfas/SMS/mfa.py:56 mfas/SMS/mfa.py:75 -#: mfas/SMS/mfa.py:92 mfas/SMS/mfa.py:101 +#: mfas/SMS/mfa.py:71 mfas/SMS/mfa.py:82 mfas/SMS/mfa.py:91 mfas/SMS/mfa.py:109 +#: mfas/SMS/mfa.py:126 mfas/SMS/mfa.py:136 msgid "HTTP Server" msgstr "HTTP 服务器" -#: mfas/SMS/mfa.py:41 +#: mfas/SMS/mfa.py:75 msgid "Ignore certificate errors" msgstr "忽略证书错误" -#: mfas/SMS/mfa.py:46 +#: mfas/SMS/mfa.py:79 msgid "" "If checked, the server certificate will be ignored. This is useful if the " "server uses a self-signed certificate." msgstr "如果选中,服务器证书将被忽略。如果服务器使用自签名证书,这很有用。" -#: mfas/SMS/mfa.py:52 +#: mfas/SMS/mfa.py:86 msgid "SMS sending method" msgstr "短信发送方式" -#: mfas/SMS/mfa.py:54 mfas/SMS/mfa.py:108 +#: mfas/SMS/mfa.py:88 mfas/SMS/mfa.py:142 msgid "Method for sending SMS" msgstr "发送短信的方法" -#: mfas/SMS/mfa.py:63 +#: mfas/SMS/mfa.py:97 msgid "Headers for SMS requests" msgstr "SMS 请求的标头" -#: mfas/SMS/mfa.py:66 +#: mfas/SMS/mfa.py:100 msgid "" "Headers for SMS requests. It can contain the following variables:\n" "* {code} - the code to send\n" @@ -2455,18 +2566,11 @@ msgstr "" "+phone} - 电话号码 * {username} - 用户名 * {justUsername} - 不带 @.... 的用户" "名“标题:值”的形式。 (不带引号)" -#: mfas/SMS/mfa.py:81 +#: mfas/SMS/mfa.py:115 msgid "Parameters for SMS POST/PUT sending" msgstr "SMS POST/PUT 发送参数" -#: mfas/SMS/mfa.py:84 -#| msgid "" -#| "Parameters for SMS sending via POST/PUT. It can contain the following " -#| "variables:\n" -#| "* {code} - the code to send\n" -#| "* {phone/+phone} - the phone number\n" -#| "* {username} - the username\n" -#| "* {justUsername} - the username without @....\n" +#: mfas/SMS/mfa.py:118 msgid "" "Parameters for SMS sending via POST/PUT. It can contain the following " "variables:\n" @@ -2475,101 +2579,101 @@ msgid "" "* {username} - the username\n" "* {justUsername} - the username without @...." msgstr "" -"通过 POST/PUT 发送 SMS 的参数。它可以包含以下变量: * {code} - 要发送的代码 * {phone/+phone} - 电话号码 *" -" {username} - 用户名 * {justUsername} - 不带 @...." +"通过 POST/PUT 发送 SMS 的参数。它可以包含以下变量: * {code} - 要发送的代码 " +"* {phone/+phone} - 电话号码 * {username} - 用户名 * {justUsername} - 不带 " +"@...." -#: mfas/SMS/mfa.py:96 +#: mfas/SMS/mfa.py:130 msgid "SMS encoding" msgstr "短信编码" -#: mfas/SMS/mfa.py:99 +#: mfas/SMS/mfa.py:133 msgid "Encoding for SMS" msgstr "短信编码" -#: mfas/SMS/mfa.py:106 +#: mfas/SMS/mfa.py:140 msgid "SMS authentication method" msgstr "短信认证方式" -#: mfas/SMS/mfa.py:110 mfas/SMS/mfa.py:124 mfas/SMS/mfa.py:133 -msgid "HTTP Authentication" -msgstr "HTTP 身份验证" - -#: mfas/SMS/mfa.py:113 +#: mfas/SMS/mfa.py:146 msgid "HTTP Basic Auth" msgstr "HTTP 基本身份验证" -#: mfas/SMS/mfa.py:114 +#: mfas/SMS/mfa.py:147 msgid "HTTP Digest Auth" msgstr "HTTP摘要认证" -#: mfas/SMS/mfa.py:120 +#: mfas/SMS/mfa.py:149 mfas/SMS/mfa.py:158 mfas/SMS/mfa.py:167 +msgid "HTTP Authentication" +msgstr "HTTP 身份验证" + +#: mfas/SMS/mfa.py:154 msgid "SMS authentication user or token" msgstr "短信认证用户或令牌" -#: mfas/SMS/mfa.py:122 +#: mfas/SMS/mfa.py:156 msgid "User or token for SMS authentication" msgstr "用于 SMS 身份验证的用户或令牌" -#: mfas/SMS/mfa.py:129 +#: mfas/SMS/mfa.py:163 msgid "SMS authentication password" msgstr "短信认证密码" -#: mfas/SMS/mfa.py:131 +#: mfas/SMS/mfa.py:165 msgid "Password for SMS authentication" msgstr "短信验证密码" -#: mfas/SMS/mfa.py:138 +#: mfas/SMS/mfa.py:172 msgid "SMS response OK regex" msgstr "短信回复 OK 正则表达式" -#: mfas/SMS/mfa.py:141 +#: mfas/SMS/mfa.py:175 +#| msgid "" +#| "Regex for SMS response OK. If emty, the response is considered OK if " +#| "status code is 200." msgid "" -"Regex for SMS response OK. If emty, the response is considered OK if status " +"Regex for SMS response OK. If empty, the response is considered OK if status " "code is 200." -msgstr "" -"SMS 响应的正则表达式 OK。如果为 emty,则如果状态码为 200,则认为响应正常。" +msgstr "SMS 响应的正则表达式 OK。如果为空,则如果状态码为 200,则认为响应正常。" -#: mfas/SMS/mfa.py:144 mfas/SMS/mfa.py:153 +#: mfas/SMS/mfa.py:178 msgid "HTTP Response" msgstr "HTTP 响应" -#: mfas/SMS/mfa.py:148 +#: mfas/SMS/mfa.py:182 msgid "SMS response error action" msgstr "短信响应错误动作" -#: mfas/SMS/mfa.py:151 -msgid "Action for SMS response error" -msgstr "SMS 响应错误的操作" - -#: mfas/SMS/mfa.py:155 -msgid "Allow user log in without MFA" -msgstr "允许用户在没有 MFA 的情况下登录" - -#: mfas/SMS/mfa.py:156 -msgid "Deny user log in" -msgstr "拒绝用户登录" - -#: mfas/SMS/mfa.py:199 +#: mfas/SMS/mfa.py:291 msgid "SMS sending failed" msgstr "短信发送失败" -#: mfas/SMS/mfa.py:263 web/views/modern.py:275 +#: mfas/SMS/mfa.py:300 +#| msgid "SMS response error action" +msgid "SMS response error" +msgstr "短信回复错误" + +#: mfas/SMS/mfa.py:354 web/views/modern.py:294 msgid "MFA Code" msgstr "MFA 代码" -#: mfas/Sample/mfa.py:16 +#: mfas/SMS/mfa.py:357 +msgid "Check your phone. You will receive an SMS with the verification code" +msgstr "检查你的手机。您将收到一条带有验证码的短信" + +#: mfas/Sample/mfa.py:47 msgid "Sample Multi Factor" msgstr "样本多因素" -#: mfas/Sample/mfa.py:18 +#: mfas/Sample/mfa.py:49 msgid "Sample Multi Factor Authenticator" msgstr "示例多因素身份验证器" -#: mfas/Sample/mfa.py:22 +#: mfas/Sample/mfa.py:53 msgid "Sample useless field" msgstr "示例无用字段" -#: mfas/Sample/mfa.py:25 +#: mfas/Sample/mfa.py:56 msgid "This is a useless field, for sample and testing pourposes" msgstr "这是一个无用的领域,用于样品和测试用途" @@ -2759,13 +2863,24 @@ msgstr "" "3.6)" #: osmanagers/LinuxOsManager/__init__.py:80 +#| msgid "" +#| "UDS Actor for Debian based Linux machines. Used ONLY for static machines. " +#| "(Requires python >= 3.6)" +msgid "" +"UDS Actor for Centos, Fedora, RH, Suse, ... Linux machines. Used ONLY for " +"static machines. (Requires python >= 3.6)" +msgstr "" +"用于 Centos、Fedora、RH、Suse、... Linux 机器的 UDS Actor。仅用于静态机器。 (需要 python >" +"= 3.6)" + +#: osmanagers/LinuxOsManager/__init__.py:90 msgid "" "Legacy UDS Actor for Debian, Ubuntu, ... Linux machines (Requires " "python 2.7)" msgstr "" "Debian,Ubuntu的遗产 UDS演员,... Linux机器(需要python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:90 +#: osmanagers/LinuxOsManager/__init__.py:100 msgid "" "Legacy UDS Actor for Centos, Fedora, RH, ... Linux machines " "(Requires python 2.7)" @@ -2773,7 +2888,7 @@ msgstr "" "适用于Centos,Fedora,RH,... Linux机器的旧版 UDS Actor (需要" "python 2.7)" -#: osmanagers/LinuxOsManager/__init__.py:100 +#: osmanagers/LinuxOsManager/__init__.py:110 msgid "" "Legacy UDS Actor for OpenSUSE, ... Linux machines (Requires python " "2.7)" @@ -4361,6 +4476,16 @@ msgstr "" "如果处于活动状态,用户连接上不可用的机器(在某些操作系统上)将尝试通过 " "OpenGnsys 开机。" +#: services/OpenGnsys/service.py:150 services/RDS_enterprise/service.py:86 +#| msgid "Max. Allowd services" +msgid "Max. Allowed services" +msgstr "最大限度。允许的服务" + +#: services/OpenGnsys/service.py:155 services/RDS_enterprise/service.py:91 +#| msgid "Maximum number of allowed services (0 means no limit)" +msgid "Maximum number of allowed services (0 or less means no limit)" +msgstr "允许服务的最大数量(0 或更少表示无限制)" + #: services/OpenNebula/provider.py:58 msgid "OpenNebula Platform Provider" msgstr "OpenNebula平台提供商" @@ -5007,19 +5132,11 @@ msgstr "开始路径" msgid "Path where the app will be started on. (i.e. f:\\example\\folder)" msgstr "应用程序将在其上启动的路径。 (即f:\\ example \\ folder)" -#: services/RDS_enterprise/service.py:86 -msgid "Max. Allowd services" -msgstr "最大。允许的服务" - -#: services/RDS_enterprise/service.py:91 -msgid "Maximum number of allowed services (0 means no limit)" -msgstr "允许的最大服务数(0表示没有限制)" - -#: services/RDS_enterprise/service.py:96 +#: services/RDS_enterprise/service.py:97 msgid "Wait spawned processes" msgstr "等待产生的进程" -#: services/RDS_enterprise/service.py:100 +#: services/RDS_enterprise/service.py:101 msgid "" "If active, RDS Actor will wait until the application and all spawned " "processes finished before considering app logged out" @@ -5027,7 +5144,7 @@ msgstr "" "如果处于活动状态,RDS Actor将等到应用程序和所有生成的进程完成后再考虑应用程序" "注销" -#: services/RDS_enterprise/service.py:112 +#: services/RDS_enterprise/service.py:113 msgid "A valid application path is required" msgstr "需要有效的应用程序路径" @@ -6854,10 +6971,10 @@ msgstr "我们正在创建您的服务,请等待几秒钟。)" msgid "Authenticator does not provide information" msgstr "Authenticator不提供信息" -#: web/views/modern.py:269 +#: web/views/modern.py:285 msgid "{} days" msgstr "{} 天" -#: web/views/modern.py:271 +#: web/views/modern.py:287 msgid "{} hours" msgstr "{} 小时" diff --git a/server/src/uds/locale/zh_Hans/LC_MESSAGES/djangojs.po b/server/src/uds/locale/zh_Hans/LC_MESSAGES/djangojs.po index 39262a03..03803519 100644 --- a/server/src/uds/locale/zh_Hans/LC_MESSAGES/djangojs.po +++ b/server/src/uds/locale/zh_Hans/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenUDS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-06-30 16:32+0200\n" +"POT-Creation-Date: 2022-08-31 15:20+0200\n" "PO-Revision-Date: 2014-03-26 02:16+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese (http://www.transifex.com/openuds/openuds/language/" @@ -507,14 +507,14 @@ msgstr "服务池" #: static/admin/translations-fakejs.js:420 #: static/admin/translations-fakejs.js:459 #: static/admin/translations-fakejs.js:464 -#: static/admin/translations-fakejs.js:490 -#: static/admin/translations-fakejs.js:494 +#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:495 msgid "Groups" msgstr "组" #: static/admin/main.js:1 static/admin/translations-fakejs.js:264 #: static/admin/translations-fakejs.js:462 -#: static/admin/translations-fakejs.js:495 +#: static/admin/translations-fakejs.js:496 msgid "Services Pools" msgstr "服务池" @@ -704,7 +704,7 @@ msgstr "分配服务" #: static/admin/translations-fakejs.js:413 #: static/admin/translations-fakejs.js:455 #: static/admin/translations-fakejs.js:476 -#: static/admin/translations-fakejs.js:491 +#: static/admin/translations-fakejs.js:492 msgid "Cancel" msgstr "取消" @@ -1055,8 +1055,8 @@ msgstr "加" #: static/admin/translations-fakejs.js:456 #: static/admin/translations-fakejs.js:465 #: static/admin/translations-fakejs.js:477 -#: static/admin/translations-fakejs.js:492 -#: static/admin/translations-fakejs.js:497 +#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:498 msgid "Ok" msgstr "好" @@ -1401,7 +1401,7 @@ msgstr "图表" #: static/admin/translations-fakejs.js:427 #: static/admin/translations-fakejs.js:461 -#: static/admin/translations-fakejs.js:493 +#: static/admin/translations-fakejs.js:494 msgid "Information for" msgstr "信息" @@ -1534,7 +1534,11 @@ msgstr "管理员" msgid "Staff member" msgstr "工作人员" -#: static/admin/translations-fakejs.js:496 +#: static/admin/translations-fakejs.js:490 +msgid "MFA" +msgstr "外交部" + +#: static/admin/translations-fakejs.js:497 msgid "Assigned Services" msgstr "指定服务" diff --git a/server/src/uds/services/OpenGnsys/service.py b/server/src/uds/services/OpenGnsys/service.py index ec97952e..ab832e8f 100644 --- a/server/src/uds/services/OpenGnsys/service.py +++ b/server/src/uds/services/OpenGnsys/service.py @@ -147,13 +147,14 @@ class OGService(Service): maxServices = gui.NumericField( order=4, - label=_("Max. Allowd services"), + label=_("Max. Allowed services"), minValue=0, maxValue=99999, defvalue=0, rdonly=False, tooltip=_('Maximum number of allowed services (0 or less means no limit)'), required=True, + tab=gui.ADVANCED_TAB ) ov = gui.HiddenField(value=None)